1 #ifndef _ECORE_IPC_PRIVATE_H 2 #define _ECORE_IPC_PRIVATE_H 3 4 #ifdef ECORE_IPC_DEFAULT_LOG_COLOR 5 # undef ECORE_IPC_DEFAULT_LOG_COLOR 6 #endif 7 #define ECORE_IPC_DEFAULT_LOG_COLOR EINA_COLOR_BLUE 8 9 #ifdef ERR 10 # undef ERR 11 #endif 12 #define ERR(...) EINA_LOG_DOM_ERR(_ecore_ipc_log_dom, __VA_ARGS__) 13 14 #ifdef DBG 15 # undef DBG 16 #endif 17 #define DBG(...) EINA_LOG_DOM_DBG(_ecore_ipc_log_dom, __VA_ARGS__) 18 19 #ifdef INF 20 # undef INF 21 #endif 22 #define INF(...) EINA_LOG_DOM_INFO(_ecore_ipc_log_dom, __VA_ARGS__) 23 24 #ifdef WRN 25 # undef WRN 26 #endif 27 #define WRN(...) EINA_LOG_DOM_WARN(_ecore_ipc_log_dom, __VA_ARGS__) 28 29 #ifdef CRI 30 # undef CRI 31 #endif 32 #define CRI(...) EINA_LOG_DOM_CRIT(_ecore_ipc_log_dom, __VA_ARGS__) 33 34 #define ECORE_MAGIC_IPC_SERVER 0x87786556 35 #define ECORE_MAGIC_IPC_CLIENT 0x78875665 36 37 typedef struct _Ecore_Ipc_Msg_Head Ecore_Ipc_Msg_Head; 38 #define ECORE_IPC_TYPE 0x0f 39 #define ECORE_IPC_SSL 0xf0 40 41 #if (defined (__SUNPRO_C) && __SUNPRO_C < 0x5100) 42 # pragma pack(1) 43 # define ECORE_IPC_STRUCT_PACKED 44 #elif defined (__GNUC__) || (defined (__SUNPRO_C) && __SUNPRO_C >= 0x5100) 45 # define ECORE_IPC_STRUCT_PACKED __attribute__((packed)) 46 #else 47 # define ECORE_IPC_STRUCT_PACKED 48 #endif 49 50 #ifdef __sgi 51 #pragma pack 4 52 #endif 53 struct _Ecore_Ipc_Msg_Head 54 { 55 int major; 56 int minor; 57 int ref; 58 int ref_to; 59 int response; 60 int size; 61 } ECORE_IPC_STRUCT_PACKED; 62 #ifdef __sgi 63 #pragma pack 0 64 #endif 65 66 struct _Ecore_Ipc_Client 67 { 68 ECORE_MAGIC; 69 70 struct { 71 Eo *input; 72 Eo *socket; 73 Eo *recv_copier; 74 Eo *send_copier; 75 } socket; 76 77 Ecore_Ipc_Server *svr; 78 void *data; 79 unsigned char *buf; 80 int buf_size; 81 int max_buf_size; 82 83 struct { 84 Ecore_Ipc_Msg_Head i, o; 85 } prev; 86 87 int event_count; 88 Eina_Bool delete_me : 1; 89 }; 90 91 struct _Ecore_Ipc_Server 92 { 93 ECORE_MAGIC; 94 95 /* when used as dialer: ecore_ipc_server_connect() */ 96 struct { 97 Eo *input; 98 Eo *dialer; 99 Eo *recv_copier; 100 Eo *send_copier; 101 } dialer; 102 103 Eo *server; 104 105 Eina_List *clients; 106 Eina_List *dead_clients; 107 void *data; 108 unsigned char *buf; 109 int buf_size; 110 int max_buf_size; 111 112 struct { 113 Ecore_Ipc_Msg_Head i, o; 114 } prev; 115 116 int event_count; 117 Eina_Bool delete_me : 1; 118 }; 119 120 #endif 121