Explorar o código

pr-poll-loop: Pass PRPollDesc for prfd events

Signed-off-by: Jan Friesse <jfriesse@redhat.com>
Jan Friesse %!s(int64=5) %!d(string=hai) anos
pai
achega
01a63aae28

+ 3 - 2
qdevices/corosync-qnetd.c

@@ -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) {

+ 3 - 2
qdevices/pr-poll-loop.c

@@ -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);
 					}
 

+ 6 - 4
qdevices/pr-poll-loop.h

@@ -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;

+ 6 - 3
qdevices/qnetd-client-net.c

@@ -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;
 

+ 8 - 8
qdevices/test-pr-poll-loop.c

@@ -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);