linux-headers (unknown)

(root)/
include/
linux/
mei.h
       1  /* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */
       2  /*
       3   * Copyright(c) 2003-2015 Intel Corporation. All rights reserved.
       4   * Intel Management Engine Interface (Intel MEI) Linux driver
       5   * Intel MEI Interface Header
       6   */
       7  #ifndef _LINUX_MEI_H
       8  #define _LINUX_MEI_H
       9  
      10  #include <linux/mei_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   *
      20   * The IOCTL argument is a struct with a union that contains
      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  
      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  
      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  
     118  #endif /* _LINUX_MEI_H  */