diff options
author | Sebastian Schmelzer | 2010-10-25 16:53:54 +0200 |
---|---|---|
committer | Sebastian Schmelzer | 2010-10-25 16:53:54 +0200 |
commit | 3050a9253437f4a4b5ad4bf3b3efdc3c660a5137 (patch) | |
tree | 91ac22153e416aac7ca20916b314b5e2ffa871b1 /contrib/syslinux-4.02/core/include/disk.h | |
download | preboot-3050a9253437f4a4b5ad4bf3b3efdc3c660a5137.tar.gz preboot-3050a9253437f4a4b5ad4bf3b3efdc3c660a5137.tar.xz preboot-3050a9253437f4a4b5ad4bf3b3efdc3c660a5137.zip |
Diffstat (limited to 'contrib/syslinux-4.02/core/include/disk.h')
-rw-r--r-- | contrib/syslinux-4.02/core/include/disk.h | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/contrib/syslinux-4.02/core/include/disk.h b/contrib/syslinux-4.02/core/include/disk.h new file mode 100644 index 0000000..ac23e92 --- /dev/null +++ b/contrib/syslinux-4.02/core/include/disk.h @@ -0,0 +1,37 @@ +#ifndef DISK_H +#define DISK_H + +#include <stddef.h> +#include <stdint.h> +#include <stdbool.h> + +typedef uint64_t sector_t; +typedef uint64_t block_t; + +/* + * struct disk: contains the information about a specific disk and also + * contains the I/O function. + */ +struct disk { + unsigned int disk_number; /* in BIOS style */ + unsigned int sector_size; /* gener512B or 2048B */ + unsigned int sector_shift; + unsigned int maxtransfer; /* Max sectors per transfer */ + + unsigned int h, s; /* CHS geometry */ + unsigned int secpercyl; /* h*s */ + unsigned int _pad; + + sector_t part_start; /* the start address of this partition(in sectors) */ + + int (*rdwr_sectors)(struct disk *, void *, sector_t, size_t, bool); +}; + +extern void read_sectors(char *, sector_t, int); +extern void getoneblk(struct disk *, char *, block_t, int); + +/* diskio.c */ +struct disk *disk_init(uint8_t, bool, sector_t, uint16_t, uint16_t, uint32_t); +struct device *device_init(uint8_t, bool, sector_t, uint16_t, uint16_t, uint32_t); + +#endif /* DISK_H */ |