Skip to content

Commit 463c5ee

Browse files
ezequielgarciadedekind
authored andcommitted
UBI: make UBI_IOCVOLCRBLK take a parameter for future usage
In order to allow a future ioctl parameter, such as a creation flag, we change the UBI_IOCVOLCRBLK so it accepts a struct ubi_blkcreate_req. For the time being the structure is not in use, but fully reserved. This ABI change is still possible and harmless, because the ioctl has just been introduced and there's no userspace program which uses it. Signed-off-by: Ezequiel Garcia <ezequiel.garcia@free-electrons.com> Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
1 parent 8af8718 commit 463c5ee

1 file changed

Lines changed: 15 additions & 4 deletions

File tree

include/uapi/mtd/ubi-user.h

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -138,9 +138,12 @@
138138
* Block devices on UBI volumes
139139
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
140140
*
141-
* To create or remove a R/O block device on top of an UBI volume the
142-
* %UBI_IOCVOLCRBLK and %UBI_IOCVOLRMBLK ioctl commands should be used,
143-
* respectively. These commands take no arguments.
141+
* To create a R/O block device on top of an UBI volume the %UBI_IOCVOLCRBLK
142+
* should be used. A pointer to a &struct ubi_blkcreate_req object is expected
143+
* to be passed, which is not used and reserved for future usage.
144+
*
145+
* Conversely, to remove a block device the %UBI_IOCVOLRMBLK should be used,
146+
* which takes no arguments.
144147
*/
145148

146149
/*
@@ -199,7 +202,7 @@
199202
#define UBI_IOCSETVOLPROP _IOW(UBI_VOL_IOC_MAGIC, 6, \
200203
struct ubi_set_vol_prop_req)
201204
/* Create a R/O block device on top of an UBI volume */
202-
#define UBI_IOCVOLCRBLK _IO(UBI_VOL_IOC_MAGIC, 7)
205+
#define UBI_IOCVOLCRBLK _IOW(UBI_VOL_IOC_MAGIC, 7, struct ubi_blkcreate_req)
203206
/* Remove the R/O block device */
204207
#define UBI_IOCVOLRMBLK _IO(UBI_VOL_IOC_MAGIC, 8)
205208

@@ -431,4 +434,12 @@ struct ubi_set_vol_prop_req {
431434
__u64 value;
432435
} __packed;
433436

437+
/**
438+
* struct ubi_blkcreate_req - a data structure used in block creation requests.
439+
* @padding: reserved for future, not used, has to be zeroed
440+
*/
441+
struct ubi_blkcreate_req {
442+
__s8 padding[128];
443+
} __packed;
444+
434445
#endif /* __UBI_USER_H__ */

0 commit comments

Comments
 (0)