mirror of
https://github.com/vivier/EMILE.git
synced 2024-09-08 19:54:38 +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 "partition.h"
|
||||||
#include "libemile.h"
|
#include "libemile.h"
|
||||||
|
#include "emile.h"
|
||||||
|
|
||||||
int emile_map_get_bootinfo(emile_map_t *map, int* bootstart, int *bootsize,
|
int emile_map_get_bootinfo(emile_map_t *map, int* bootstart, int *bootsize,
|
||||||
int *bootaddr, int *bootentry, int* checksum,
|
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))
|
if (!emile_map_is_valid(map))
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
*bootstart = map->partition.LgBootStart;
|
*bootstart = read_long(&map->partition.LgBootStart);
|
||||||
*bootsize = map->partition.BootSize;
|
*bootsize = read_long(&map->partition.BootSize);
|
||||||
*bootaddr = map->partition.BootAddr;
|
*bootaddr = read_long(&map->partition.BootAddr);
|
||||||
*bootentry = map->partition.BootEntry;
|
*bootentry = read_long(&map->partition.BootEntry);
|
||||||
*checksum = map->partition.BootCksum;
|
*checksum = read_long(&map->partition.BootCksum);
|
||||||
strcpy(processor, map->partition.Processor);
|
strcpy(processor, map->partition.Processor);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -10,8 +10,9 @@ static __attribute__((used)) char* rcsid = "$CVSHeader$";
|
|||||||
|
|
||||||
#include "partition.h"
|
#include "partition.h"
|
||||||
#include "libemile.h"
|
#include "libemile.h"
|
||||||
|
#include "emile.h"
|
||||||
|
|
||||||
int emile_map_get_number(emile_map_t *map)
|
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 "partition.h"
|
||||||
#include "libemile.h"
|
#include "libemile.h"
|
||||||
|
#include "emile.h"
|
||||||
|
|
||||||
int emile_map_partition_get_flags(emile_map_t *map)
|
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)
|
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)
|
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 "partition.h"
|
||||||
#include "libemile.h"
|
#include "libemile.h"
|
||||||
|
#include "emile.h"
|
||||||
|
|
||||||
int emile_map_partition_set_bootable(emile_map_t *map, int enable)
|
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;
|
return -1;
|
||||||
|
|
||||||
if (enable)
|
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
|
else
|
||||||
map->partition.PartStatus &= ~kPartitionIsMountedAtStartup;
|
emile_map_partition_set_flags(&map,
|
||||||
|
emile_map_partition_get_flags(map) & ~kPartitionIsMountedAtStartup);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -7,10 +7,11 @@ static __attribute__((used)) char* rcsid = "$CVSHeader$";
|
|||||||
|
|
||||||
#include "partition.h"
|
#include "partition.h"
|
||||||
#include "libemile.h"
|
#include "libemile.h"
|
||||||
|
#include "emile.h"
|
||||||
|
|
||||||
int emile_map_partition_set_flags(emile_map_t *map, int flags)
|
int emile_map_partition_set_flags(emile_map_t *map, int flags)
|
||||||
{
|
{
|
||||||
map->partition.PartStatus = flags;
|
write_long(&map->partition.PartStatus, flags);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -14,9 +14,11 @@ int emile_map_partition_set_startup(emile_map_t *map, int enable)
|
|||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
if (enable)
|
if (enable)
|
||||||
map->partition.PartStatus |= kPartitionIsStartup;
|
emile_map_partition_set_flags(map,
|
||||||
|
emile_map_partition_get_flags(map) | kPartitionIsStartup);
|
||||||
else
|
else
|
||||||
map->partition.PartStatus &= ~kPartitionIsStartup;
|
emile_map_partition_set_flags(map,
|
||||||
|
emile_map_partition_get_flags(map) & ~kPartitionIsStartup);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -10,6 +10,7 @@ static __attribute__((used)) char* rcsid = "$CVSHeader$";
|
|||||||
|
|
||||||
#include "partition.h"
|
#include "partition.h"
|
||||||
#include "libemile.h"
|
#include "libemile.h"
|
||||||
|
#include "emile.h"
|
||||||
|
|
||||||
int emile_map_read(emile_map_t *map, int part)
|
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)
|
if (map->current == part)
|
||||||
return part;
|
return part;
|
||||||
|
|
||||||
if (part > map->partition.MapBlkCnt)
|
if (part > read_long(&map->partition.MapBlkCnt))
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
offset = part * sizeof(struct Partition) + sizeof(struct DriverDescriptor);
|
offset = part * sizeof(struct Partition) + sizeof(struct DriverDescriptor);
|
||||||
|
@ -9,6 +9,7 @@ static __attribute__((used)) char* rcsid = "$CVSHeader$";
|
|||||||
|
|
||||||
#include "partition.h"
|
#include "partition.h"
|
||||||
#include "libemile.h"
|
#include "libemile.h"
|
||||||
|
#include "emile.h"
|
||||||
|
|
||||||
int emile_map_set_bootinfo(emile_map_t *map, int bootstart, int bootsize,
|
int emile_map_set_bootinfo(emile_map_t *map, int bootstart, int bootsize,
|
||||||
int bootaddr, int bootentry, int checksum,
|
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))
|
if (!emile_map_is_valid(map))
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
map->partition.LgBootStart = bootstart;
|
write_long(&map->partition.LgBootStart, bootstart);
|
||||||
map->partition.BootSize = bootsize;
|
write_long(&map->partition.BootSize, bootsize);
|
||||||
map->partition.BootAddr = bootaddr;
|
write_long(&map->partition.BootAddr, bootaddr);
|
||||||
map->partition.BootEntry = bootentry;
|
write_long(&map->partition.BootEntry, bootentry);
|
||||||
map->partition.BootCksum = checksum;
|
write_long(&map->partition.BootCksum, checksum);
|
||||||
memset(map->partition.Processor, 0, sizeof(map->partition.Processor));
|
memset(map->partition.Processor, 0, sizeof(map->partition.Processor));
|
||||||
strcpy(map->partition.Processor, processor);
|
strcpy(map->partition.Processor, processor);
|
||||||
|
|
||||||
|
@ -7,6 +7,7 @@ static __attribute__((used)) char* rcsid = "$CVSHeader$";
|
|||||||
|
|
||||||
#include "partition.h"
|
#include "partition.h"
|
||||||
#include "libemile.h"
|
#include "libemile.h"
|
||||||
|
#include "emile.h"
|
||||||
|
|
||||||
int emile_map_set_driver_info(emile_map_t *map, int number,
|
int emile_map_set_driver_info(emile_map_t *map, int number,
|
||||||
int block, int size, int type)
|
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)
|
if (number >= DD_MAX_DRIVER)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
map->drivers.DrvInfo[number].Block = block;
|
write_long(&map->drivers.DrvInfo[number].Block, block);
|
||||||
map->drivers.DrvInfo[number].Size = size;
|
write_short(&map->drivers.DrvInfo[number].Size, size);
|
||||||
map->drivers.DrvInfo[number].Type = type;
|
write_short(&map->drivers.DrvInfo[number].Type, type);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -7,6 +7,7 @@ static __attribute__((used)) char* rcsid = "$CVSHeader$";
|
|||||||
|
|
||||||
#include "partition.h"
|
#include "partition.h"
|
||||||
#include "libemile.h"
|
#include "libemile.h"
|
||||||
|
#include "emile.h"
|
||||||
|
|
||||||
int emile_map_set_driver_number(emile_map_t *map, int number)
|
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)
|
if (number >= DD_MAX_DRIVER)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
map->drivers.DrvrCount = number;
|
write_short(&map->drivers.DrvrCount, number);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user