nt9856x/code/lib/include/UsockCliIpc/usocket_cli.h
2023-03-28 15:07:53 +08:00

91 lines
3.0 KiB
C
Executable File

#ifndef CYGONCE_NET_USOCKETCLI_H
#define CYGONCE_NET_USOCKETCLI_H
/* =================================================================
*
* usocket_cli.h
*
* A simple user socket client
*
* =================================================================
*/
#if defined(__ECOS)
#include <pkgconf/system.h>
#include <pkgconf/isoinfra.h>
#include <cyg/hal/hal_tables.h>
#endif
#include <stdio.h>
#define CYG_USOCKETCLI_STATUS_CLIENT_CONNECT 0 // client connect.
#define CYG_USOCKETCLI_STATUS_CLIENT_REQUEST 1 // client has request comimg in
#define CYG_USOCKETCLI_STATUS_CLIENT_DISCONNECT 2 // client disconnect.
#define CYG_USOCKETCLI_UDP_STATUS_CLIENT_REQUEST 3 // udp client has request comimg in
#if defined(__ECOS)
#define DUMMY_NULL
#else
#ifndef __externC
#ifdef __cplusplus
# define __externC extern "C"
#else
# define __externC extern
#endif
#endif
#define bool int
#define false 0
#define true 1
#define cyg_bool int
#define cyg_addrword_t long*
#define CYG_ASSERT(cond,text) if(!(cond)){ \
printf("%s\n", text);\
exit(-1);\
}
#define cyg_flag_init(pflag) {*(pflag) = 0;}
#define cyg_flag_maskbits(pflag,bit) {*(pflag) &= (bit);}
#define cyg_flag_setbits(pflag,bit) {*(pflag) |= (bit);}
#define cyg_flag_wait(pflag,bit,mode) while(!(*(pflag) & (bit))){sleep(1);}
#define cyg_flag_destroy(pflag) {*(pflag) = 0;}
#define DUMMY_NULL NULL
#endif
typedef int usocket_cli_recv(char* addr, int size);
typedef void usocket_cli_notify(int status,int parm);
#define USOCKETCLI_IP_LEN (16)
typedef struct
{
usocket_cli_notify *notify; // notify the status
usocket_cli_recv *recv;
char svrIP[USOCKETCLI_IP_LEN]; // server IP addr
int portNum; // socket port number
int sockbufSize; // socket buffer size
int timeout;
int connect_socket;
} usocket_cli_obj;
__externC void usocket_cli_install(usocket_cli_obj* pusocket_cli_obj,usocket_cli_obj* pObj); // install some callback function & config some settings
__externC void usocket_cli_uninstall(usocket_cli_obj* pusocket_cli_obj);
__externC void usocket_cli_start(void); // open usocket
__externC void usocket_cli_stop(void); // close usocket
__externC int usocket_cli_send(usocket_cli_obj* pusocket_cli_obj,char* addr, int* size); // install some callback function & config some settings
__externC usocket_cli_obj *usocket_cli_get_newobj(void);
__externC int usocket_cli_connect(usocket_cli_obj *pusocket_cli_obj);
__externC void usocket_cli_disconnect(usocket_cli_obj *pusocket_cli_obj);
/* ----------------------------------------------------------------- */
#endif /* CYGONCE_NET_USOCKETCLI_H */
/* end of usocket_cli.h */