Commit | Line | Data |
---|---|---|
e2be04c7 | 1 | /* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */ |
9fff0425 | 2 | /* |
1e55b609 | 3 | * Copyright(c) 2003-2015 Intel Corporation. All rights reserved. |
733ba91c TW |
4 | * Intel Management Engine Interface (Intel MEI) Linux driver |
5 | * Intel MEI Interface Header | |
9fff0425 | 6 | */ |
334aab1d OW |
7 | #ifndef _LINUX_MEI_H |
8 | #define _LINUX_MEI_H | |
9 | ||
10 | #include <linux/uuid.h> | |
11 | ||
12 | /* | |
13 | * This IOCTL is used to associate the current file descriptor with a | |
14 | * FW Client (given by UUID). This opens a communication channel | |
15 | * between a host client and a FW client. From this point every read and write | |
16 | * will communicate with the associated FW client. | |
17 | * Only in close() (file_operation release()) the communication between | |
18 | * the clients is disconnected | |
19 | * | |
5f9092f3 | 20 | * The IOCTL argument is a struct with a union that contains |
334aab1d OW |
21 | * the input parameter and the output parameter for this IOCTL. |
22 | * | |
23 | * The input parameter is UUID of the FW Client. | |
24 | * The output parameter is the properties of the FW client | |
25 | * (FW protocol version and max message size). | |
26 | * | |
27 | */ | |
28 | #define IOCTL_MEI_CONNECT_CLIENT \ | |
29 | _IOWR('H' , 0x01, struct mei_connect_client_data) | |
30 | ||
31 | /* | |
32 | * Intel MEI client information struct | |
33 | */ | |
34 | struct mei_client { | |
35 | __u32 max_msg_length; | |
36 | __u8 protocol_version; | |
37 | __u8 reserved[3]; | |
38 | }; | |
39 | ||
40 | /* | |
41 | * IOCTL Connect Client Data structure | |
42 | */ | |
43 | struct mei_connect_client_data { | |
44 | union { | |
45 | uuid_le in_client_uuid; | |
46 | struct mei_client out_client_properties; | |
47 | }; | |
48 | }; | |
49 | ||
3c7c8468 TW |
50 | /** |
51 | * DOC: set and unset event notification for a connected client | |
52 | * | |
53 | * The IOCTL argument is 1 for enabling event notification and 0 for | |
54 | * disabling the service | |
55 | * Return: -EOPNOTSUPP if the devices doesn't support the feature | |
56 | */ | |
57 | #define IOCTL_MEI_NOTIFY_SET _IOW('H', 0x02, __u32) | |
58 | ||
59 | /** | |
60 | * DOC: retrieve notification | |
61 | * | |
62 | * The IOCTL output argument is 1 if an event was is pending and 0 otherwise | |
63 | * the ioctl has to be called in order to acknowledge pending event | |
64 | * | |
65 | * Return: -EOPNOTSUPP if the devices doesn't support the feature | |
66 | */ | |
67 | #define IOCTL_MEI_NOTIFY_GET _IOR('H', 0x03, __u32) | |
68 | ||
aa207a05 AU |
69 | /** |
70 | * struct mei_connect_client_vtag - mei client information struct with vtag | |
71 | * | |
72 | * @in_client_uuid: UUID of client to connect | |
73 | * @vtag: virtual tag | |
74 | * @reserved: reserved for future use | |
75 | */ | |
76 | struct mei_connect_client_vtag { | |
77 | uuid_le in_client_uuid; | |
78 | __u8 vtag; | |
79 | __u8 reserved[3]; | |
80 | }; | |
81 | ||
82 | /** | |
83 | * struct mei_connect_client_data_vtag - IOCTL connect data union | |
84 | * | |
85 | * @connect: input connect data | |
86 | * @out_client_properties: output client data | |
87 | */ | |
88 | struct mei_connect_client_data_vtag { | |
89 | union { | |
90 | struct mei_connect_client_vtag connect; | |
91 | struct mei_client out_client_properties; | |
92 | }; | |
93 | }; | |
94 | ||
95 | /** | |
96 | * DOC: | |
97 | * This IOCTL is used to associate the current file descriptor with a | |
98 | * FW Client (given by UUID), and virtual tag (vtag). | |
99 | * The IOCTL opens a communication channel between a host client and | |
100 | * a FW client on a tagged channel. From this point on, every read | |
101 | * and write will communicate with the associated FW client with | |
102 | * on the tagged channel. | |
103 | * Upone close() the communication is terminated. | |
104 | * | |
105 | * The IOCTL argument is a struct with a union that contains | |
106 | * the input parameter and the output parameter for this IOCTL. | |
107 | * | |
108 | * The input parameter is UUID of the FW Client, a vtag [0,255] | |
109 | * The output parameter is the properties of the FW client | |
110 | * (FW protocool version and max message size). | |
111 | * | |
112 | * Clients that do not support tagged connection | |
113 | * will respond with -EOPNOTSUPP. | |
114 | */ | |
115 | #define IOCTL_MEI_CONNECT_CLIENT_VTAG \ | |
116 | _IOWR('H', 0x04, struct mei_connect_client_data_vtag) | |
117 | ||
334aab1d | 118 | #endif /* _LINUX_MEI_H */ |