diff --git a/exec/sync.c b/exec/sync.c index 3818bb98..0173afcd 100644 --- a/exec/sync.c +++ b/exec/sync.c @@ -88,7 +88,7 @@ static void *sync_callback_token_handle = 0; static struct barrier_data barrier_data_confchg[PROCESSOR_COUNT_MAX]; -static int barrier_data_confchg_entries; +static size_t barrier_data_confchg_entries; static struct barrier_data barrier_data_process[PROCESSOR_COUNT_MAX]; diff --git a/include/corosync/evs.h b/include/corosync/evs.h index e0dc2677..f17903a3 100644 --- a/include/corosync/evs.h +++ b/include/corosync/evs.h @@ -6,7 +6,7 @@ * Author: Steven Dake (sdake@redhat.com) * * This software licensed under BSD license, the text of which follows: - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * @@ -71,13 +71,13 @@ struct evs_group { typedef void (*evs_deliver_fn_t) ( unsigned int nodeid, - void *msg, - int msg_len); + const void *msg, + size_t msg_len); typedef void (*evs_confchg_fn_t) ( - unsigned int *member_list, int member_list_entries, - unsigned int *left_list, int left_list_entries, - unsigned int *joined_list, int joined_list_entries); + unsigned int *member_list, size_t member_list_entries, + unsigned int *left_list, size_t left_list_entries, + unsigned int *joined_list, size_t joined_list_entries); typedef struct { evs_deliver_fn_t evs_deliver_fn; @@ -122,16 +122,16 @@ cs_error_t evs_dispatch ( */ cs_error_t evs_join ( evs_handle_t handle, - struct evs_group *groups, - int group_cnt); + const struct evs_group *groups, + size_t group_cnt); /* * Leave one or more groups */ cs_error_t evs_leave ( evs_handle_t handle, - struct evs_group *groups, - int group_cnt); + const struct evs_group *groups, + size_t group_cnt); /* * Multicast to groups joined with evs_join. @@ -141,8 +141,8 @@ cs_error_t evs_leave ( cs_error_t evs_mcast_joined ( evs_handle_t handle, evs_guarantee_t guarantee, - struct iovec *iovec, - int iov_len); + const struct iovec *iovec, + size_t iov_len); /* * Multicast to specified groups. @@ -152,10 +152,10 @@ cs_error_t evs_mcast_joined ( cs_error_t evs_mcast_groups ( evs_handle_t handle, evs_guarantee_t guarantee, - struct evs_group *groups, - int group_cnt, - struct iovec *iovec, - int iov_len); + const struct evs_group *groups, + size_t group_cnt, + const struct iovec *iovec, + size_t iov_len); /* * Get membership information from evs @@ -164,6 +164,6 @@ cs_error_t evs_membership_get ( evs_handle_t handle, unsigned int *local_nodeid, unsigned int *member_list, - unsigned int *member_list_entries); + size_t *member_list_entries); #endif /* COROSYNC_EVS_H_DEFINED */ diff --git a/lib/evs.c b/lib/evs.c index 638b8018..5053b7a6 100644 --- a/lib/evs.c +++ b/lib/evs.c @@ -9,7 +9,7 @@ * Author: Steven Dake (sdake@redhat.com) * * This software licensed under BSD license, the text of which follows: - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * @@ -54,6 +54,9 @@ #include #include +#undef MIN +#define MIN(x,y) ((x) < (y) ? (x) : (y)) + struct evs_inst { void *ipc_ctx; int finalize; @@ -318,8 +321,8 @@ error_nounlock: evs_error_t evs_join ( evs_handle_t handle, - struct evs_group *groups, - int group_entries) + const struct evs_group *groups, + size_t group_entries) { evs_error_t error; struct evs_inst *evs_inst; @@ -339,7 +342,7 @@ evs_error_t evs_join ( iov[0].iov_base = &req_lib_evs_join; iov[0].iov_len = sizeof (struct req_lib_evs_join); - iov[1].iov_base = groups; + iov[1].iov_base = (void*) groups; /* cast away const */ iov[1].iov_len = (group_entries * sizeof (struct evs_group)); pthread_mutex_lock (&evs_inst->response_mutex); @@ -363,8 +366,8 @@ error_exit: evs_error_t evs_leave ( evs_handle_t handle, - struct evs_group *groups, - int group_entries) + const struct evs_group *groups, + size_t group_entries) { evs_error_t error; struct evs_inst *evs_inst; @@ -384,7 +387,7 @@ evs_error_t evs_leave ( iov[0].iov_base = &req_lib_evs_leave; iov[0].iov_len = sizeof (struct req_lib_evs_leave); - iov[1].iov_base = groups; + iov[1].iov_base = (void *) groups; /* cast away const */ iov[1].iov_len = (group_entries * sizeof (struct evs_group)); pthread_mutex_lock (&evs_inst->response_mutex); @@ -409,8 +412,8 @@ error_exit: evs_error_t evs_mcast_joined ( evs_handle_t handle, evs_guarantee_t guarantee, - struct iovec *iovec, - int iov_len) + const struct iovec *iovec, + size_t iov_len) { int i; evs_error_t error; @@ -464,10 +467,10 @@ error_exit: evs_error_t evs_mcast_groups ( evs_handle_t handle, evs_guarantee_t guarantee, - struct evs_group *groups, - int group_entries, - struct iovec *iovec, - int iov_len) + const struct evs_group *groups, + size_t group_entries, + const struct iovec *iovec, + size_t iov_len) { int i; evs_error_t error; @@ -493,7 +496,7 @@ evs_error_t evs_mcast_groups ( iov[0].iov_base = &req_lib_evs_mcast_groups; iov[0].iov_len = sizeof (struct req_lib_evs_mcast_groups); - iov[1].iov_base = groups; + iov[1].iov_base = (void *) groups; /* cast away const */ iov[1].iov_len = (group_entries * sizeof (struct evs_group)); memcpy (&iov[2], iovec, iov_len * sizeof (struct iovec)); @@ -521,7 +524,7 @@ evs_error_t evs_membership_get ( evs_handle_t handle, unsigned int *local_nodeid, unsigned int *member_list, - unsigned int *member_list_entries) + size_t *member_list_entries) { evs_error_t error; struct evs_inst *evs_inst; @@ -562,8 +565,8 @@ evs_error_t evs_membership_get ( if (local_nodeid) { *local_nodeid = res_lib_evs_membership_get.local_nodeid; } - *member_list_entries = *member_list_entries < res_lib_evs_membership_get.member_list_entries ? - *member_list_entries : res_lib_evs_membership_get.member_list_entries; + *member_list_entries = MIN (*member_list_entries, + res_lib_evs_membership_get.member_list_entries); if (member_list) { memcpy (member_list, &res_lib_evs_membership_get.member_list, *member_list_entries * sizeof (struct in_addr)); diff --git a/test/evsbench.c b/test/evsbench.c index 24ec8e07..53808ea5 100644 --- a/test/evsbench.c +++ b/test/evsbench.c @@ -70,17 +70,17 @@ volatile static int alarm_notice = 0; static void evs_deliver_fn ( unsigned int nodeid, - void *msg, - int msg_len) + const void *msg, + size_t msg_len) { - char *m = msg; + const char *m = msg; printf ("Delivering message %s\n", m); } static void evs_confchg_fn ( - unsigned int *member_list, int member_list_entries, - unsigned int *left_list, int left_list_entries, - unsigned int *joined_list, int joined_list_entries) + unsigned int *member_list, size_t member_list_entries, + unsigned int *left_list, size_t left_list_entries, + unsigned int *joined_list, size_t joined_list_entries) { int i; diff --git a/test/evsverify.c b/test/evsverify.c index 7d764f9c..b3cfff51 100644 --- a/test/evsverify.c +++ b/test/evsverify.c @@ -56,10 +56,10 @@ struct my_msg { static int deliveries = 0; static void evs_deliver_fn ( unsigned int nodeid, - void *m, - int msg_len) + const void *m, + size_t msg_len) { - struct my_msg *msg2 = (struct my_msg *)m; + const struct my_msg *msg2 = m; unsigned char sha1_compare[20]; hash_state sha1_hash; unsigned int i; @@ -81,9 +81,9 @@ printf ("\n"); } static void evs_confchg_fn ( - unsigned int *member_list, int member_list_entries, - unsigned int *left_list, int left_list_entries, - unsigned int *joined_list, int joined_list_entries) + unsigned int *member_list, size_t member_list_entries, + unsigned int *left_list, size_t left_list_entries, + unsigned int *joined_list, size_t joined_list_entries) { int i; @@ -123,7 +123,7 @@ int main (void) int fd; unsigned int member_list[32]; unsigned int local_nodeid; - unsigned int member_list_entries = 32; + size_t member_list_entries = 32; struct my_msg msg; hash_state sha1_hash; struct iovec iov[2]; @@ -136,8 +136,8 @@ int main (void) result = evs_membership_get (handle, &local_nodeid, member_list, &member_list_entries); - printf ("Current membership from evs_membership_get entries %d\n", - member_list_entries); + printf ("Current membership from evs_membership_get entries %lu\n", + (unsigned long int) member_list_entries); for (i = 0; i < member_list_entries; i++) { printf ("member [%d] is %x\n", i, member_list[i]); } diff --git a/test/testevs.c b/test/testevs.c index 16b1e876..7b3ff4c1 100644 --- a/test/testevs.c +++ b/test/testevs.c @@ -49,19 +49,19 @@ static const char *delivery_string; static int deliveries = 0; static void evs_deliver_fn ( unsigned int nodeid, - void *msg, - int msg_len) + const void *msg, + size_t msg_len) { - char *buf = msg; + const char *buf = msg; printf ("API '%s' msg '%s'\n", delivery_string, buf); deliveries++; } static void evs_confchg_fn ( - unsigned int *member_list, int member_list_entries, - unsigned int *left_list, int left_list_entries, - unsigned int *joined_list, int joined_list_entries) + unsigned int *member_list, size_t member_list_entries, + unsigned int *left_list, size_t left_list_entries, + unsigned int *joined_list, size_t joined_list_entries) { int i; @@ -106,7 +106,7 @@ int main (void) int fd; unsigned int member_list[32]; unsigned int local_nodeid; - unsigned int member_list_entries = 32; + size_t member_list_entries = 32; result = evs_initialize (&handle, &callbacks); if (result != CS_OK) { @@ -116,8 +116,8 @@ int main (void) result = evs_membership_get (handle, &local_nodeid, member_list, &member_list_entries); - printf ("Current membership from evs_membership_get entries %d\n", - member_list_entries); + printf ("Current membership from evs_membership_get entries %lu\n", + (unsigned long int) member_list_entries); for (i = 0; i < member_list_entries; i++) { printf ("member [%d] is %x\n", i, member_list[i]); }