quinn-os/hd.h

31 lines
945 B
C

#ifndef __HD_H
#define __HD_H
#include "pata.h"
struct partition_table {
unsigned char boot;
unsigned char start_head;
unsigned short partition_start;
unsigned char type;
unsigned char end_head;
unsigned short partition_end;
unsigned int relative_sector;
unsigned int total_sectors;
} __attribute__((packed));
struct hd_dev {
struct ide_dev *ide_dev;
unsigned char drive;
unsigned char part;
unsigned int part_offset;
unsigned int part_len;
};
extern int init_hd(struct ide_dev *ide);
extern char *hd_read_block(int hd, unsigned int blockno, char *dest, unsigned int blocksize);
extern int hd_read_blocks(int hd, unsigned int blockstart, unsigned int blockcount, char *dest, unsigned int blocksize);
extern void hd_write_blocks(int hd, unsigned int blockstart, unsigned int blockcount, char *source, unsigned int blocksize);
extern void hd_write_block(int hd, unsigned int blockno, char *source, unsigned int blocksize);
#endif