]> git.proxmox.com Git - mirror_corosync-qdevice.git/commitdiff
pr-poll-loop: Pass PRPollDesc for prfd events
authorJan Friesse <jfriesse@redhat.com>
Wed, 26 Aug 2020 15:10:44 +0000 (17:10 +0200)
committerJan Friesse <jfriesse@redhat.com>
Fri, 28 Aug 2020 06:57:15 +0000 (08:57 +0200)
Signed-off-by: Jan Friesse <jfriesse@redhat.com>
qdevices/corosync-qnetd.c
qdevices/pr-poll-loop.c
qdevices/pr-poll-loop.h
qdevices/qnetd-client-net.c
qdevices/test-pr-poll-loop.c

index d071f3cfc87398e46af2de511dcfbe33a7c10c2c..1ecf6e8a9ca7c748754f0e075f67c31d80c710ca 100644 (file)
@@ -90,7 +90,7 @@ qnetd_warn_nss(void)
 }
 
 static int
-server_socket_poll_loop_read_cb(PRFileDesc *prfd, void *user_data1, void *user_data2)
+server_socket_poll_loop_read_cb(PRFileDesc *prfd, const PRPollDesc *pd, void *user_data1, void *user_data2)
 {
        struct qnetd_instance *instance = (struct qnetd_instance *)user_data1;
 
@@ -100,7 +100,8 @@ server_socket_poll_loop_read_cb(PRFileDesc *prfd, void *user_data1, void *user_d
 }
 
 static int
-server_socket_poll_loop_err_cb(PRFileDesc *prfd, short revents, void *user_data1, void *user_data2)
+server_socket_poll_loop_err_cb(PRFileDesc *prfd, short revents, const PRPollDesc *pd,
+    void *user_data1, void *user_data2)
 {
 
        if (revents != POLLNVAL) {
index 706902f3f5ce1f9482d5c99a3d586602cd6167e2..fe4287c1e4f78cd2d06a04afcf4d8fe35546253d 100644 (file)
@@ -444,7 +444,7 @@ pr_poll_loop_exec(struct pr_poll_loop *poll_loop)
                                        cb_res = fd_entry->fd_read_cb(fd_entry->fd,
                                            fd_entry->user_data1, fd_entry->user_data2);
                                } else {
-                                       cb_res = fd_entry->prfd_read_cb(fd_entry->prfd,
+                                       cb_res = fd_entry->prfd_read_cb(fd_entry->prfd, &pfds[i],
                                            fd_entry->user_data1, fd_entry->user_data2);
                                }
 
@@ -459,7 +459,7 @@ pr_poll_loop_exec(struct pr_poll_loop *poll_loop)
                                        cb_res = fd_entry->fd_write_cb(fd_entry->fd,
                                            fd_entry->user_data1, fd_entry->user_data2);
                                } else {
-                                       cb_res = fd_entry->prfd_write_cb(fd_entry->prfd,
+                                       cb_res = fd_entry->prfd_write_cb(fd_entry->prfd, &pfds[i],
                                            fd_entry->user_data1, fd_entry->user_data2);
                                }
 
@@ -478,6 +478,7 @@ pr_poll_loop_exec(struct pr_poll_loop *poll_loop)
                                        } else {
                                                cb_res = fd_entry->prfd_err_cb(fd_entry->prfd,
                                                    pr_events_to_poll_events(pfds[i].out_flags),
+                                                   &pfds[i],
                                                    fd_entry->user_data1, fd_entry->user_data2);
                                        }
 
index 16e7ec6f2bb8ada18279c632d77526022bd9917a..a5536fea9f879ce0a070e5fe2904ff91db7d90ec 100644 (file)
@@ -60,20 +60,22 @@ typedef int (*pr_poll_loop_prfd_set_events_cb_fn)(PRFileDesc *prfd, short *event
  * Return code: 0 - Ok, -1 - Return error
  */
 typedef int (*pr_poll_loop_fd_read_cb_fn)(int fd, void *user_data1, void *user_data2);
-typedef int (*pr_poll_loop_prfd_read_cb_fn)(PRFileDesc *prfd, void *user_data1, void *user_data2);
+typedef int (*pr_poll_loop_prfd_read_cb_fn)(PRFileDesc *prfd, const PRPollDesc *pd,
+    void *user_data1, void *user_data2);
 
 /*
  * Return code: 0 - Ok, -1 - Return error
  */
 typedef int (*pr_poll_loop_fd_write_cb_fn)(int fd, void *user_data1, void *user_data2);
-typedef int (*pr_poll_loop_prfd_write_cb_fn)(PRFileDesc *prfd, void *user_data1, void *user_data2);
+typedef int (*pr_poll_loop_prfd_write_cb_fn)(PRFileDesc *prfd,
+    const PRPollDesc *pd, void *user_data1, void *user_data2);
 
 /*
  * Return code: 0 - Ok, -1 - Return error
  */
 typedef int (*pr_poll_loop_fd_err_cb_fn)(int fd, short revents, void *user_data1, void *user_data2);
-typedef int (*pr_poll_loop_prfd_err_cb_fn)(PRFileDesc *prfd, short revents, void *user_data1,
-    void *user_data2);
+typedef int (*pr_poll_loop_prfd_err_cb_fn)(PRFileDesc *prfd, short revents, const PRPollDesc *pd,
+    void *user_data1, void *user_data2);
 
 struct pr_poll_loop_fd_entry {
        int fd;
index 195101a526cf3ef9cc0c6580c3dd9079265d98b5..a45603e0476ccc8753f869e971a5b4a0dc8a8f7a 100644 (file)
@@ -84,7 +84,8 @@ qnetd_client_net_socket_poll_loop_set_events_cb(PRFileDesc *prfd, short *events,
 
 
 static int
-qnetd_client_net_socket_poll_loop_read_cb(PRFileDesc *prfd, void *user_data1, void *user_data2)
+qnetd_client_net_socket_poll_loop_read_cb(PRFileDesc *prfd, const PRPollDesc *pd,
+    void *user_data1, void *user_data2)
 {
        struct qnetd_instance *instance = (struct qnetd_instance *)user_data1;
        struct qnetd_client *client = (struct qnetd_client *)user_data2;
@@ -99,7 +100,8 @@ qnetd_client_net_socket_poll_loop_read_cb(PRFileDesc *prfd, void *user_data1, vo
 }
 
 static int
-qnetd_client_net_socket_poll_loop_write_cb(PRFileDesc *prfd, void *user_data1, void *user_data2)
+qnetd_client_net_socket_poll_loop_write_cb(PRFileDesc *prfd, const PRPollDesc *pd,
+    void *user_data1, void *user_data2)
 {
        struct qnetd_instance *instance = (struct qnetd_instance *)user_data1;
        struct qnetd_client *client = (struct qnetd_client *)user_data2;
@@ -114,7 +116,8 @@ qnetd_client_net_socket_poll_loop_write_cb(PRFileDesc *prfd, void *user_data1, v
 }
 
 static int
-qnetd_client_net_socket_poll_loop_err_cb(PRFileDesc *prfd, short revents, void *user_data1, void *user_data2)
+qnetd_client_net_socket_poll_loop_err_cb(PRFileDesc *prfd, short revents,
+    const PRPollDesc *pd, void *user_data1, void *user_data2)
 {
        struct qnetd_client *client = (struct qnetd_client *)user_data2;
 
index 87c1f83ab36269dd08997fd84307a879e252ee74..1a26b85aab8e865e662b1987026543534a27a01c 100644 (file)
@@ -194,7 +194,7 @@ prfd_set_events_cb2_return(PRFileDesc *prfd, short *events, void *user_data1, vo
 }
 
 static int
-prfd_read_cb1(PRFileDesc *prfd, void *user_data1, void *user_data2)
+prfd_read_cb1(PRFileDesc *prfd, const PRPollDesc *pd, void *user_data1, void *user_data2)
 {
        char buf[BUF_SIZE];
 
@@ -210,7 +210,7 @@ prfd_read_cb1(PRFileDesc *prfd, void *user_data1, void *user_data2)
 }
 
 static int
-prfd_read_cb2(PRFileDesc *prfd, void *user_data1, void *user_data2)
+prfd_read_cb2(PRFileDesc *prfd, const PRPollDesc *pd, void *user_data1, void *user_data2)
 {
        char buf[BUF_SIZE];
 
@@ -226,7 +226,7 @@ prfd_read_cb2(PRFileDesc *prfd, void *user_data1, void *user_data2)
 }
 
 static int
-prfd_write_cb1(PRFileDesc *prfd, void *user_data1, void *user_data2)
+prfd_write_cb1(PRFileDesc *prfd, const PRPollDesc *pd, void *user_data1, void *user_data2)
 {
 
        assert(user_data1 == &prfd_write_cb1_called);
@@ -238,7 +238,7 @@ prfd_write_cb1(PRFileDesc *prfd, void *user_data1, void *user_data2)
 }
 
 static int
-prfd_err_cb1(PRFileDesc *prfd, short revents, void *user_data1, void *user_data2)
+prfd_err_cb1(PRFileDesc *prfd, short revents, const PRPollDesc *pd, void *user_data1, void *user_data2)
 {
 
        assert(user_data1 == &prfd_err_cb1_called);
@@ -267,7 +267,7 @@ test_complex_set_events_pipe1_read_cb(PRFileDesc *prfd, short *events, void *use
 }
 
 static int
-test_complex_read_pipe1_read_cb(PRFileDesc *prfd, void *user_data1, void *user_data2)
+test_complex_read_pipe1_read_cb(PRFileDesc *prfd, const PRPollDesc *pd, void *user_data1, void *user_data2)
 {
        char buf[BUF_SIZE];
 
@@ -286,7 +286,7 @@ test_complex_read_pipe1_read_cb(PRFileDesc *prfd, void *user_data1, void *user_d
 }
 
 static int
-test_complex_write_pipe1_read_cb(PRFileDesc *prfd, void *user_data1, void *user_data2)
+test_complex_write_pipe1_read_cb(PRFileDesc *prfd, const PRPollDesc *pd, void *user_data1, void *user_data2)
 {
 
        assert(0);
@@ -383,7 +383,7 @@ test_complex_set_events_pipe2_write_cb(PRFileDesc *prfd, short *events, void *us
 }
 
 static int
-test_complex_read_pipe2_write_cb(PRFileDesc *prfd, void *user_data1, void *user_data2)
+test_complex_read_pipe2_write_cb(PRFileDesc *prfd, const PRPollDesc *pd, void *user_data1, void *user_data2)
 {
 
        assert(0);
@@ -392,7 +392,7 @@ test_complex_read_pipe2_write_cb(PRFileDesc *prfd, void *user_data1, void *user_
 }
 
 static int
-test_complex_write_pipe2_write_cb(PRFileDesc *prfd, void *user_data1, void *user_data2)
+test_complex_write_pipe2_write_cb(PRFileDesc *prfd, const PRPollDesc *pd, void *user_data1, void *user_data2)
 {
 
        assert(user_data1 == &test_complex_set_events_pipe2_write_called);