mirror of
https://github.com/vivier/EMILE.git
synced 2025-04-11 07:37:22 +00:00
Manage big endian/little endian
This commit is contained in:
parent
de2860a35c
commit
7cf0906477
@ -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;
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user