pxTools.h 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. #ifndef _PX_TOOL_H_
  2. #define _PX_TOOL_H_
  3. #include "cJSON.h"
  4. #include "pxVersion.h"
  5. #define PROCESSPATH "/tmp/run/"
  6. #define LOGFILEPATH "/home/nvidia/newdisk/zxf"
  7. #define IPSTRLEN 16
  8. /***********************************************/
  9. /************MICRO******************************/
  10. /***********************************************/
  11. #define MACLEN 6
  12. #define MACSTRUPER(mac)"%02X:%02X:%02X:%02X:%02X:%02X",\
  13. mac[0],mac[1],mac[2],mac[3],mac[4],mac[5]
  14. #define new(type) (type*)malloc(sizeof(type))
  15. typedef signed char s8;
  16. typedef unsigned char u8;
  17. typedef signed short s16;
  18. typedef unsigned short u16;
  19. typedef signed int s32;
  20. typedef unsigned int u32;
  21. typedef signed long long s64;
  22. typedef unsigned long long u64;
  23. /***********************************************/
  24. /************DEAMON & LOG***********************/
  25. /***********************************************/
  26. typedef enum
  27. {
  28. NONE=0,
  29. ERROR,
  30. WARNING,
  31. INIT,
  32. EVENT,
  33. INFO,
  34. DEBUG,
  35. PACKGE
  36. }LOGLEVEL_E;
  37. //tm_mon tm_mday tm_hour tm_min
  38. #define LOGROTATETIME timenow->tm_mday
  39. void pxDeamonUniq(char *pname);
  40. void pxOpenLogFile(char *pname);
  41. int pxGetLogLevel();
  42. void pxSetLogLevel(LOGLEVEL_E l);
  43. void __pxLog(LOGLEVEL_E l, char *log, ...);
  44. #ifdef _WIN32
  45. #define pxLog(l,args,...); do{if(pxGetLogLevel()>=l)__pxLog(l,##args);}while(0);
  46. #else
  47. #define pxLog(l,args...); do{if(pxGetLogLevel()>=l)__pxLog(l,##args);}while(0);
  48. #endif
  49. void pxLogPackage(unsigned char *p,int len);
  50. /***********************************************/
  51. /************JSON*******************************/
  52. /***********************************************/
  53. cJSON* pxReadJsonFile_malloc(char *path);
  54. int pxJsonStrdup(cJSON* json,char *name,char **value);
  55. int pxJsonIntcpy(cJSON* json,char *name,int *value);
  56. /***********************************************/
  57. /************LIST*******************************/
  58. /***********************************************/
  59. typedef struct list_head {
  60. struct list_head *next, *prev;
  61. }LISTNODE_S;
  62. #define list_entry(ptr, type, member) ( \
  63. (type *)( (char *)ptr - offsetof(type,member) ))
  64. #define list_for_each_entry(pos, head, member) \
  65. for (pos = list_entry((head)->next, typeof(*pos), member); \
  66. &pos->member != (head); \
  67. pos = list_entry(pos->member.next, typeof(*pos), member))
  68. #define list_for_each_entry_safe(pos, n, head, member) \
  69. for (pos = list_entry((head) -> next, typeof(*pos), member), \
  70. n = list_entry(pos->member.next, typeof(*pos), member); \
  71. &pos->member != (head); \
  72. pos = n, n = list_entry(n->member.next, typeof(*n), member))
  73. #define LIST_NODE(name) \
  74. struct list_head name = { &(name), &(name) }
  75. static inline void INIT_LIST_NODE(struct list_head *list)
  76. {
  77. list->next = list;
  78. list->prev = list;
  79. }
  80. static inline void list_add(struct list_head *newNode, struct list_head *headNode)
  81. {
  82. if(!newNode || !headNode)
  83. return;
  84. newNode->next=headNode;
  85. newNode->prev=headNode->prev;
  86. headNode->prev->next=newNode;
  87. headNode->prev=newNode;
  88. }
  89. static inline void list_del(struct list_head *newNode)
  90. {
  91. if(!newNode)
  92. return;
  93. newNode->prev->next=newNode->next;
  94. newNode->next->prev=newNode->prev;
  95. newNode->next=newNode;
  96. newNode->prev=newNode;
  97. }
  98. #ifdef PXCURL
  99. char* PxCurl(const char *url,const char *interface,const char *token,const char *data);
  100. #endif
  101. void writeFile(char *fileName,char *buffer);
  102. int PxExecute(char *ret,int retLenth,char *cmd,...);
  103. #endif