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