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 << 4 * Intel Management Engine Interface (Intel ME 3 * Intel Management Engine Interface (Intel MEI) Linux driver 5 * Intel MEI Interface Header 4 * Intel MEI Interface Header 6 */ !! 5 * >> 6 * This file is provided under a dual BSD/GPLv2 license. When using or >> 7 * redistributing this file, you may do so under either license. >> 8 * >> 9 * GPL LICENSE SUMMARY >> 10 * >> 11 * Copyright(c) 2003 - 2012 Intel Corporation. All rights reserved. >> 12 * >> 13 * This program is free software; you can redistribute it and/or modify >> 14 * it under the terms of version 2 of the GNU General Public License as >> 15 * published by the Free Software Foundation. >> 16 * >> 17 * This program is distributed in the hope that it will be useful, but >> 18 * WITHOUT ANY WARRANTY; without even the implied warranty of >> 19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >> 20 * General Public License for more details. >> 21 * >> 22 * You should have received a copy of the GNU General Public License >> 23 * along with this program; if not, write to the Free Software >> 24 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, >> 25 * USA >> 26 * >> 27 * The full GNU General Public License is included in this distribution >> 28 * in the file called LICENSE.GPL. >> 29 * >> 30 * Contact Information: >> 31 * Intel Corporation. >> 32 * linux-mei@linux.intel.com >> 33 * http://www.intel.com >> 34 * >> 35 * BSD LICENSE >> 36 * >> 37 * Copyright(c) 2003 - 2012 Intel Corporation. All rights reserved. >> 38 * All rights reserved. >> 39 * >> 40 * Redistribution and use in source and binary forms, with or without >> 41 * modification, are permitted provided that the following conditions >> 42 * are met: >> 43 * >> 44 * * Redistributions of source code must retain the above copyright >> 45 * notice, this list of conditions and the following disclaimer. >> 46 * * Redistributions in binary form must reproduce the above copyright >> 47 * notice, this list of conditions and the following disclaimer in >> 48 * the documentation and/or other materials provided with the >> 49 * distribution. >> 50 * * Neither the name Intel Corporation nor the names of its >> 51 * contributors may be used to endorse or promote products derived >> 52 * from this software without specific prior written permission. >> 53 * >> 54 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS >> 55 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT >> 56 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR >> 57 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT >> 58 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, >> 59 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT >> 60 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, >> 61 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY >> 62 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT >> 63 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE >> 64 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. >> 65 * >> 66 *****************************************************************************/ >> 67 7 #ifndef _LINUX_MEI_H 68 #ifndef _LINUX_MEI_H 8 #define _LINUX_MEI_H 69 #define _LINUX_MEI_H 9 70 10 #include <linux/mei_uuid.h> !! 71 #include <linux/uuid.h> 11 72 12 /* 73 /* 13 * This IOCTL is used to associate the current 74 * This IOCTL is used to associate the current file descriptor with a 14 * FW Client (given by UUID). This opens a com 75 * FW Client (given by UUID). This opens a communication channel 15 * between a host client and a FW client. From 76 * between a host client and a FW client. From this point every read and write 16 * will communicate with the associated FW cli 77 * will communicate with the associated FW client. 17 * Only in close() (file_operation release()) !! 78 * Only in close() (file_operation release()) the communication between 18 * the clients disconnected. !! 79 * the clients is disconnected 19 * 80 * 20 * The IOCTL argument is a struct with a union 81 * The IOCTL argument is a struct with a union that contains 21 * the input parameter and the output paramete 82 * the input parameter and the output parameter for this IOCTL. 22 * 83 * 23 * The input parameter is UUID of the FW Clien 84 * The input parameter is UUID of the FW Client. 24 * The output parameter is the properties of t 85 * The output parameter is the properties of the FW client 25 * (FW protocol version and max message size). 86 * (FW protocol version and max message size). 26 * 87 * 27 */ 88 */ 28 #define IOCTL_MEI_CONNECT_CLIENT \ 89 #define IOCTL_MEI_CONNECT_CLIENT \ 29 _IOWR('H' , 0x01, struct mei_connect_c 90 _IOWR('H' , 0x01, struct mei_connect_client_data) 30 91 31 /* 92 /* 32 * Intel MEI client information struct 93 * Intel MEI client information struct 33 */ 94 */ 34 struct mei_client { 95 struct mei_client { 35 __u32 max_msg_length; 96 __u32 max_msg_length; 36 __u8 protocol_version; 97 __u8 protocol_version; 37 __u8 reserved[3]; 98 __u8 reserved[3]; 38 }; 99 }; 39 100 40 /* 101 /* 41 * IOCTL Connect Client Data structure 102 * IOCTL Connect Client Data structure 42 */ 103 */ 43 struct mei_connect_client_data { 104 struct mei_connect_client_data { 44 union { 105 union { 45 uuid_le in_client_uuid; 106 uuid_le in_client_uuid; 46 struct mei_client out_client_p 107 struct mei_client out_client_properties; 47 }; 108 }; 48 }; 109 }; 49 110 50 /** 111 /** 51 * DOC: set and unset event notification for a 112 * DOC: set and unset event notification for a connected client 52 * 113 * 53 * The IOCTL argument is 1 for enabling event 114 * The IOCTL argument is 1 for enabling event notification and 0 for 54 * disabling the service. !! 115 * disabling the service 55 * Return: -EOPNOTSUPP if the devices doesn't 116 * Return: -EOPNOTSUPP if the devices doesn't support the feature 56 */ 117 */ 57 #define IOCTL_MEI_NOTIFY_SET _IOW('H', 0x02, _ 118 #define IOCTL_MEI_NOTIFY_SET _IOW('H', 0x02, __u32) 58 119 59 /** 120 /** 60 * DOC: retrieve notification 121 * DOC: retrieve notification 61 * 122 * 62 * The IOCTL output argument is 1 if an event !! 123 * 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 !! 124 * the ioctl has to be called in order to acknowledge pending event 64 * 125 * 65 * Return: -EOPNOTSUPP if the devices doesn't 126 * Return: -EOPNOTSUPP if the devices doesn't support the feature 66 */ 127 */ 67 #define IOCTL_MEI_NOTIFY_GET _IOR('H', 0x03, _ 128 #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 129 118 #endif /* _LINUX_MEI_H */ 130 #endif /* _LINUX_MEI_H */ 119 131
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.