⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ide_bus.h

📁 newos is new operation system
💻 H
字号:
#ifndef __IDE_BUS_H__#define	__IDE_BUS_H__#include <newos/types.h>// Global defines -- ATA register and register bits.//// command block & control block regs//// these are the offsets into pio_reg_addrs[]#define CB_DATA  0   // data reg         in/out pio_base_addr1+0#define CB_ERR   1   // error            in     pio_base_addr1+1#define CB_FR    1   // feature reg         out pio_base_addr1+1#define CB_SC    2   // sector count     in/out pio_base_addr1+2#define CB_SN    3   // sector number    in/out pio_base_addr1+3#define CB_CL    4   // cylinder low     in/out pio_base_addr1+4#define CB_CH    5   // cylinder high    in/out pio_base_addr1+5#define CB_DH    6   // device head      in/out pio_base_addr1+6#define CB_STAT  7   // primary status   in     pio_base_addr1+7#define CB_CMD   7   // command             out pio_base_addr1+7#define CB_ASTAT 8   // alternate status in     pio_base_addr2+6#define CB_DC    8   // device control      out pio_base_addr2+6#define CB_DA    9   // device address   in     pio_base_addr2+7typedef		struct{	char		*name;	int	(*init)(int channel);	int	(*read_block)(void *cookie,int drive,long block,void *buffer,size_t size);	int	(*write_block)(void *cookie,int drive,long block,void *buffer,size_t size);	int	(*setup_dma)(void *cookie,int dir, long size, uint8 *buffer );	int	(*start_dma)(void *cookie);	int	(*finish_dma)(void *cookie);	int	(*write_register16)(void *cookie,int reg,uint16 value);	int	(*write_register)(void *cookie,int reg,uint8 value);	uint16	(*read_register16)(void *cookie,int reg);	uint8	(*read_register)(void *cookie,int reg);	uint8	(*get_alt_status)(void *cookie);	int	(*transfer_buffer)(void *cookie,int reg,void *buffer,size_t size,bool fromMemory);	int	(*select_drive)(void *cookie,int drive);	int	(*reset_bus)(void *cookie,int default_drive);	int	(*delay_on_bus)(void *cookie);	int	(*wait_busy)(void *cookie);	void	*(*get_nth_cookie)(int bus);	void 	*(*get_attached_drive)(void *cookie,int drive);	void 	*(*get_attached_drive_cookie)(void *cookie,int drive);	bool	(*support_dma)(void *cookie);	int	(*lock)(void *cookie);	int	(*unlock)(void *cookie);}ide_bus;extern	void	*bus_cookies[2];extern	ide_bus	*buses[2];#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -