12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- #ifndef DISK_H
- #define DISK_H
-
- #include "etherboot.h" /* for sector_t */
- #include "dev.h"
-
- /*
- * Structure returned from disk_probe and passed to other driver
- * functions.
- */
- struct disk
- {
- struct dev dev; /* This must come first */
- int (*read)(struct disk *, sector_t sector);
- unsigned int drive;
- unsigned long hw_sector_size; /* The hardware sector size for dealing
- * with partition tables and the like.
- * Must be >= 512
- */
- unsigned int sectors_per_read; /* The number of 512 byte sectors
- * returned by each read call.
- * All I/O must be aligned to this size.
- */
- unsigned int bytes; /* The number of bytes in the read buffer. */
- sector_t sectors; /* The number of sectors on the drive. */
- sector_t sector; /* The first sector in the driver buffer */
- unsigned char *buffer; /* The data read from the drive */
- void *priv; /* driver can hang private data here */
-
- unsigned long disk_offset;
- int direction;
- };
-
- struct disk_operations {
- };
-
- extern struct disk disk;
- extern int url_file(const char *name,
- int (*fnc)(unsigned char *, unsigned int, unsigned int, int));
-
- extern int disk_probe(struct dev *dev);
- extern int disk_load_configuration(struct dev *dev);
- extern int disk_load(struct dev *dev);
- extern void disk_disable(void);
-
- extern struct type_driver disk_driver;
-
- #ifndef DOWNLOAD_PROTO_DISK
- #define disk_disable() do { } while(0)
- #endif
-
- #define SECTOR_SIZE 512
- #define SECTOR_SHIFT 9
-
- /* Maximum block_size that may be set. */
- #define DISK_BUFFER_SIZE (18 * SECTOR_SIZE)
-
- #endif /* DISK_H */
|