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

📄 usb.h

📁 WiiFuse is a FUSE filesystem module for Linux and Mac OS X. It will let you mount a Wii disc ISO an
💻 H
字号:
/*---------------------------------------------------------------------------------------------
 * USB Gecko Development Kit - http://www.usbgecko.com
 * --------------------------------------------------------------------------------------------
 * 
 *
 * usb.h - functions for the USB Gecko adapter (www.usbgecko.com).
 *
 * Copyright (c) 2008 - Nuke - <wiinuke@gmail.com>
 * 
 *---------------------------------------------------------------------------------------------*/


#define WIIMODE
// Wii Mode
#ifdef WIIMODE
	#define exi_chan0sr			*(volatile unsigned int*) 0xCD006800 // Channel 0 Status Register
	#define exi_chan1sr			*(volatile unsigned int*) 0xCD006814 // Channel 1 Status Register
	#define exi_chan2sr			*(volatile unsigned int*) 0xCD006828 // Channel 2 Status Register
	#define exi_chan0cr			*(volatile unsigned int*) 0xCD00680c // Channel 0 Control Register
	#define exi_chan1cr			*(volatile unsigned int*) 0xCD006820 // Channel 1 Control Register
	#define exi_chan2cr			*(volatile unsigned int*) 0xCD006834 // Channel 2 Control Register
	#define exi_chan0data		*(volatile unsigned int*) 0xCD006810 // Channel 0 Immediate Data
	#define exi_chan1data		*(volatile unsigned int*) 0xCD006824 // Channel 1 Immediate Data
	#define exi_chan2data		*(volatile unsigned int*) 0xCD006838 // Channel 2 Immediate Data
	#define exi_chan0dmasta		*(volatile unsigned int*) 0xCD006804 // Channel 0 DMA Start address
	#define exi_chan1dmasta		*(volatile unsigned int*) 0xCD006818 // Channel 1 DMA Start address
	#define exi_chan2dmasta		*(volatile unsigned int*) 0xCD00682c // Channel 2 DMA Start address
	#define exi_chan0dmalen		*(volatile unsigned int*) 0xCD006808 // Channel 0 DMA Length
	#define exi_chan1dmalen		*(volatile unsigned int*) 0xCD00681c // Channel 1 DMA Length
	#define exi_chan2dmalen		*(volatile unsigned int*) 0xCD006830 // Channel 2 DMA Length
#else
// GC Mode
	#define exi_chan0sr			*(volatile unsigned int*) 0xCC006800 // Channel 0 Status Register
	#define exi_chan1sr			*(volatile unsigned int*) 0xCC006814 // Channel 1 Status Register
	#define exi_chan2sr			*(volatile unsigned int*) 0xCC006828 // Channel 2 Status Register
	#define exi_chan0cr			*(volatile unsigned int*) 0xCC00680c // Channel 0 Control Register
	#define exi_chan1cr			*(volatile unsigned int*) 0xCC006820 // Channel 1 Control Register
	#define exi_chan2cr			*(volatile unsigned int*) 0xCC006834 // Channel 2 Control Register
	#define exi_chan0data		*(volatile unsigned int*) 0xCC006810 // Channel 0 Immediate Data
	#define exi_chan1data		*(volatile unsigned int*) 0xCC006824 // Channel 1 Immediate Data
	#define exi_chan2data		*(volatile unsigned int*) 0xCC006838 // Channel 2 Immediate Data
	#define exi_chan0dmasta		*(volatile unsigned int*) 0xCC006804 // Channel 0 DMA Start address
	#define exi_chan1dmasta		*(volatile unsigned int*) 0xCC006818 // Channel 1 DMA Start address
	#define exi_chan2dmasta		*(volatile unsigned int*) 0xCC00682c // Channel 2 DMA Start address
	#define exi_chan0dmalen		*(volatile unsigned int*) 0xCC006808 // Channel 0 DMA Length
	#define exi_chan1dmalen		*(volatile unsigned int*) 0xCC00681c // Channel 1 DMA Length
	#define exi_chan2dmalen		*(volatile unsigned int*) 0xCC006830 // Channel 2 DMA Length	
#endif

// Function prototypes
void _usb_flush();
int _usb_checkgecko();
void _usb_sendbuffer (const void *buffer, int size);
void _usb_receivebuffer (void *buffer, int size);
void _usb_sendbuffersafe (const void *buffer, int size);
void _usb_receivebuffersafe (void *buffer, int size);

⌨️ 快捷键说明

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