⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nq_soc_adp.h

📁 mtk socket编程
💻 H
字号:
#ifndef __NQ_SOC_ADP_H__
#define __NQ_SOC_ADP_H__

#define NQ_ZH_MAX_SOCK_ADDR_LEN 16

typedef enum
{
   NQ_ZH_SOCK_STREAM,
   NQ_ZH_SOCK_DGRAM,
   NQ_ZH_SOCK_SMS,
   NQ_ZH_SOCK_RAW
}NQ_ZH_SOC_TYPE;

/* Socket Options */
typedef enum
{
    NQ_ZH_SOC_OOBINLINE     = 0x01 << 0,  /* not support yet */
    NQ_ZH_SOC_LINGER        = 0x01 << 1,  /* linger on close */
    NQ_ZH_SOC_NBIO          = 0x01 << 2,  /* Nonblocking */
    NQ_ZH_SOC_ASYNC         = 0x01 << 3,  /* Asynchronous notification */   

    NQ_ZH_SOC_NODELAY       = 0x01 << 4,  /* disable Nagle algorithm or not */
    NQ_ZH_SOC_KEEPALIVE     = 0x01 << 5,  
    NQ_ZH_SOC_RCVBUF        = 0x01 << 6,  
    NQ_ZH_SOC_SENDBUF       = 0x01 << 7,

    NQ_ZH_SOC_NREAD         = 0x01 << 8,  /* no. of bytes for read, only for soc_getsockopt */
    NQ_ZH_SOC_PKT_SIZE      = 0x01 << 9,  /* datagram max packet size */
    NQ_ZH_SOC_SILENT_LISTEN = 0x01 << 10, /* SOC_SOCK_SMS property */
    NQ_ZH_SOC_QOS           = 0x01 << 11,

    NQ_ZH_SOC_TCP_MAXSEG    = 0x01 << 12,
    NQ_ZH_SOC_IP_TTL        = 0x01 << 13,
    NQ_ZH_SOC_LISTEN_BEARER = 0x01 << 14,
    NQ_ZH_SOC_UDP_ANY_FPORT = 0x01 << 15,

    NQ_ZH_SOC_WIFI_NOWAKEUP = 0x01 << 16, /* send packet in power saving mode */
    NQ_ZH_SOC_UDP_NEED_ICMP = 0x01 << 17, /* deliver NOTIFY(close) for ICMP error */
    NQ_ZH_SOC_IP_HDRINCL    = 0x01 << 18  /* IP header included for raw sockets */
} NQ_ZH_SOC_OPTION;

/* Socket return codes, negative values stand for errors */
typedef enum
{
    NQ_ZH_SOC_SUCCESS           = 0,
    NQ_ZH_SOC_ERROR             = -1,
    NQ_ZH_SOC_WOULDBLOCK        = -2,
    NQ_ZH_SOC_LIMIT_RESOURCE    = -3,    /* limited resource */
    NQ_ZH_SOC_INVALID_SOCKET    = -4,    /* invalid socket */
    NQ_ZH_SOC_INVALID_ACCOUNT   = -5,    /* invalid account id */
    NQ_ZH_SOC_NAMETOOLONG       = -6,    /* address too long */
    NQ_ZH_SOC_ALREADY           = -7,    /* operation already in progress */
    NQ_ZH_SOC_OPNOTSUPP         = -8,    /* operation not support */
    NQ_ZH_SOC_CONNABORTED       = -9,    /* Software caused connection abort */
    NQ_ZH_SOC_INVAL             = -10,   /* invalid argument */
    NQ_ZH_SOC_PIPE              = -11,   /* broken pipe */
    NQ_ZH_SOC_NOTCONN           = -12,   /* socket is not connected */
    NQ_ZH_SOC_MSGSIZE           = -13,   /* msg is too long */
    NQ_ZH_SOC_BEARER_FAIL       = -14,   /* bearer is broken */
    NQ_ZH_SOC_CONNRESET         = -15,   /* TCP half-write close, i.e., FINED */
    NQ_ZH_SOC_DHCP_ERROR        = -16,
    NQ_ZH_SOC_IP_CHANGED        = -17,
    NQ_ZH_SOC_ADDRINUSE         = -18,
    NQ_ZH_SOC_CANCEL_ACT_BEARER = -19    /* cancel the activation of bearer */
}NQ_ZH_SOC_ERROR_ENUM;

