diff --git a/libmap/Makefile b/libmap/Makefile index 89c5154..fbdf422 100644 --- a/libmap/Makefile +++ b/libmap/Makefile @@ -28,7 +28,7 @@ SOURCES = map_bootblock_get_type.c map_bootblock_is_valid.c \ map_partition_set_startup.c map_read.c map_seek_driver_partition.c \ map_set_bootinfo.c map_set_driver_info.c map_set_driver_number.c \ map_set_partition_name.c map_set_partition_type.c map_set_startup.c \ - map_write.c + map_write.c map_block0_write.c HEADERS = libmap.h diff --git a/libmap/libmap.h b/libmap/libmap.h index 87bae11..fbe9de8 100644 --- a/libmap/libmap.h +++ b/libmap/libmap.h @@ -180,4 +180,5 @@ extern int map_set_driver_info(map_t *map, int number, int block, int size, int extern int map_set_driver_number(map_t *map, int number); extern unsigned long map_get_driver_signature(map_t* map); extern int emile_block0_write(map_t *map); +extern int map_block0_write(map_t *map); #endif diff --git a/libmap/map_block0_write.c b/libmap/map_block0_write.c new file mode 100644 index 0000000..62e47f5 --- /dev/null +++ b/libmap/map_block0_write.c @@ -0,0 +1,23 @@ +/* + * + * (c) 2004-2007 Laurent Vivier + * + */ + +#include +#include + +#include "libmap.h" + +int map_block0_write(map_t *map) +{ + int ret; + + ret = lseek(map->fd, 0, SEEK_SET); + if (ret != 0) + return -1; + + ret = write(map->fd, &map->drivers, sizeof(map->drivers)); + + return ret; +}