From: Jim Meyering <[email protected]>

* exec/sync.c (barrier_data_confchg_entries):
* include/corosync/evs.h (evs_deliver_fn_t, evs_confchg_fn_t):
(evs_callbacks_t):
* lib/evs.c (MIN, evs_join, evs_leave, evs_mcast_joined):
(evs_mcast_groups, evs_membership_get):
* test/evsbench.c (evs_deliver_fn, evs_confchg_fn):
* test/evsverify.c (evs_deliver_fn, evs_confchg_fn, main):
* test/testevs.c (evs_deliver_fn, evs_confchg_fn, main):
---
 exec/sync.c            |    2 +-
 include/corosync/evs.h |   34 +++++++++++++++++-----------------
 lib/evs.c              |   37 ++++++++++++++++++++-----------------
 test/evsbench.c        |   12 ++++++------
 test/evsverify.c       |   18 +++++++++---------
 test/testevs.c         |   18 +++++++++---------
 6 files changed, 62 insertions(+), 59 deletions(-)

diff --git a/exec/sync.c b/exec/sync.c
index bbcca52..4413d83 100644
--- a/exec/sync.c
+++ b/exec/sync.c
@@ -91,7 +91,7 @@ static void *sync_request_token_handle;

 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 e0dc267..f17903a 100644
--- a/include/corosync/evs.h
+++ b/include/corosync/evs.h
@@ -6,7 +6,7 @@
  * Author: Steven Dake ([email protected])
  *
  * 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 638b801..5053b7a 100644
--- a/lib/evs.c
+++ b/lib/evs.c
@@ -9,7 +9,7 @@
  * Author: Steven Dake ([email protected])
  *
  * 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 <corosync/ipc_evs.h>
 #include <corosync/coroipcc.h>

+#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 24ec8e0..53808ea 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 7d764f9..b3cfff5 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 16b1e87..7b3ff4c 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]);
        }
-- 
1.6.2.rc1.285.gc5f54

_______________________________________________
Openais mailing list
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/openais

Reply via email to