| ipc_int.h | ipc_int.h | |||
|---|---|---|---|---|
| skipping to change at line 28 | skipping to change at line 28 | |||
| * | * | |||
| * You should have received a copy of the GNU Lesser General Public License | * You should have received a copy of the GNU Lesser General Public License | |||
| * along with libqb. If not, see <http://www.gnu.org/licenses/>. | * along with libqb. If not, see <http://www.gnu.org/licenses/>. | |||
| */ | */ | |||
| #ifndef QB_IPC_INT_H_DEFINED | #ifndef QB_IPC_INT_H_DEFINED | |||
| #define QB_IPC_INT_H_DEFINED | #define QB_IPC_INT_H_DEFINED | |||
| #include "os_base.h" | #include "os_base.h" | |||
| #include <dirent.h> | #include <dirent.h> | |||
| #ifdef HAVE_MQUEUE_H | ||||
| #include <mqueue.h> | #include <mqueue.h> | |||
| #endif /* HAVE_MQUEUE_H */ | ||||
| #include <qb/qblist.h> | #include <qb/qblist.h> | |||
| #include <qb/qbloop.h> | #include <qb/qbloop.h> | |||
| #include <qb/qbipcc.h> | #include <qb/qbipcc.h> | |||
| #include <qb/qbipcs.h> | #include <qb/qbipcs.h> | |||
| #include <qb/qbipc_common.h> | #include <qb/qbipc_common.h> | |||
| #include <qb/qbrb.h> | #include <qb/qbrb.h> | |||
| #ifdef HAVE_POSIX_SHARED_SEMAPHORE | #ifdef HAVE_POSIX_SHARED_SEMAPHORE | |||
| #include <semaphore.h> | #include <semaphore.h> | |||
| #endif /* HAVE_POSIX_SHARED_SEMAPHORE */ | #endif /* HAVE_POSIX_SHARED_SEMAPHORE */ | |||
| skipping to change at line 78 | skipping to change at line 80 | |||
| struct qb_ipcc_connection; | struct qb_ipcc_connection; | |||
| struct qb_ipc_one_way { | struct qb_ipc_one_way { | |||
| size_t max_msg_size; | size_t max_msg_size; | |||
| union { | union { | |||
| struct { | struct { | |||
| int32_t sock; | int32_t sock; | |||
| void* shared_data; | void* shared_data; | |||
| char shared_file_name[NAME_MAX]; | char shared_file_name[NAME_MAX]; | |||
| } us; | } us; | |||
| #ifdef HAVE_MQUEUE_H | ||||
| struct { | struct { | |||
| mqd_t q; | mqd_t q; | |||
| char name[NAME_MAX]; | char name[NAME_MAX]; | |||
| } pmq; | } pmq; | |||
| #endif | ||||
| struct { | struct { | |||
| int32_t q; | int32_t q; | |||
| int32_t key; | int32_t key; | |||
| } smq; | } smq; | |||
| struct { | struct { | |||
| qb_ringbuffer_t *rb; | qb_ringbuffer_t *rb; | |||
| } shm; | } shm; | |||
| } u; | } u; | |||
| }; | }; | |||
| skipping to change at line 109 | skipping to change at line 113 | |||
| struct qb_ipcc_connection { | struct qb_ipcc_connection { | |||
| char name[NAME_MAX]; | char name[NAME_MAX]; | |||
| enum qb_ipc_type type; | enum qb_ipc_type type; | |||
| int32_t needs_sock_for_poll; | int32_t needs_sock_for_poll; | |||
| struct qb_ipc_one_way setup; | struct qb_ipc_one_way setup; | |||
| struct qb_ipc_one_way request; | struct qb_ipc_one_way request; | |||
| struct qb_ipc_one_way response; | struct qb_ipc_one_way response; | |||
| struct qb_ipc_one_way event; | struct qb_ipc_one_way event; | |||
| struct qb_ipcc_funcs funcs; | struct qb_ipcc_funcs funcs; | |||
| char *receive_buf; | struct qb_ipc_request_header *receive_buf; | |||
| uint32_t fc_enable_max; | ||||
| }; | }; | |||
| int32_t qb_ipcc_us_setup_connect(struct qb_ipcc_connection *c, | int32_t qb_ipcc_us_setup_connect(struct qb_ipcc_connection *c, | |||
| struct qb_ipc_connection_response *r); | struct qb_ipc_connection_response *r); | |||
| ssize_t qb_ipc_us_send(struct qb_ipc_one_way *one_way, const void *msg, siz e_t len); | ssize_t qb_ipc_us_send(struct qb_ipc_one_way *one_way, const void *msg, siz e_t len); | |||
| ssize_t qb_ipc_us_recv(struct qb_ipc_one_way *one_way, void *msg, size_t le n, int32_t timeout); | ssize_t qb_ipc_us_recv(struct qb_ipc_one_way *one_way, void *msg, size_t le n, int32_t timeout); | |||
| int32_t qb_ipc_us_recv_ready(struct qb_ipc_one_way *one_way, int32_t ms_tim eout); | int32_t qb_ipc_us_recv_ready(struct qb_ipc_one_way *one_way, int32_t ms_tim eout); | |||
| void qb_ipcc_us_sock_close(int32_t sock); | void qb_ipcc_us_sock_close(int32_t sock); | |||
| skipping to change at line 163 | skipping to change at line 168 | |||
| enum qb_loop_priority poll_priority; | enum qb_loop_priority poll_priority; | |||
| struct qb_list_head connections; | struct qb_list_head connections; | |||
| struct qb_list_head list; | struct qb_list_head list; | |||
| struct qb_ipcs_stats stats; | struct qb_ipcs_stats stats; | |||
| }; | }; | |||
| enum qb_ipcs_connection_state { | enum qb_ipcs_connection_state { | |||
| QB_IPCS_CONNECTION_INACTIVE, | QB_IPCS_CONNECTION_INACTIVE, | |||
| QB_IPCS_CONNECTION_ACTIVE, | QB_IPCS_CONNECTION_ACTIVE, | |||
| QB_IPCS_CONNECTION_DOWN, | QB_IPCS_CONNECTION_ESTABLISHED, | |||
| QB_IPCS_CONNECTION_SHUTTING_DOWN, | ||||
| }; | }; | |||
| struct qb_ipcs_connection { | struct qb_ipcs_connection { | |||
| enum qb_ipcs_connection_state state; | enum qb_ipcs_connection_state state; | |||
| int32_t refcount; | int32_t refcount; | |||
| pid_t pid; | pid_t pid; | |||
| uid_t euid; | uid_t euid; | |||
| gid_t egid; | gid_t egid; | |||
| struct qb_ipc_one_way setup; | struct qb_ipc_one_way setup; | |||
| struct qb_ipc_one_way request; | struct qb_ipc_one_way request; | |||
| struct qb_ipc_one_way response; | struct qb_ipc_one_way response; | |||
| struct qb_ipc_one_way event; | struct qb_ipc_one_way event; | |||
| struct qb_ipcs_service *service; | struct qb_ipcs_service *service; | |||
| struct qb_list_head list; | struct qb_list_head list; | |||
| char *receive_buf; | struct qb_ipc_request_header *receive_buf; | |||
| void *context; | void *context; | |||
| int32_t fc_enabled; | int32_t fc_enabled; | |||
| int32_t poll_events; | int32_t poll_events; | |||
| int32_t outstanding_notifiers; | int32_t outstanding_notifiers; | |||
| struct qb_ipcs_connection_stats stats; | struct qb_ipcs_connection_stats stats; | |||
| }; | }; | |||
| void qb_ipcs_pmq_init(struct qb_ipcs_service *s); | void qb_ipcs_pmq_init(struct qb_ipcs_service *s); | |||
| void qb_ipcs_us_init(struct qb_ipcs_service *s); | void qb_ipcs_us_init(struct qb_ipcs_service *s); | |||
| void qb_ipcs_smq_init(struct qb_ipcs_service *s); | void qb_ipcs_smq_init(struct qb_ipcs_service *s); | |||
| End of changes. 7 change blocks. | ||||
| 3 lines changed or deleted | 9 lines changed or added | |||
This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||