| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- #ifndef UAPI_UFS_IOCTL_H_
- #define UAPI_UFS_IOCTL_H_
- #include <linux/types.h>
- /*
- * IOCTL opcode for ufs queries has the following opcode after
- * SCSI_IOCTL_GET_PCI
- */
- #define UFS_IOCTL_QUERY 0x5388
- #define UFS_IOCTL_GETSN 0x5389
- /**
- * struct ufs_ioctl_query_data - used to transfer data to and from user via ioctl
- * @opcode: type of data to query (descriptor/attribute/flag)
- * @idn: id of the data structure
- * @buf_size: number of allocated bytes/data size on return
- * @buffer: data location
- *
- * Received: buffer and buf_size (available space for transfered data)
- * Submitted: opcode, idn, length, buf_size
- */
- struct ufs_ioctl_query_data {
- /*
- * User should select one of the opcode defined in "enum query_opcode".
- * Please check include/uapi/scsi/ufs/ufs.h for the definition of it.
- * Note that only UPIU_QUERY_OPCODE_READ_DESC,
- * UPIU_QUERY_OPCODE_READ_ATTR & UPIU_QUERY_OPCODE_READ_FLAG are
- * supported as of now. All other query_opcode would be considered
- * invalid.
- * As of now only read query operations are supported.
- */
- __u32 opcode;
- /*
- * User should select one of the idn from "enum flag_idn" or "enum
- * attr_idn" or "enum desc_idn" based on whether opcode above is
- * attribute, flag or descriptor.
- * Please check include/uapi/scsi/ufs/ufs.h for the definition of it.
- */
- __u8 idn;
- /*
- * User should specify the size of the buffer (buffer[0] below) where
- * it wants to read the query data (attribute/flag/descriptor).
- * As we might end up reading less data then what is specified in
- * buf_size. So we are updating buf_size to what exactly we have read.
- */
- __u16 buf_size;
- /*
- * placeholder for the start of the data buffer where kernel will copy
- * the query data (attribute/flag/descriptor) read from the UFS device
- * Note:
- * For Read/Write Attribute you will have to allocate 4 bytes
- * For Read/Write Flag you will have to allocate 1 byte
- */
- __u8 buffer[0];
- };
- #endif /* UAPI_UFS_IOCTL_H_ */
|