You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.9 KiB
57 lines
1.9 KiB
#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 |
|
|
|
/** |
|
* 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_ */
|
|
|