![]() |
PDK API Guide for J721E
|
Files | |
| file | cb_ipcsock.h |
| Socket IPC utility functions. | |
Functions | |
| int | cb_fdread_timeout (int fd, void *data, int size, int tout_ms) |
| read from file descriptor with timeout More... | |
| int | cb_ipcsocket_init (CB_SOCKET_T *ipcfd, char *node, char *suffix, char *server_node) |
| creats and initializes Unix Domain Socket for IPC More... | |
| int | cb_ipcsocket_udp_init (CB_SOCKET_T *ipcfd, char *own_ip, char *server_ip, int server_port) |
| open Unix Domain Socket in UDP mode for IPC More... | |
| int | cb_ipcsocket_close (CB_SOCKET_T ipcfd, char *node, char *suffix) |
| close Unix Domain Socket for IPC More... | |
| cb_ipcserverd_t * | cb_ipcsocket_server_init (char *node_ip, char *suffix, uint16_t port) |
| initialize the server mode ipc socket More... | |
| void | cb_ipcsocket_server_close (cb_ipcserverd_t *ipcsd) |
| close the server mode ipc socket More... | |
| int | cb_ipcsocket_server_write (cb_ipcserverd_t *ipcsd, uint8_t *data, int size, struct sockaddr *client_address) |
| send ipc data to a specific client_address or internally managed IPC clients More... | |
| int | cb_ipcsocket_server_write_ddata (cb_ipcserverd_t *ipcsd, void *cbdata, cb_ipcsocket_server_ddatacb ddatacb) |
| send ipc data to all clients More... | |
| int | cb_ipcsocket_server_read (cb_ipcserverd_t *ipcsd, cb_ipcsocket_server_rdcb ipccb, void *cbdata) |
| receive data on the IPC socket. More... | |
| CB_SOCKET_T | cb_ipcsocket_getfd (cb_ipcserverd_t *ipcsd) |
| return ipc socket fd More... | |
| int | cb_ipcsocket_remove_client (cb_ipcserverd_t *ipcsd, struct sockaddr *client_address) |
| remove IPC client from the managed list More... | |
| cb_ipcclient_commode_t | cb_ipcsocket_get_commode (cb_ipcserverd_t *ipcsd, struct sockaddr *client_address) |
| get IPC ipc communication mode More... | |
| int | cb_ipcsocket_set_commode (cb_ipcserverd_t *ipcsd, struct sockaddr *client_address, cb_ipcclient_commode_t commode) |
| get IPC ipc communication mode More... | |
Typedefs | |
| typedef struct cb_ipcserverd | cb_ipcserverd_t |
| typedef int(* | cb_ipcsocket_server_ddatacb) (void *cbdata, uint8_t **sdata, int *size, struct sockaddr *addr) |
| callback function to get sending data More... | |
| typedef int(* | cb_ipcsocket_server_rdcb) (void *cbdata, uint8_t *rdata, int size, struct sockaddr *addr) |
| callback function to be called from 'cb_ipcsocket_server_read' More... | |
Enumerations | |
| enum | cb_ipcclient_commode_t { CB_IPCCLIENT_DEFAULT = 0, CB_IPCCLIENT_BINARY, CB_IPCCLIENT_TEXT, CB_IPCCLIENT_LAST } |
Macros | |
| #define | MAX_IPC_CLIENTS 16 |
| #define MAX_IPC_CLIENTS 16 |
| typedef struct cb_ipcserverd cb_ipcserverd_t |
| typedef int(* cb_ipcsocket_server_ddatacb) (void *cbdata, uint8_t **sdata, int *size, struct sockaddr *addr) |
callback function to get sending data
| typedef int(* cb_ipcsocket_server_rdcb) (void *cbdata, uint8_t *rdata, int size, struct sockaddr *addr) |
callback function to be called from 'cb_ipcsocket_server_read'
| int cb_fdread_timeout | ( | int | fd, |
| void * | data, | ||
| int | size, | ||
| int | tout_ms | ||
| ) |
read from file descriptor with timeout
| fd | a file descriptor |
| data | buffer to read data, which must have more than size bytes |
| size | read size |
| tout_ms | timeout time in milliseconds |
| int cb_ipcsocket_init | ( | CB_SOCKET_T * | ipcfd, |
| char * | node, | ||
| char * | suffix, | ||
| char * | server_node | ||
| ) |
creats and initializes Unix Domain Socket for IPC
| ipcfd | return opened file descriptor |
| node | main part of file node i.e /temp/node |
| suffix | suffix part of file node, set "" for non suffix |
| server_node | if NULL, create a socket without connection. if not NULL, connect to this server_node(must be existing node). |
| int cb_ipcsocket_udp_init | ( | CB_SOCKET_T * | ipcfd, |
| char * | own_ip, | ||
| char * | server_ip, | ||
| int | server_port | ||
| ) |
open Unix Domain Socket in UDP mode for IPC
| ipcfd | return opened file descriptor for socket. |
| own_ip | NULL for any IF, '127.0.0.1' for local only |
| server_ip | NULL in the server mode, set IP in the client mode |
| server_port | port number on which the server mode listens |
| int cb_ipcsocket_close | ( | CB_SOCKET_T | ipcfd, |
| char * | node, | ||
| char * | suffix | ||
| ) |
close Unix Domain Socket for IPC
| ipcfd | ipc file descriptor |
| node | main part of file node |
| suffix | suffix part of file node, set "" for non suffix |
| cb_ipcserverd_t* cb_ipcsocket_server_init | ( | char * | node_ip, |
| char * | suffix, | ||
| uint16_t | port | ||
| ) |
initialize the server mode ipc socket
| node_ip | unix domain socket file node name OR udp socket port IP address |
| suffix | suffix part of file node, set "" for non suffix |
| port | the local port number for udp mode connection. Set 0 for unix domain socket. |
| void cb_ipcsocket_server_close | ( | cb_ipcserverd_t * | ipcsd | ) |
close the server mode ipc socket
| ipcsd | the data handle |
| int cb_ipcsocket_server_write | ( | cb_ipcserverd_t * | ipcsd, |
| uint8_t * | data, | ||
| int | size, | ||
| struct sockaddr * | client_address | ||
| ) |
send ipc data to a specific client_address or internally managed IPC clients
| ipcsd | the data handle |
| data | send data |
| size | send data size |
| client_address | if set, the data is sent to this client_address, if NULL, the data is sent to all IPC cients depends on 'ipcsd->udpport', client_address is 'sockaddr_in' or 'sockaddr_un' |
| int cb_ipcsocket_server_write_ddata | ( | cb_ipcserverd_t * | ipcsd, |
| void * | cbdata, | ||
| cb_ipcsocket_server_ddatacb | ddatacb | ||
| ) |
send ipc data to all clients
| ipcsd | the data handle |
| cbdata | data to be passed with the callback |
| ddatacb | callback function to get defered data from the caller |
| int cb_ipcsocket_server_read | ( | cb_ipcserverd_t * | ipcsd, |
| cb_ipcsocket_server_rdcb | ipccb, | ||
| void * | cbdata | ||
| ) |
receive data on the IPC socket.
| ipcsd | the data handle |
| ipccb | a callback function to be called with the read data |
| cbdata | data to be passed with the callback |
| CB_SOCKET_T cb_ipcsocket_getfd | ( | cb_ipcserverd_t * | ipcsd | ) |
return ipc socket fd
| int cb_ipcsocket_remove_client | ( | cb_ipcserverd_t * | ipcsd, |
| struct sockaddr * | client_address | ||
| ) |
remove IPC client from the managed list
| cb_ipcclient_commode_t cb_ipcsocket_get_commode | ( | cb_ipcserverd_t * | ipcsd, |
| struct sockaddr * | client_address | ||
| ) |
get IPC ipc communication mode
| ipcsd | the data handle |
| client_address | if set, the data is sent to this client_address, |
| int cb_ipcsocket_set_commode | ( | cb_ipcserverd_t * | ipcsd, |
| struct sockaddr * | client_address, | ||
| cb_ipcclient_commode_t | commode | ||
| ) |
get IPC ipc communication mode
| ipcsd | the data handle |
| client_address | if set, the data is sent to this client_address, |
| commode | ipc communication mode |