1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* 3 * Parsing command line, get the partitions information. 4 * 5 * Written by Cai Zhiyong <caizhiyong@huawei.com> 6 * 7 */ 8 #ifndef CMDLINEPARSEH 9 #define CMDLINEPARSEH 10 11 #include <linux/blkdev.h> 12 #include <linux/fs.h> 13 #include <linux/slab.h> 14 15 /* partition flags */ 16 #define PF_RDONLY 0x01 /* Device is read only */ 17 #define PF_POWERUP_LOCK 0x02 /* Always locked after reset */ 18 19 struct cmdline_subpart { 20 char name[BDEVNAME_SIZE]; /* partition name, such as 'rootfs' */ 21 sector_t from; 22 sector_t size; 23 int flags; 24 struct cmdline_subpart *next_subpart; 25 }; 26 27 struct cmdline_parts { 28 char name[BDEVNAME_SIZE]; /* block device, such as 'mmcblk0' */ 29 unsigned int nr_subparts; 30 struct cmdline_subpart *subpart; 31 struct cmdline_parts *next_parts; 32 }; 33 34 void cmdline_parts_free(struct cmdline_parts **parts); 35 36 int cmdline_parts_parse(struct cmdline_parts **parts, const char *cmdline); 37 38 struct cmdline_parts *cmdline_parts_find(struct cmdline_parts *parts, 39 const char *bdev); 40 41 int cmdline_parts_set(struct cmdline_parts *parts, sector_t disk_size, 42 int slot, 43 int (*add_part)(int, struct cmdline_subpart *, void *), 44 void *param); 45 46 #endif /* CMDLINEPARSEH */ 47