📄 smc91111config.h
字号:
/* * $Id: smc91111config.h,v 1.1.2.1 2005/10/05 19:29:23 joel Exp $ */#ifndef _SMC91111_CONFIG_H_#define _SMC91111_CONFIG_H_/* * RTEMS event used by interrupt handler to signal driver tasks. * This must not be any of the events used by the network task synchronization. */#define INTERRUPT_EVENT RTEMS_EVENT_1/* * RTEMS event used to start transmit daemon. * This must not be the same as INTERRUPT_EVENT. */#define START_TRANSMIT_EVENT RTEMS_EVENT_2 /* event to send when tx buffers become available */#define SMC91111_TX_WAIT_EVENT RTEMS_EVENT_3/* Number of OCs supported by this driver*/#define NOCDRIVER 1/* Receive buffer size -- Allow for a full ethernet packet including CRC */#define RBUF_SIZE 1536#define ET_MINLEN 64 /* minimum message length */#if (MCLBYTES < RBUF_SIZE)# error "Driver must have MCLBYTES > RBUF_SIZE"#endif/* ----------------- cygdriver params ----------------- */#define LAN91CXX_32BIT_RX#define LAN91CXX_IS_LAN91C111/* ----------------- compat layer ----------------- *//* ------------------------------------------------------------------------- Define basic types for using integers in memory and structures; depends on compiler defaults and CPU type. */typedef unsigned char cyg_uint8 ;typedef signed char cyg_int8 ;typedef unsigned short cyg_uint16 ;typedef signed short cyg_int16 ;typedef unsigned int cyg_uint32 ;typedef signed int cyg_int32 ;typedef unsigned int cyg_bool ;typedef cyg_uint32 CYG_WORD;typedef cyg_uint8 CYG_BYTE;typedef cyg_uint16 CYG_WORD16;typedef cyg_uint32 CYG_WORD32;#ifndef CYG_SWAP16# define CYG_SWAP16(_x_) \ ({ cyg_uint16 _x = (_x_); ((_x << 8) | (_x >> 8)); })#endif#ifndef CYG_SWAP32# define CYG_SWAP32(_x_) \ ({ cyg_uint32 _x = (_x_); \ ((_x << 24) | \ ((0x0000FF00UL & _x) << 8) | \ ((0x00FF0000UL & _x) >> 8) | \ (_x >> 24)); })#endif# define CYG_CPU_TO_BE16(_x_) (_x_)# define CYG_CPU_TO_BE32(_x_) (_x_)# define CYG_BE16_TO_CPU(_x_) (_x_)# define CYG_BE32_TO_CPU(_x_) (_x_)# define CYG_CPU_TO_LE16(_x_) CYG_SWAP16((_x_))# define CYG_CPU_TO_LE32(_x_) CYG_SWAP32((_x_))# define CYG_LE16_TO_CPU(_x_) CYG_SWAP16((_x_))# define CYG_LE32_TO_CPU(_x_) CYG_SWAP32((_x_))#define CYG_MACRO_START do {#define CYG_MACRO_END } while (0)#define HAL_IO_BARRIER() \ asm volatile ( "" : : : "memory" )#define HAL_READ_UINT8( _register_, _value_ ) \ CYG_MACRO_START \ ((_value_) = *((volatile CYG_BYTE *)(_register_))); \ HAL_IO_BARRIER (); \ CYG_MACRO_END#define HAL_WRITE_UINT8( _register_, _value_ ) \ CYG_MACRO_START \ (*((volatile CYG_BYTE *)(_register_)) = (_value_)); \ HAL_IO_BARRIER (); \ CYG_MACRO_END#define HAL_READ_UINT16( _register_, _value_ ) \ CYG_MACRO_START \ ((_value_) = *((volatile CYG_WORD16 *)(_register_))); \ HAL_IO_BARRIER (); \ CYG_MACRO_END#define HAL_WRITE_UINT16( _register_, _value_ ) \ CYG_MACRO_START \ (*((volatile CYG_WORD16 *)(_register_)) = (_value_)); \ HAL_IO_BARRIER (); \ CYG_MACRO_END#define HAL_READ_UINT32( _register_, _value_ ) \ CYG_MACRO_START \ ((_value_) = *((volatile CYG_WORD32 *)(_register_))); \ HAL_IO_BARRIER (); \ CYG_MACRO_END#define HAL_READ_UINT16( _register_, _value_ ) \ CYG_MACRO_START \ ((_value_) = *((volatile CYG_WORD16 *)(_register_))); \ HAL_IO_BARRIER (); \ CYG_MACRO_END#define CYG_ASSERT(c,p) do { if (!(c)) { while(1) { printf(p);} }; } while(0)#define HAL_DELAY_US(p) rtems_task_wake_after (TOD_MICROSECONDS_TO_TICKS (p))#endif /* _SMC_91111_CONFIG_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -