Dr Andrew Scott G7VAV

My photo
 
June 2025
Mo Tu We Th Fr Sa Su
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 1 2 3 4 5 6


ioctl.h
01: #ifndef LINUX_MMC_IOCTL_H
02: #define LINUX_MMC_IOCTL_H
03: struct mmc_ioc_cmd {
04:         /* Implies direction of data.  true = write, false = read */
05:         int write_flag;
06: 
07:         /* Application-specific command.  true = precede with CMD55 */
08:         int is_acmd;
09: 
10:         __u32 opcode;
11:         __u32 arg;
12:         __u32 response[4];  /* CMD response */
13:         unsigned int flags;
14:         unsigned int blksz;
15:         unsigned int blocks;
16: 
17:         /*
18:          * Sleep at least postsleep_min_us useconds, and at most
19:          * postsleep_max_us useconds *after* issuing command.  Needed for
20:          * some read commands for which cards have no other way of indicating
21:          * they're ready for the next command (i.e. there is no equivalent of
22:          * a "busy" indicator for read operations).
23:          */
24:         unsigned int postsleep_min_us;
25:         unsigned int postsleep_max_us;
26: 
27:         /*
28:          * Override driver-computed timeouts.  Note the difference in units!
29:          */
30:         unsigned int data_timeout_ns;
31:         unsigned int cmd_timeout_ms;
32: 
33:         /*
34:          * For 64-bit machines, the next member, ``__u64 data_ptr``, wants to
35:          * be 8-byte aligned.  Make sure this struct is the same size when
36:          * built for 32-bit.
37:          */
38:         __u32 __pad;
39: 
40:         /* DAT buffer */
41:         __u64 data_ptr;
42: };
43: #define mmc_ioc_cmd_set_data(ic, ptr) ic.data_ptr = (__u64)(unsigned long) ptr
44: 
45: #define MMC_IOC_CMD _IOWR(MMC_BLOCK_MAJOR, 0, struct mmc_ioc_cmd)
46: 
47: /*
48:  * Since this ioctl is only meant to enhance (and not replace) normal access
49:  * to the mmc bus device, an upper data transfer limit of MMC_IOC_MAX_BYTES
50:  * is enforced per ioctl call.  For larger data transfers, use the normal
51:  * block device operations.
52:  */
53: #define MMC_IOC_MAX_BYTES  (512L * 256)
54: #endif /* LINUX_MMC_IOCTL_H */
55: 


for client (none)
© Andrew Scott 2006 - 2025,
All Rights Reserved
http://www.andrew-scott.uk/
Andrew Scott
http://www.andrew-scott.co.uk/