blob: 29711c0408ac58feb9ceebb8e1fce4985037ca9b [file] [log] [blame]
Karthikeyan Ramasubramanian6a116d62016-09-16 16:05:32 -06001#ifndef _UAPI_MSM_IPC_H_
2#define _UAPI_MSM_IPC_H_
3
4#include <linux/types.h>
5#include <linux/ioctl.h>
6
7struct msm_ipc_port_addr {
8 uint32_t node_id;
9 uint32_t port_id;
10};
11
12struct msm_ipc_port_name {
13 uint32_t service;
14 uint32_t instance;
15};
16
17struct 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
42struct sockaddr_msm_ipc {
43 unsigned short family;
44 struct msm_ipc_addr address;
45 unsigned char reserved;
46};
47
48struct config_sec_rules_args {
49 int num_group_info;
50 uint32_t service_id;
51 uint32_t instance_id;
52 unsigned int 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
76struct msm_ipc_server_info {
77 uint32_t node_id;
78 uint32_t port_id;
79 uint32_t service;
80 uint32_t instance;
81};
82
83struct 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