summaryrefslogtreecommitdiffstats
path: root/cpukit/libblock
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2011-02-17 16:25:43 +0000
committerSebastian Huber <sebastian.huber@embedded-brains.de>2011-02-17 16:25:43 +0000
commita8afce3872b98512c83180093cebecb124510d25 (patch)
tree3883bdaaa0a93d1e9f311789045e3e25450e66de /cpukit/libblock
parent2011-02-17 Joel Sherrill <joel.sherrill@oarcorp.com> (diff)
downloadrtems-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.h55
-rw-r--r--cpukit/libblock/src/bdpart-create.c2
-rw-r--r--cpukit/libblock/src/bdpart-read.c4
-rw-r--r--cpukit/libblock/src/bdpart-write.c4
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
);