typedef enum
{
    NQ_ZH_SOC_NOTIFY_READ    = 0x01,  /* Notify for read */
    NQ_ZH_SOC_NOTIFY_WRITE   = 0x02,  /* Notify for write */
    NQ_ZH_SOC_NOTIFY_ACCEPT  = 0x04,  /* Notify for accept */
    NQ_ZH_SOC_NOTIFY_CONNECT = 0x08,  /* Notify for connect */
    NQ_ZH_SOC_NOTIFY_CLOSE   = 0x10,   /* Notify for close */
    NQ_ZH_SOC_NOTIFY_UNKNOWN = 0XFF
} NQ_ZH_SOC_EVENT;

typedef struct 
{
#if defined(MT6225) || defined(MT6235)	
	NQ_ZH_SOC_TYPE sock_type;
	kal_int16	addr_len;
	kal_uint16 port;
	kal_uint8	addr[NQ_ZH_MAX_SOCK_ADDR_LEN];
#else
	kal_int16	 addr_len;
	kal_uint8	 addr[NQ_ZH_MAX_SOCK_ADDR_LEN];
	kal_uint16	 port;
#endif
   
} nq_zh_sockaddr_struct;

typedef struct
{
   kal_uint8       ref_count;
   kal_uint16      msg_len;	
   kal_int8        socket_id;    /* socket ID */
   NQ_ZH_SOC_EVENT  event_type;   /* soc_event_enum */
   kal_bool        result;
   NQ_ZH_SOC_ERROR_ENUM  error_cause;  /* used only when EVENT is close/connect */
   kal_int32       detail_cause; /* refer to ps_cause_enum if error_cause is
                                  * SOC_BEARER_FAIL */
} nq_zh_soc_notify_ind_struct;

#ifndef __MTK_TARGET__
typedef void (*NQ_zh_soc_notify_FuncPtr) (kal_int8 socket_index, kal_int32 error_code, kal_int32 sock_event);
#endif

extern kal_int8 nq_zh_soc_create(kal_uint8 domain, kal_uint8 type, kal_uint8 protocol, kal_uint16 mod_id, kal_uint32 nwk_account_id);
extern kal_int8 nq_zh_soc_close(kal_int8 socketID);
extern void nq_zh_soc_close_account_by_id(kal_uint16 mod_id, kal_uint8 account_id);
extern kal_int8 nq_zh_soc_connect(kal_int8 socketID);
extern kal_int32 nq_zh_soc_send(kal_int8 socketID, kal_uint8  *buf, kal_int32	len, kal_uint8 flags);
extern kal_int32 nq_zh_soc_recv(kal_int8 socketID, kal_uint8 *buf, kal_int32 len, kal_uint8 flags);
extern kal_int8 nq_zh_soc_setsockopt(kal_int8 socketID, kal_uint32 option, void *val, kal_uint8  val_size);
extern kal_uint8 nq_zh_soc_get_default_sockopt(void);
extern kal_uint8 nq_zh_soc_get_domain_type(void);
extern kal_uint8 nq_zh_soc_get_socket_type(kal_uint8 type);
extern kal_uint32 nq_zh_soc_get_account_id(kal_int8 nwk_account_id);
extern kal_uint16 nq_zh_soc_get_socket_app_mod_id(void);

extern void nq_zh_soc_set_notify_handler(NQ_zh_PsFuncPtr nq_soc_socket_notify);
extern void nq_zh_soc_set_deactive_handler(NQ_zh_PsFuncPtr nq_soc_socket_notify);

extern kal_uint16 nq_zh_soc_get_timer_baseId(void);

extern kal_int8 nq_zh_soc_GetSIMCard1Type(void);
#if defined(__MMI_DUAL_SIM_MASTER__)
extern kal_int8 nq_zh_soc_GetSIMCard2Type();
#endif
extern kal_int8 nq_zh_soc_get_simCard_info(void);

typedef enum
{
	NQ_ZH_CHINAMOBILE,
	NQ_ZH_CHINAUNICOM,
	NQ_ZH_CHINAMOBILE_SIM2,
	NQ_ZH_CHINAUNICOM_SIM2,
	NQ_ZH_INVALID_SIM
}NQ_ZH_SIMCARD_TYPE;



#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -