TEEI.h 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. #ifndef __TZ_TEEI_H__
  2. #define __TZ_TEEI_H__
  3. #define socket_buffer_size 2048
  4. #define ARGS_BLOCK_SIZE 1024
  5. struct sockaddr {
  6. unsigned short sa_family; /* 地址族 */
  7. char sa_data[14]; /* 14字节协议地址 */
  8. };
  9. struct in_addr {
  10. unsigned long s_addr; /* that’s a 32-bit long, or 4 bytes */
  11. };
  12. struct sockaddr_in {
  13. short int sin_family; /* 地址族 */
  14. unsigned short int sin_port; /* 端口号 */
  15. struct in_addr sin_addr; /* IP地址 */
  16. unsigned char sin_zero[8]; /* 填充0以保持与struct sockaddr同样大小 */
  17. };
  18. struct TEEI_socket_command {
  19. int func;
  20. int cmd_size;
  21. union func_arg {
  22. char raw[ARGS_BLOCK_SIZE];
  23. struct func_socket {
  24. int af;
  25. int type;
  26. int protocol;
  27. } func_socket_args;
  28. struct func_connect {
  29. int sockfd;
  30. struct sockaddr ob_addr;
  31. int addrlen;
  32. } func_connect_args;
  33. struct func_bind {
  34. int sockfd;
  35. struct sockaddr ob_addr;
  36. int addrlen;
  37. } func_bind_args;
  38. struct func_listen {
  39. int sockfd;
  40. int backlog;
  41. } func_listen_args;
  42. struct func_accept {
  43. int sockfd;
  44. struct sockaddr ob_addr;
  45. int addrlen;
  46. } func_accept_args;
  47. struct func_send {
  48. int sockfd;
  49. void *buf;
  50. int len;
  51. int flags;
  52. } func_send_args;
  53. #define func_recv func_send
  54. #define func_recv_args func_send_args
  55. #define func_recv_send func_send
  56. #define func_recv_send_args func_send_args
  57. struct func_close {
  58. int sockfd;
  59. } func_close_args;
  60. struct func_inet_addr {
  61. char ip_addr[17];
  62. } func_inet_addr_args;
  63. struct func_htons {
  64. unsigned short portnum;
  65. } func_htons_args;
  66. struct func_setsockopt {
  67. int fd;
  68. int level;
  69. int optname;
  70. struct timeval;
  71. int optlen;
  72. } func_setsockopt_args;
  73. } args;
  74. };
  75. typedef union TEEI_socket_response_type {
  76. int value;
  77. uint32_t addr;
  78. bool hasError;
  79. unsigned short portnum;
  80. unsigned int transSize;
  81. struct response_func_recv {
  82. void *buf;
  83. unsigned int size;
  84. } recv;
  85. } TEEI_socket_response;
  86. #if 0
  87. typedef (void *) TEEI_pointer_message;
  88. #define TEEI_CREATE_MESSAGE_FIALED -1;
  89. #define MESSAGE_HEADER(msg) ((struct TEEI_message_header *)msg)
  90. #define MESSAGE_PAYLOAD(msg) (void *)(msg + sizeof(TEEI_message_header))
  91. /**
  92. * get size of a message.
  93. */
  94. inline int TEEI_sizeof_message(TEEI_pointer_message pMessage)
  95. {
  96. TEEI_message_header *msg = (TEEI_message_header *) pMessage;
  97. return msg->payload_size + sizeof(TEEI_message_header);
  98. }
  99. /*
  100. * Create a memory block as a message.
  101. * payload_size: is the payload size.
  102. * Whole message size = sizeof(TEEI_message_header) + payload_size
  103. *
  104. * return message pointer. DO NOT FORGET freeing this block!!!
  105. * TEEI_CREATE_MESSAGE_FIALED if malloc failed.
  106. */
  107. TEEI_pointer_message create_TEEI_message_with_payload_size(unsigned long payload_size);
  108. /**
  109. * create a context type message with context name;
  110. */
  111. TEEI_pointer_message create_TEEI_message_context_init(const char *TEE_name, int TEE_name_size);
  112. #endif
  113. #endif /* __TZ_TEEI_H__ */