12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- #ifndef FDMANIFEST_SOURCE
- #define FDMANIFEST_SOURCE
- #include <stdio.h>
- #include <stdlib.h>
- #include <stdint.h>
- #include <errno.h>
- #include "../tools/endian.h"
- #include "../tools/files.h"
- #include "../tools/error.h"
- #include "../nvm/nvm.h"
- signed fdmanifest (signed fd, char const * filename, struct nvm_header2 * nvm_header, unsigned module)
- {
- off_t extent = LE32TOH (nvm_header->ImageLength);
- void * memory = malloc (extent);
- if (!memory)
- {
- error (1, 0, FILE_CANTLOAD, filename);
- }
- if (read (fd, memory, extent) != (signed)(extent))
- {
- error (1, errno, FILE_CANTREAD, filename);
- }
- if (lseek (fd, (off_t)(0) - extent, SEEK_CUR) == -1)
- {
- error (1, errno, FILE_CANTSEEK, filename);
- }
- printf ("------- %s (%d) -------\n", filename, module);
- if (manifest (memory, extent))
- {
- error (1, 0, "Bad manifest: %s", filename);
- }
- free (memory);
- return (0);
- }
- #endif
|