diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2011-02-17 16:25:43 +0000 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2011-02-17 16:25:43 +0000 |
commit | a8afce3872b98512c83180093cebecb124510d25 (patch) | |
tree | 3883bdaaa0a93d1e9f311789045e3e25450e66de /cpukit/libblock | |
parent | 2011-02-17 Joel Sherrill <joel.sherrill@oarcorp.com> (diff) | |
download | rtems-a8afce3872b98512c83180093cebecb124510d25.tar.bz2 |
2011-02-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
* libblock/include/rtems/bdpart.h (rtems_bdpart_format):
Preserve previous API.
* libblock/src/bdpart-create.c, libblock/src/bdpart-read.c,
libblock/src/bdpart-write.c: Reflect changes above.
* libmisc/shell/fdisk.c: Reflect changes above.
Diffstat (limited to 'cpukit/libblock')
-rw-r--r-- | cpukit/libblock/include/rtems/bdpart.h | 55 | ||||
-rw-r--r-- | cpukit/libblock/src/bdpart-create.c | 2 | ||||
-rw-r--r-- | cpukit/libblock/src/bdpart-read.c | 4 | ||||
-rw-r--r-- | cpukit/libblock/src/bdpart-write.c | 4 |
4 files changed, 34 insertions, 31 deletions
diff --git a/cpukit/libblock/include/rtems/bdpart.h b/cpukit/libblock/include/rtems/bdpart.h index a834f21059..907866eb43 100644 --- a/cpukit/libblock/include/rtems/bdpart.h +++ b/cpukit/libblock/include/rtems/bdpart.h @@ -163,41 +163,44 @@ typedef enum { /** * Disk format description. */ -typedef struct { +typedef union { /** * Format type. */ rtems_bdpart_format_type type; - union { + + /** + * MBR format fields. + */ + struct { + rtems_bdpart_format_type type; + + /** + * Disk ID in MBR at offset 440. + */ + uint32_t disk_id; + /** - * MBR format fields. + * This option is used for partition table creation and validation checks + * before a write to the disk. It ensures that the first primary + * partition and the logical partitions start at head one and sector one + * under the virtual one head and 63 sectors geometry. Each begin and + * end of a partition will be aligned to the virtual cylinder boundary. */ - struct { - /** - * Disk ID in MBR at offset 440. - */ - uint32_t disk_id; - - /** - * This option is used for partition table creation and validation checks - * before a write to the disk. It ensures that the first primary - * partition and the logical partitions start at head one and sector one - * under the virtual one head and 63 sectors geometry. Each begin and - * end of a partition will be aligned to the virtual cylinder boundary. - */ - bool dos_compatibility; - } mbr; + bool dos_compatibility; + } mbr; + + /** + * GPT format fields. + */ + struct { + rtems_bdpart_format_type type; /** - * GPT format fields. + * Disk ID in GPT header. */ - struct { - /** - * Disk ID in GPT header. - */ - uuid_t disk_id; - } gpt; - } u; + uuid_t disk_id; + } gpt; } rtems_bdpart_format; /** diff --git a/cpukit/libblock/src/bdpart-create.c b/cpukit/libblock/src/bdpart-create.c index 498a67ea4e..dc93522c19 100644 --- a/cpukit/libblock/src/bdpart-create.c +++ b/cpukit/libblock/src/bdpart-create.c @@ -37,7 +37,7 @@ rtems_status_code rtems_bdpart_create( rtems_status_code sc = RTEMS_SUCCESSFUL; bool dos_compatibility = format != NULL && format->type == RTEMS_BDPART_FORMAT_MBR - && format->u.mbr.dos_compatibility; + && format->mbr.dos_compatibility; rtems_blkdev_bnum disk_end = 0; rtems_blkdev_bnum pos = 0; rtems_blkdev_bnum dist_sum = 0; diff --git a/cpukit/libblock/src/bdpart-read.c b/cpukit/libblock/src/bdpart-read.c index 515f5ce153..3560dbd3a3 100644 --- a/cpukit/libblock/src/bdpart-read.c +++ b/cpukit/libblock/src/bdpart-read.c @@ -261,10 +261,10 @@ rtems_status_code rtems_bdpart_read( /* Set format */ format->type = RTEMS_BDPART_FORMAT_MBR; - format->u.mbr.disk_id = rtems_uint32_from_little_endian( + format->mbr.disk_id = rtems_uint32_from_little_endian( block->buffer + RTEMS_BDPART_MBR_OFFSET_DISK_ID ); - format->u.mbr.dos_compatibility = true; + format->mbr.dos_compatibility = true; /* Iterate through the rest of the primary partition table */ for (i = 1; i < 4; ++i) { diff --git a/cpukit/libblock/src/bdpart-write.c b/cpukit/libblock/src/bdpart-write.c index 8b3145126e..92e80a24ec 100644 --- a/cpukit/libblock/src/bdpart-write.c +++ b/cpukit/libblock/src/bdpart-write.c @@ -94,7 +94,7 @@ rtems_status_code rtems_bdpart_write( rtems_status_code esc = RTEMS_SUCCESSFUL; bool dos_compatibility = format != NULL && format->type == RTEMS_BDPART_FORMAT_MBR - && format->u.mbr.dos_compatibility; + && format->mbr.dos_compatibility; rtems_bdbuf_buffer *block = NULL; rtems_blkdev_bnum disk_end = 0; rtems_blkdev_bnum record_space = @@ -219,7 +219,7 @@ rtems_status_code rtems_bdpart_write( /* Write disk ID */ rtems_uint32_to_little_endian( - format->u.mbr.disk_id, + format->mbr.disk_id, block->buffer + RTEMS_BDPART_MBR_OFFSET_DISK_ID ); |