diff options
Diffstat (limited to 'roms/ipxe/src/include/ipxe/cpio.h')
-rw-r--r-- | roms/ipxe/src/include/ipxe/cpio.h | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/roms/ipxe/src/include/ipxe/cpio.h b/roms/ipxe/src/include/ipxe/cpio.h new file mode 100644 index 00000000..27723280 --- /dev/null +++ b/roms/ipxe/src/include/ipxe/cpio.h @@ -0,0 +1,53 @@ +#ifndef _IPXE_CPIO_H +#define _IPXE_CPIO_H + +/** @file + * + * CPIO archives + * + */ + +FILE_LICENCE ( GPL2_OR_LATER ); + +/** A CPIO archive header + * + * All field are hexadecimal ASCII numbers padded with '0' on the + * left to the full width of the field. + */ +struct cpio_header { + /** The string "070701" or "070702" */ + char c_magic[6]; + /** File inode number */ + char c_ino[8]; + /** File mode and permissions */ + char c_mode[8]; + /** File uid */ + char c_uid[8]; + /** File gid */ + char c_gid[8]; + /** Number of links */ + char c_nlink[8]; + /** Modification time */ + char c_mtime[8]; + /** Size of data field */ + char c_filesize[8]; + /** Major part of file device number */ + char c_maj[8]; + /** Minor part of file device number */ + char c_min[8]; + /** Major part of device node reference */ + char c_rmaj[8]; + /** Minor part of device node reference */ + char c_rmin[8]; + /** Length of filename, including final NUL */ + char c_namesize[8]; + /** Checksum of data field if c_magic is 070702, othersize zero */ + char c_chksum[8]; +} __attribute__ (( packed )); + +/** CPIO magic */ +#define CPIO_MAGIC "070701" + +extern void cpio_set_field ( char *field, unsigned long value ); + +#endif /* _IPXE_CPIO_H */ |