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