1 | /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ |
2 | /* |
3 | * connector.h |
4 | * |
5 | * 2004-2005 Copyright (c) Evgeniy Polyakov <zbr@ioremap.net> |
6 | * All rights reserved. |
7 | * |
8 | * This program is free software; you can redistribute it and/or modify |
9 | * it under the terms of the GNU General Public License as published by |
10 | * the Free Software Foundation; either version 2 of the License, or |
11 | * (at your option) any later version. |
12 | * |
13 | * This program is distributed in the hope that it will be useful, |
14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
16 | * GNU General Public License for more details. |
17 | * |
18 | * You should have received a copy of the GNU General Public License |
19 | * along with this program; if not, write to the Free Software |
20 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
21 | */ |
22 | |
23 | #ifndef __CONNECTOR_H |
24 | #define __CONNECTOR_H |
25 | |
26 | #include <linux/types.h> |
27 | |
28 | /* |
29 | * Process Events connector unique ids -- used for message routing |
30 | */ |
31 | #define CN_IDX_PROC 0x1 |
32 | #define CN_VAL_PROC 0x1 |
33 | #define CN_IDX_CIFS 0x2 |
34 | #define CN_VAL_CIFS 0x1 |
35 | #define CN_W1_IDX 0x3 /* w1 communication */ |
36 | #define CN_W1_VAL 0x1 |
37 | #define CN_IDX_V86D 0x4 |
38 | #define CN_VAL_V86D_UVESAFB 0x1 |
39 | #define CN_IDX_BB 0x5 /* BlackBoard, from the TSP GPL sampling framework */ |
40 | #define CN_DST_IDX 0x6 |
41 | #define CN_DST_VAL 0x1 |
42 | #define CN_IDX_DM 0x7 /* Device Mapper */ |
43 | #define CN_VAL_DM_USERSPACE_LOG 0x1 |
44 | #define CN_IDX_DRBD 0x8 |
45 | #define CN_VAL_DRBD 0x1 |
46 | #define CN_KVP_IDX 0x9 /* HyperV KVP */ |
47 | #define CN_KVP_VAL 0x1 /* queries from the kernel */ |
48 | #define CN_VSS_IDX 0xA /* HyperV VSS */ |
49 | #define CN_VSS_VAL 0x1 /* queries from the kernel */ |
50 | |
51 | |
52 | #define CN_NETLINK_USERS 11 /* Highest index + 1 */ |
53 | |
54 | /* |
55 | * Maximum connector's message size. |
56 | */ |
57 | #define CONNECTOR_MAX_MSG_SIZE 16384 |
58 | |
59 | /* |
60 | * idx and val are unique identifiers which |
61 | * are used for message routing and |
62 | * must be registered in connector.h for in-kernel usage. |
63 | */ |
64 | |
65 | struct cb_id { |
66 | __u32 idx; |
67 | __u32 val; |
68 | }; |
69 | |
70 | struct cn_msg { |
71 | struct cb_id id; |
72 | |
73 | __u32 seq; |
74 | __u32 ack; |
75 | |
76 | __u16 len; /* Length of the following data */ |
77 | __u16 flags; |
78 | __u8 data[0]; |
79 | }; |
80 | |
81 | #endif /* __CONNECTOR_H */ |
82 | |