📄 atapi.h
字号:
/***************************************** Copyright (c) 2002-2004 Sigma Designs, Inc. All Rights Reserved Proprietary and Confidential *****************************************//* This file is part of the EM86XX boot loader *//* * atapi.h * * ATAPI support * * modified from jasper boot loader by Ho Lee 03/09/2004 */#ifndef __BOOTLOADER_ATAPI_H#define __BOOTLOADER_ATAPI_H// atapi error codes#define ATAPIRES_OK 0 // i/o done#define ATAPIRES_ERR 1 // i/o finished with error#define ATAPIRES_NOTRDY 2 // controller not ready#define ATAPIRES_NODRQ 3 // no data request#define ATAPIRES_INVDIR 4 // invalid bus phase direction#define ATAPIRES_OVERRUN 5 // data overrun#define ATAPIRES_UNDERRUN 6 // data underrun#define ATAPIRES_BM_ERROR1 7 // interrupt came but status indicated error#define ATAPIRES_BM_ERROR2 8 // interrupt came but io is not completed#define ATAPIDIR_NONE 0#define ATAPIDIR_READ 1#define ATAPIDIR_WRITE 2typedef struct tag_packet_command { unsigned char *buffer; // data buffer (used by specific atapi commands to read data from atapi device) int buflen; // length of buffer int stat; // result of command (0 = success, !0 = error) see ATAPIRES_xxx definitions unsigned char c[12]; // 12 byte atapi packet command int data_direction; // ATAPIDIR_xxx // reserved for driver use int error; unsigned char *addr; int count;} packet_command_t;// function prototypesint atapi_eject(int drive, int open);int atapi_readsense(int drive, char *sensedata);int atapi_waitready(int drive, int timeout);int atapi_readsector(int drive, void *buf, unsigned long first, int nsector);#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -