sp_def.h 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. #ifndef __SP_DEF_H__
  2. #define __SP_DEF_H__
  3. #pragma once
  4. #ifdef __cplusplus
  5. extern "C" {
  6. #endif
  7. #include "ErrorCode.h"
  8. #define SP_LOG_MAX_LEN 1023
  9. #define SP_PKT_TSX 0x00000000 // for sp_tsx
  10. #define SP_PKT_RPC 0x10000000 // for sp_rpc
  11. #define SP_PKT_LOG 0x20000000 // for sp_log
  12. #define SP_PKT_VAR 0x30000000 // for sp_var
  13. #define SP_PKT_MOD 0x40000000 // for sp_mod
  14. #define SP_PKT_SES 0x50000000 // for sp_ses
  15. #define SP_PKT_BCM 0x60000000 // for sp_bcm
  16. #define SP_PKT_NUM 7
  17. #define SP_PKT_MAX_NUM 15
  18. #define SP_GET_TYPE(x) ((x) & 0x0fffffff)
  19. #define SP_GET_PKT_TYPE(x) ((x) & 0xf0000000)
  20. #define SP_TYPE_SHIFT 28
  21. #define SP_INVALID_MOD_ID -1
  22. #define SP_INVALID_SVC_ID -1
  23. #define SP_INVALID_PKT_ID -1
  24. #define SP_SHELL_MOD_ID 0
  25. #define SP_SHELL_SVC_ID 0
  26. #define SP_MAX_MODULE 127
  27. #define SP_MAX_ENTITY 127
  28. #define SP_MAX_SYSEVT 127
  29. typedef struct sp_version_t {
  30. int major;
  31. int minor;
  32. int revision;
  33. int build;
  34. }sp_version_t;
  35. static __inline void sp_version_copy(sp_version_t *dst, const sp_version_t *src)
  36. {
  37. dst->major = src->major;
  38. dst->minor = src->minor;
  39. dst->revision = src->revision;
  40. dst->build = src->build;
  41. }
  42. static __inline int sp_version_cmp(const sp_version_t *x, const sp_version_t *y)
  43. {
  44. if (x->major == y->major) {
  45. if (x->minor == y->minor) {
  46. if (x->revision == y->revision) {
  47. return x->build - y->build;
  48. } else {
  49. return x->revision - y->revision;
  50. }
  51. } else {
  52. return x->minor - y->minor;
  53. }
  54. } else {
  55. return x->major - y->major;
  56. }
  57. }
  58. static __inline int sp_version_equal(const sp_version_t *x, const sp_version_t *y)
  59. {
  60. return x->major == y->major && x->minor == y->minor && x->revision == y->revision && x->build == y->build;
  61. }
  62. static __inline int sp_version_equal_1(const sp_version_t *x, const sp_version_t *y)
  63. {
  64. return x->major == y->major;
  65. }
  66. static __inline int sp_version_equal_2(const sp_version_t *x, const sp_version_t *y)
  67. {
  68. return x->major == y->major && x->minor == y->minor;
  69. }
  70. static __inline int sp_version_equal_3(const sp_version_t *x, const sp_version_t *y)
  71. {
  72. return x->major == y->major && x->minor == y->minor && x->revision == y->revision;
  73. }
  74. static __inline int sp_version_is_valid(const sp_version_t *v)
  75. {
  76. return v->major + v->minor + v->revision + v->build;
  77. }
  78. static __inline void sp_get_current_drive(char *drivePath)
  79. {
  80. char drive[_MAX_DRIVE] = "", dir[_MAX_DIR] = "", fname[_MAX_FNAME] = "", ext[_MAX_EXT] = "", chpath[MAX_PATH] = "";
  81. GetModuleFileNameA(NULL, (LPSTR)chpath, sizeof(chpath));
  82. _splitpath(chpath, drive, dir, fname, ext);
  83. memcpy(drivePath, drive, sizeof(drive));
  84. }
  85. #define sp_version_equal_4 sp_version_equal
  86. #ifdef __cplusplus
  87. } // extern "C" {
  88. #endif
  89. #endif //__SP_DEF_H__