~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/uapi/linux/mmc/ioctl.h

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
  2 #ifndef LINUX_MMC_IOCTL_H
  3 #define LINUX_MMC_IOCTL_H
  4 
  5 #include <linux/types.h>
  6 #include <linux/major.h>
  7 
  8 struct mmc_ioc_cmd {
  9         /*
 10          * Direction of data: nonzero = write, zero = read.
 11          * Bit 31 selects 'Reliable Write' for RPMB.
 12          */
 13         int write_flag;
 14 
 15         /* Application-specific command.  true = precede with CMD55 */
 16         int is_acmd;
 17 
 18         __u32 opcode;
 19         __u32 arg;
 20         __u32 response[4];  /* CMD response */
 21         unsigned int flags;
 22         unsigned int blksz;
 23         unsigned int blocks;
 24 
 25         /*
 26          * Sleep at least postsleep_min_us useconds, and at most
 27          * postsleep_max_us useconds *after* issuing command.  Needed for
 28          * some read commands for which cards have no other way of indicating
 29          * they're ready for the next command (i.e. there is no equivalent of
 30          * a "busy" indicator for read operations).
 31          */
 32         unsigned int postsleep_min_us;
 33         unsigned int postsleep_max_us;
 34 
 35         /*
 36          * Override driver-computed timeouts.  Note the difference in units!
 37          */
 38         unsigned int data_timeout_ns;
 39         unsigned int cmd_timeout_ms;
 40 
 41         /*
 42          * For 64-bit machines, the next member, ``__u64 data_ptr``, wants to
 43          * be 8-byte aligned.  Make sure this struct is the same size when
 44          * built for 32-bit.
 45          */
 46         __u32 __pad;
 47 
 48         /* DAT buffer */
 49         __u64 data_ptr;
 50 };
 51 #define mmc_ioc_cmd_set_data(ic, ptr) ic.data_ptr = (__u64)(unsigned long) ptr
 52 
 53 /**
 54  * struct mmc_ioc_multi_cmd - multi command information
 55  * @num_of_cmds: Number of commands to send. Must be equal to or less than
 56  *      MMC_IOC_MAX_CMDS.
 57  * @cmds: Array of commands with length equal to 'num_of_cmds'
 58  */
 59 struct mmc_ioc_multi_cmd {
 60         __u64 num_of_cmds;
 61         struct mmc_ioc_cmd cmds[];
 62 };
 63 
 64 #define MMC_IOC_CMD _IOWR(MMC_BLOCK_MAJOR, 0, struct mmc_ioc_cmd)
 65 /*
 66  * MMC_IOC_MULTI_CMD: Used to send an array of MMC commands described by
 67  *      the structure mmc_ioc_multi_cmd. The MMC driver will issue all
 68  *      commands in array in sequence to card.
 69  */
 70 #define MMC_IOC_MULTI_CMD _IOWR(MMC_BLOCK_MAJOR, 1, struct mmc_ioc_multi_cmd)
 71 /*
 72  * Since this ioctl is only meant to enhance (and not replace) normal access
 73  * to the mmc bus device, an upper data transfer limit of MMC_IOC_MAX_BYTES
 74  * is enforced per ioctl call.  For larger data transfers, use the normal
 75  * block device operations.
 76  */
 77 #define MMC_IOC_MAX_BYTES  (512L * 1024)
 78 #define MMC_IOC_MAX_CMDS    255
 79 #endif /* LINUX_MMC_IOCTL_H */
 80 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php