blob: 436070f820737916f15b71638cb289e012975237 [file] [log] [blame]
Nicholas Flintham1e3d3112013-04-10 10:48:38 +01001#ifndef _LINUX_MSM_IPC_H_
2#define _LINUX_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)
26
27
28#ifndef AF_MSM_IPC
29#define AF_MSM_IPC 27
30#endif
31
32#ifndef PF_MSM_IPC
33#define PF_MSM_IPC AF_MSM_IPC
34#endif
35
36#define MSM_IPC_ADDR_NAME 1
37#define MSM_IPC_ADDR_ID 2
38
39struct sockaddr_msm_ipc {
40 unsigned short family;
41 struct msm_ipc_addr address;
42 unsigned char reserved;
43};
44
45#define IPC_ROUTER_IOCTL_MAGIC (0xC3)
46
47#define IPC_ROUTER_IOCTL_GET_VERSION \
48 _IOR(IPC_ROUTER_IOCTL_MAGIC, 0, unsigned int)
49
50#define IPC_ROUTER_IOCTL_GET_MTU \
51 _IOR(IPC_ROUTER_IOCTL_MAGIC, 1, unsigned int)
52
53#define IPC_ROUTER_IOCTL_LOOKUP_SERVER \
54 _IOWR(IPC_ROUTER_IOCTL_MAGIC, 2, struct sockaddr_msm_ipc)
55
56#define IPC_ROUTER_IOCTL_GET_CURR_PKT_SIZE \
57 _IOR(IPC_ROUTER_IOCTL_MAGIC, 3, unsigned int)
58
59#define IPC_ROUTER_IOCTL_BIND_CONTROL_PORT \
60 _IOR(IPC_ROUTER_IOCTL_MAGIC, 4, unsigned int)
61
62#ifdef CONFIG_MSM8960_ONLY
63
64struct server_lookup_args {
65 struct msm_ipc_port_name port_name;
66 int num_entries_in_array;
67 int num_entries_found;
68 uint32_t lookup_mask;
69 struct msm_ipc_port_addr port_addr[0];
70};
71#else
72
73struct msm_ipc_server_info {
74 uint32_t node_id;
75 uint32_t port_id;
76 uint32_t service;
77 uint32_t instance;
78};
79
80struct server_lookup_args {
81 struct msm_ipc_port_name port_name;
82 int num_entries_in_array;
83 int num_entries_found;
84 uint32_t lookup_mask;
85 struct msm_ipc_server_info srv_info[0];
86};
87
88#endif
89
90#endif