Unify ATAPI and SCSI CD-ROM code.

This commit is contained in:
SarahW 2018-01-21 15:59:29 +00:00
commit 6ecdd2efd0
19 changed files with 761 additions and 1509 deletions

View file

@ -1,6 +1,8 @@
#ifndef __IDE_ATAPI__
#define __IDE_ATAPI__
#include "scsi.h"
/*ATAPI stuff*/
typedef struct ATAPI
{
@ -28,6 +30,36 @@ typedef struct ATAPI
extern ATAPI *atapi;
void atapi_discchanged();
void atapi_insert_cdrom();
typedef struct atapi_device_t
{
scsi_bus_t bus;
uint8_t command[12];
int command_pos;
int state;
int max_transfer_len;
uint8_t data[65536];
int data_read_pos, data_write_pos;
int bus_state;
struct IDE *ide;
int board;
uint8_t *atastat;
uint8_t *error;
int *cylinder;
} atapi_device_t;
void atapi_data_write(atapi_device_t *atapi_dev, uint16_t val);
uint16_t atapi_data_read(atapi_device_t *atapi_dev);
void atapi_command_start(atapi_device_t *atapi);
uint8_t atapi_read_iir(atapi_device_t *atapi_dev);
uint8_t atapi_read_drq(atapi_device_t *atapi_dev);
void atapi_process_packet(atapi_device_t *atapi_dev);
#endif