1 /* SPDX-License-Identifier: ((GPL-2.0 WITH Lin 1 /* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */ 2 /* 2 /* 3 * Copyright(c) 2003-2015 Intel Corporation. A 3 * Copyright(c) 2003-2015 Intel Corporation. All rights reserved. 4 * Intel Management Engine Interface (Intel ME 4 * Intel Management Engine Interface (Intel MEI) Linux driver 5 * Intel MEI Interface Header 5 * Intel MEI Interface Header 6 */ 6 */ 7 #ifndef _LINUX_MEI_H 7 #ifndef _LINUX_MEI_H 8 #define _LINUX_MEI_H 8 #define _LINUX_MEI_H 9 9 10 #include <linux/mei_uuid.h> !! 10 #include <linux/uuid.h> 11 11 12 /* 12 /* 13 * This IOCTL is used to associate the current 13 * This IOCTL is used to associate the current file descriptor with a 14 * FW Client (given by UUID). This opens a com 14 * FW Client (given by UUID). This opens a communication channel 15 * between a host client and a FW client. From 15 * between a host client and a FW client. From this point every read and write 16 * will communicate with the associated FW cli 16 * will communicate with the associated FW client. 17 * Only in close() (file_operation release()) !! 17 * Only in close() (file_operation release()) the communication between 18 * the clients disconnected. !! 18 * the clients is disconnected 19 * 19 * 20 * The IOCTL argument is a struct with a union 20 * The IOCTL argument is a struct with a union that contains 21 * the input parameter and the output paramete 21 * the input parameter and the output parameter for this IOCTL. 22 * 22 * 23 * The input parameter is UUID of the FW Clien 23 * The input parameter is UUID of the FW Client. 24 * The output parameter is the properties of t 24 * The output parameter is the properties of the FW client 25 * (FW protocol version and max message size). 25 * (FW protocol version and max message size). 26 * 26 * 27 */ 27 */ 28 #define IOCTL_MEI_CONNECT_CLIENT \ 28 #define IOCTL_MEI_CONNECT_CLIENT \ 29 _IOWR('H' , 0x01, struct mei_connect_c 29 _IOWR('H' , 0x01, struct mei_connect_client_data) 30 30 31 /* 31 /* 32 * Intel MEI client information struct 32 * Intel MEI client information struct 33 */ 33 */ 34 struct mei_client { 34 struct mei_client { 35 __u32 max_msg_length; 35 __u32 max_msg_length; 36 __u8 protocol_version; 36 __u8 protocol_version; 37 __u8 reserved[3]; 37 __u8 reserved[3]; 38 }; 38 }; 39 39 40 /* 40 /* 41 * IOCTL Connect Client Data structure 41 * IOCTL Connect Client Data structure 42 */ 42 */ 43 struct mei_connect_client_data { 43 struct mei_connect_client_data { 44 union { 44 union { 45 uuid_le in_client_uuid; 45 uuid_le in_client_uuid; 46 struct mei_client out_client_p 46 struct mei_client out_client_properties; 47 }; 47 }; 48 }; 48 }; 49 49 50 /** 50 /** 51 * DOC: set and unset event notification for a 51 * DOC: set and unset event notification for a connected client 52 * 52 * 53 * The IOCTL argument is 1 for enabling event 53 * The IOCTL argument is 1 for enabling event notification and 0 for 54 * disabling the service. !! 54 * disabling the service 55 * Return: -EOPNOTSUPP if the devices doesn't 55 * Return: -EOPNOTSUPP if the devices doesn't support the feature 56 */ 56 */ 57 #define IOCTL_MEI_NOTIFY_SET _IOW('H', 0x02, _ 57 #define IOCTL_MEI_NOTIFY_SET _IOW('H', 0x02, __u32) 58 58 59 /** 59 /** 60 * DOC: retrieve notification 60 * DOC: retrieve notification 61 * 61 * 62 * The IOCTL output argument is 1 if an event !! 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 ackn !! 63 * the ioctl has to be called in order to acknowledge pending event 64 * 64 * 65 * Return: -EOPNOTSUPP if the devices doesn't 65 * Return: -EOPNOTSUPP if the devices doesn't support the feature 66 */ 66 */ 67 #define IOCTL_MEI_NOTIFY_GET _IOR('H', 0x03, _ 67 #define IOCTL_MEI_NOTIFY_GET _IOR('H', 0x03, __u32) 68 << 69 /** << 70 * struct mei_connect_client_vtag - mei client << 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 << 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 << 91 struct mei_client out_client_p << 92 }; << 93 }; << 94 << 95 /** << 96 * DOC: << 97 * This IOCTL is used to associate the current << 98 * FW Client (given by UUID), and virtual tag << 99 * The IOCTL opens a communication channel bet << 100 * a FW client on a tagged channel. From this << 101 * and write will communicate with the associa << 102 * on the tagged channel. << 103 * Upon close() the communication is terminate << 104 * << 105 * The IOCTL argument is a struct with a union << 106 * the input parameter and the output paramete << 107 * << 108 * The input parameter is UUID of the FW Clien << 109 * The output parameter is the properties of t << 110 * (FW protocol version and max message size). << 111 * << 112 * Clients that do not support tagged connecti << 113 * will respond with -EOPNOTSUPP. << 114 */ << 115 #define IOCTL_MEI_CONNECT_CLIENT_VTAG \ << 116 _IOWR('H', 0x04, struct mei_connect_cl << 117 68 118 #endif /* _LINUX_MEI_H */ 69 #endif /* _LINUX_MEI_H */ 119 70
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.