From 7cf090647792f68836057e1193ff9881ba689821 Mon Sep 17 00:00:00 2001 From: Laurent Vivier Date: Mon, 29 May 2006 20:18:19 +0000 Subject: [PATCH] Manage big endian/little endian --- libemile/emile_map_get_bootinfo.c | 11 ++++++----- libemile/emile_map_get_number.c | 3 ++- libemile/emile_map_partition_get_flags.c | 3 ++- libemile/emile_map_partition_is_bootable.c | 3 ++- libemile/emile_map_partition_is_startup.c | 3 ++- libemile/emile_map_partition_set_bootable.c | 9 +++++++-- libemile/emile_map_partition_set_flags.c | 3 ++- libemile/emile_map_partition_set_startup.c | 6 ++++-- libemile/emile_map_read.c | 3 ++- libemile/emile_map_set_bootinfo.c | 11 ++++++----- libemile/emile_map_set_driver_info.c | 7 ++++--- libemile/emile_map_set_driver_number.c | 3 ++- 12 files changed, 41 insertions(+), 24 deletions(-) diff --git a/libemile/emile_map_get_bootinfo.c b/libemile/emile_map_get_bootinfo.c index d894e32..6142605 100644 --- a/libemile/emile_map_get_bootinfo.c +++ b/libemile/emile_map_get_bootinfo.c @@ -9,6 +9,7 @@ static __attribute__((used)) char* rcsid = "$CVSHeader$"; #include "partition.h" #include "libemile.h" +#include "emile.h" int emile_map_get_bootinfo(emile_map_t *map, int* bootstart, int *bootsize, int *bootaddr, int *bootentry, int* checksum, @@ -17,11 +18,11 @@ int emile_map_get_bootinfo(emile_map_t *map, int* bootstart, int *bootsize, if (!emile_map_is_valid(map)) return -1; - *bootstart = map->partition.LgBootStart; - *bootsize = map->partition.BootSize; - *bootaddr = map->partition.BootAddr; - *bootentry = map->partition.BootEntry; - *checksum = map->partition.BootCksum; + *bootstart = read_long(&map->partition.LgBootStart); + *bootsize = read_long(&map->partition.BootSize); + *bootaddr = read_long(&map->partition.BootAddr); + *bootentry = read_long(&map->partition.BootEntry); + *checksum = read_long(&map->partition.BootCksum); strcpy(processor, map->partition.Processor); return 0; diff --git a/libemile/emile_map_get_number.c b/libemile/emile_map_get_number.c index 46a275a..28059bb 100644 --- a/libemile/emile_map_get_number.c +++ b/libemile/emile_map_get_number.c @@ -10,8 +10,9 @@ static __attribute__((used)) char* rcsid = "$CVSHeader$"; #include "partition.h" #include "libemile.h" +#include "emile.h" int emile_map_get_number(emile_map_t *map) { - return map->partition.MapBlkCnt; + return read_long(&map->partition.MapBlkCnt); } diff --git a/libemile/emile_map_partition_get_flags.c b/libemile/emile_map_partition_get_flags.c index 27f7606..1f83040 100644 --- a/libemile/emile_map_partition_get_flags.c +++ b/libemile/emile_map_partition_get_flags.c @@ -7,8 +7,9 @@ static __attribute__((used)) char* rcsid = "$CVSHeader$"; #include "partition.h" #include "libemile.h" +#include "emile.h" int emile_map_partition_get_flags(emile_map_t *map) { - return map->partition.PartStatus; + return read_long(&map->partition.PartStatus); } diff --git a/libemile/emile_map_partition_is_bootable.c b/libemile/emile_map_partition_is_bootable.c index 286e6b0..0f5c4ce 100644 --- a/libemile/emile_map_partition_is_bootable.c +++ b/libemile/emile_map_partition_is_bootable.c @@ -10,5 +10,6 @@ static __attribute__((used)) char* rcsid = "$CVSHeader$"; int emile_map_partition_is_bootable(emile_map_t *map) { - return (map->partition.PartStatus & kPartitionAUXIsBootValid) == kPartitionAUXIsBootValid; + return (emile_map_partition_get_flags(map) & + kPartitionAUXIsBootValid) == kPartitionAUXIsBootValid; } diff --git a/libemile/emile_map_partition_is_startup.c b/libemile/emile_map_partition_is_startup.c index 388092a..7957af8 100644 --- a/libemile/emile_map_partition_is_startup.c +++ b/libemile/emile_map_partition_is_startup.c @@ -10,5 +10,6 @@ static __attribute__((used)) char* rcsid = "$CVSHeader$"; int emile_map_partition_is_startup(emile_map_t *map) { - return (map->partition.PartStatus & kPartitionIsStartup) == kPartitionIsStartup; + return (emile_map_partition_get_flags(map) + & kPartitionIsStartup) == kPartitionIsStartup; } diff --git a/libemile/emile_map_partition_set_bootable.c b/libemile/emile_map_partition_set_bootable.c index 63ff286..e7880c4 100644 --- a/libemile/emile_map_partition_set_bootable.c +++ b/libemile/emile_map_partition_set_bootable.c @@ -7,6 +7,7 @@ static __attribute__((used)) char* rcsid = "$CVSHeader$"; #include "partition.h" #include "libemile.h" +#include "emile.h" int emile_map_partition_set_bootable(emile_map_t *map, int enable) { @@ -14,9 +15,13 @@ int emile_map_partition_set_bootable(emile_map_t *map, int enable) return -1; if (enable) - map->partition.PartStatus = kPartitionAUXIsValid | kPartitionAUXIsAllocated | kPartitionAUXIsInUse | kPartitionAUXIsReadable | kPartitionAUXIsWriteable | kPartitionIsMountedAtStartup | 0x80; + emile_map_partition_set_flags(map, + kPartitionAUXIsValid | kPartitionAUXIsAllocated | + kPartitionAUXIsInUse | kPartitionAUXIsReadable | + kPartitionAUXIsWriteable | kPartitionIsMountedAtStartup | 0x80); else - map->partition.PartStatus &= ~kPartitionIsMountedAtStartup; + emile_map_partition_set_flags(&map, + emile_map_partition_get_flags(map) & ~kPartitionIsMountedAtStartup); return 0; } diff --git a/libemile/emile_map_partition_set_flags.c b/libemile/emile_map_partition_set_flags.c index 4679439..4ebb87e 100644 --- a/libemile/emile_map_partition_set_flags.c +++ b/libemile/emile_map_partition_set_flags.c @@ -7,10 +7,11 @@ static __attribute__((used)) char* rcsid = "$CVSHeader$"; #include "partition.h" #include "libemile.h" +#include "emile.h" int emile_map_partition_set_flags(emile_map_t *map, int flags) { - map->partition.PartStatus = flags; + write_long(&map->partition.PartStatus, flags); return 0; } diff --git a/libemile/emile_map_partition_set_startup.c b/libemile/emile_map_partition_set_startup.c index f1ca080..2143f49 100644 --- a/libemile/emile_map_partition_set_startup.c +++ b/libemile/emile_map_partition_set_startup.c @@ -14,9 +14,11 @@ int emile_map_partition_set_startup(emile_map_t *map, int enable) return -1; if (enable) - map->partition.PartStatus |= kPartitionIsStartup; + emile_map_partition_set_flags(map, + emile_map_partition_get_flags(map) | kPartitionIsStartup); else - map->partition.PartStatus &= ~kPartitionIsStartup; + emile_map_partition_set_flags(map, + emile_map_partition_get_flags(map) & ~kPartitionIsStartup); return 0; } diff --git a/libemile/emile_map_read.c b/libemile/emile_map_read.c index 45e8f78..601e6f6 100644 --- a/libemile/emile_map_read.c +++ b/libemile/emile_map_read.c @@ -10,6 +10,7 @@ static __attribute__((used)) char* rcsid = "$CVSHeader$"; #include "partition.h" #include "libemile.h" +#include "emile.h" int emile_map_read(emile_map_t *map, int part) { @@ -19,7 +20,7 @@ int emile_map_read(emile_map_t *map, int part) if (map->current == part) return part; - if (part > map->partition.MapBlkCnt) + if (part > read_long(&map->partition.MapBlkCnt)) return -1; offset = part * sizeof(struct Partition) + sizeof(struct DriverDescriptor); diff --git a/libemile/emile_map_set_bootinfo.c b/libemile/emile_map_set_bootinfo.c index cf2db73..fd23cdf 100644 --- a/libemile/emile_map_set_bootinfo.c +++ b/libemile/emile_map_set_bootinfo.c @@ -9,6 +9,7 @@ static __attribute__((used)) char* rcsid = "$CVSHeader$"; #include "partition.h" #include "libemile.h" +#include "emile.h" int emile_map_set_bootinfo(emile_map_t *map, int bootstart, int bootsize, int bootaddr, int bootentry, int checksum, @@ -17,11 +18,11 @@ int emile_map_set_bootinfo(emile_map_t *map, int bootstart, int bootsize, if (!emile_map_is_valid(map)) return -1; - map->partition.LgBootStart = bootstart; - map->partition.BootSize = bootsize; - map->partition.BootAddr = bootaddr; - map->partition.BootEntry = bootentry; - map->partition.BootCksum = checksum; + write_long(&map->partition.LgBootStart, bootstart); + write_long(&map->partition.BootSize, bootsize); + write_long(&map->partition.BootAddr, bootaddr); + write_long(&map->partition.BootEntry, bootentry); + write_long(&map->partition.BootCksum, checksum); memset(map->partition.Processor, 0, sizeof(map->partition.Processor)); strcpy(map->partition.Processor, processor); diff --git a/libemile/emile_map_set_driver_info.c b/libemile/emile_map_set_driver_info.c index 14600e5..e3f9f41 100644 --- a/libemile/emile_map_set_driver_info.c +++ b/libemile/emile_map_set_driver_info.c @@ -7,6 +7,7 @@ static __attribute__((used)) char* rcsid = "$CVSHeader$"; #include "partition.h" #include "libemile.h" +#include "emile.h" int emile_map_set_driver_info(emile_map_t *map, int number, int block, int size, int type) @@ -17,9 +18,9 @@ int emile_map_set_driver_info(emile_map_t *map, int number, if (number >= DD_MAX_DRIVER) return -1; - map->drivers.DrvInfo[number].Block = block; - map->drivers.DrvInfo[number].Size = size; - map->drivers.DrvInfo[number].Type = type; + write_long(&map->drivers.DrvInfo[number].Block, block); + write_short(&map->drivers.DrvInfo[number].Size, size); + write_short(&map->drivers.DrvInfo[number].Type, type); return 0; } diff --git a/libemile/emile_map_set_driver_number.c b/libemile/emile_map_set_driver_number.c index 1f6b8e4..eedd7aa 100644 --- a/libemile/emile_map_set_driver_number.c +++ b/libemile/emile_map_set_driver_number.c @@ -7,6 +7,7 @@ static __attribute__((used)) char* rcsid = "$CVSHeader$"; #include "partition.h" #include "libemile.h" +#include "emile.h" int emile_map_set_driver_number(emile_map_t *map, int number) { @@ -16,7 +17,7 @@ int emile_map_set_driver_number(emile_map_t *map, int number) if (number >= DD_MAX_DRIVER) return -1; - map->drivers.DrvrCount = number; + write_short(&map->drivers.DrvrCount, number); return 0; }