msm_ipc.h 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. #ifndef _LINUX_MSM_IPC_H_
  2. #define _LINUX_MSM_IPC_H_
  3. #include <linux/types.h>
  4. #include <linux/ioctl.h>
  5. struct msm_ipc_port_addr {
  6. uint32_t node_id;
  7. uint32_t port_id;
  8. };
  9. struct msm_ipc_port_name {
  10. uint32_t service;
  11. uint32_t instance;
  12. };
  13. struct msm_ipc_addr {
  14. unsigned char addrtype;
  15. union {
  16. struct msm_ipc_port_addr port_addr;
  17. struct msm_ipc_port_name port_name;
  18. } addr;
  19. };
  20. #define MSM_IPC_WAIT_FOREVER (~0) /* timeout for permanent subscription */
  21. /*
  22. * Socket API
  23. */
  24. #ifndef AF_MSM_IPC
  25. #define AF_MSM_IPC 27
  26. #endif
  27. #ifndef PF_MSM_IPC
  28. #define PF_MSM_IPC AF_MSM_IPC
  29. #endif
  30. #define MSM_IPC_ADDR_NAME 1
  31. #define MSM_IPC_ADDR_ID 2
  32. struct sockaddr_msm_ipc {
  33. unsigned short family;
  34. struct msm_ipc_addr address;
  35. unsigned char reserved;
  36. };
  37. struct config_sec_rules_args {
  38. int num_group_info;
  39. uint32_t service_id;
  40. uint32_t instance_id;
  41. unsigned reserved;
  42. gid_t group_id[0];
  43. };
  44. #define IPC_ROUTER_IOCTL_MAGIC (0xC3)
  45. #define IPC_ROUTER_IOCTL_GET_VERSION \
  46. _IOR(IPC_ROUTER_IOCTL_MAGIC, 0, unsigned int)
  47. #define IPC_ROUTER_IOCTL_GET_MTU \
  48. _IOR(IPC_ROUTER_IOCTL_MAGIC, 1, unsigned int)
  49. #define IPC_ROUTER_IOCTL_LOOKUP_SERVER \
  50. _IOWR(IPC_ROUTER_IOCTL_MAGIC, 2, struct sockaddr_msm_ipc)
  51. #define IPC_ROUTER_IOCTL_GET_CURR_PKT_SIZE \
  52. _IOR(IPC_ROUTER_IOCTL_MAGIC, 3, unsigned int)
  53. #define IPC_ROUTER_IOCTL_BIND_CONTROL_PORT \
  54. _IOR(IPC_ROUTER_IOCTL_MAGIC, 4, unsigned int)
  55. #define IPC_ROUTER_IOCTL_CONFIG_SEC_RULES \
  56. _IOR(IPC_ROUTER_IOCTL_MAGIC, 5, struct config_sec_rules_args)
  57. struct msm_ipc_server_info {
  58. uint32_t node_id;
  59. uint32_t port_id;
  60. uint32_t service;
  61. uint32_t instance;
  62. };
  63. struct server_lookup_args {
  64. struct msm_ipc_port_name port_name;
  65. int num_entries_in_array;
  66. int num_entries_found;
  67. uint32_t lookup_mask;
  68. struct msm_ipc_server_info srv_info[0];
  69. };
  70. #endif