📄 com_define.h
字号:
#ifndef COM_DEFINE_H#define COM_DEFINE_H/* * This file defines Marvell OS independent primary data type for all OS. * * We have macros to differentiate different CPU and OS. * * CPU definitions: * _CPU_X86_16B * Specify 16bit x86 platform, this is used for BIOS and DOS utility. * _CPU_X86_32B * Specify 32bit x86 platform, this is used for most OS drivers. * _CPU_IA_64B * Specify 64bit IA64 platform, this is used for IA64 OS drivers. * _CPU_AMD_64B * Specify 64bit AMD64 platform, this is used for AMD64 OS drivers. * * OS definitions: * _OS_WINDOWS * _OS_LINUX * _OS_FREEBSD * _OS_BIOS * __QNXNTO__ */ #include "mv_os.h"#if !defined(IN)# define IN#endif#if !defined(OUT)# define OUT#endif#if defined(_OS_LINUX) || defined(__QNXNTO__)# define BUFFER_PACKED __attribute__((packed))#elif defined(_OS_WINDOWS)# define BUFFER_PACKED#elif defined(_OS_BIOS)# define BUFFER_PACKED#endif /* defined(_OS_LINUX) || defined(__QNXNTO__) */#define MV_BIT(x) (1L << (x))#if !defined(NULL)# define NULL 0#endif /* NULL */#define MV_TRUE 1#define MV_FALSE 0typedef unsigned char MV_BOOLEAN, *MV_PBOOLEAN;typedef unsigned char MV_U8, *MV_PU8;typedef signed char MV_I8, *MV_PI8;typedef unsigned short MV_U16, *MV_PU16;typedef signed short MV_I16, *MV_PI16;typedef void MV_VOID, *MV_PVOID;#ifdef _OS_BIOS typedef MV_U8 GEN_FAR* MV_LPU8; typedef MV_I8 GEN_FAR* MV_LPI8; typedef MV_U16 GEN_FAR* MV_LPU16; typedef MV_I16 GEN_FAR* MV_LPI16; typedef MV_U32 GEN_FAR* MV_LPU32; typedef MV_I32 GEN_FAR* MV_LPI32; typedef void GEN_FAR* MV_LPVOID;#else typedef void *MV_LPVOID;#endif /* _OS_BIOS *//* Pre-define segment in C code*/#if defined(_OS_BIOS)# define BASEATTR __based(__segname("_CODE")) # define BASEATTRData __based(__segname("_CODE")) #else# define BASEATTR #endif /* _OS_BIOS */#ifdef DEBUG_COM_SPECIAL #define MV_DUMP_COM_SPECIAL(pString) {bDbgPrintStr(pString);bCOMEnter();} #define MV_DUMP32_COM_SPECIAL(pString, value) bDbgPrintStr_U32(pString, value) #define MV_DUMP16_COM_SPECIAL(pString, value) bDbgPrintStr_U16(pString, value) #define MV_DUMP32_COM_SPECIAL3(pString, value1, value2) bDbgPrintStr_U32_3(pString, value1, value2) #define MV_DUMP8_COM_SPECIAL(pString, value) bDbgPrintStr_U8(pString, value) #define MV_HALTKEY_SPECIAL waitForKeystroke()#else #define MV_DUMP_COM_SPECIAL(pString) #define MV_DUMP32_COM_SPECIAL(pString, value) #define MV_DUMP16_COM_SPECIAL(pString, value) #define MV_DUMP32_COM_SPECIAL3(pString, value1, value2) #define MV_DUMP8_COM_SPECIAL(pString, value) #define MV_HALTKEY_SPECIAL #endif/* For debug version only */#ifdef DEBUG_BIOS #ifdef DEBUG_SHOW_ALL #define MV_DUMP32(_x_) {mvDebugDumpU32(_x_);bCOMEnter();} #define MV_DUMP16(_x_) {mvDebugDumpU16(_x_);bCOMEnter();} #define MV_DUMP8(_x_) {mvDebugDumpU8(_x_);bCOMEnter();} #define MV_DUMPC32(_x_) {mvDebugDumpU32(_x_);bCOMEnter();} #define MV_DUMPC16(_x_) {mvDebugDumpU16(_x_);bCOMEnter();} #define MV_DUMPC8(_x_) {mvDebugDumpU8(_x_);bCOMEnter();} #define MV_DUMPE32(_x_) {mvDebugDumpU32(_x_);bCOMEnter();} #define MV_DUMPE16(_x_) {mvDebugDumpU16(_x_);bCOMEnter();} #define MV_DUMPE8(_x_) {mvDebugDumpU8(_x_);bCOMEnter();} #define MV_DUMP_COM(pString) {bDbgPrintStr(pString);bCOMEnter();} #define MV_DUMP32_COM(pString, value) bDbgPrintStr_U32(pString, value) #define MV_DUMP16_COM(pString, value) bDbgPrintStr_U16(pString, value) #define MV_DUMP32_COM3(pString, value1, value2) bDbgPrintStr_U32_3(pString, value1, value2) #define MV_DUMP8_COM(pString, value) bDbgPrintStr_U8(pString, value) #else #define MV_DUMP32(_x_) //{mvDebugDumpU32(_x_);bCOMEnter();} #define MV_DUMP16(_x_) //{mvDebugDumpU16(_x_);bCOMEnter();} #define MV_DUMP8(_x_) //{mvDebugDumpU8(_x_);bCOMEnter();} #define MV_DUMPC32(_x_) //{mvDebugDumpU32(_x_);bCOMEnter();} #define MV_DUMPC16(_x_) //{mvDebugDumpU16(_x_);bCOMEnter();} #define MV_DUMPC8(_x_) //{mvDebugDumpU8(_x_);bCOMEnter();} #define MV_DUMPE32(_x_) //{mvDebugDumpU32(_x_);bCOMEnter();} #define MV_DUMPE16(_x_) //{mvDebugDumpU16(_x_);bCOMEnter();} #define MV_DUMPE8(_x_) //{mvDebugDumpU8(_x_);bCOMEnter();} #define MV_DUMP_COM(pString) //{bDbgPrintStr(pString);bCOMEnter();} #define MV_DUMP32_COM(pString, value) //bDbgPrintStr_U32(pString, value) #define MV_DUMP16_COM(pString, value) //bDbgPrintStr_U16(pString, value) #define MV_DUMP32_COM3(pString, value1, value2) //bDbgPrintStr_U32_3(pString, value1, value2) #define MV_DUMP8_COM(pString, value) //bDbgPrintStr_U8(pString, value) #endif #define MV_BIOSDEBUG(pString, value) bDbgPrintStr_U32(pString, value) #define MV_HALTKEY waitForKeystroke() #define MV_ENTERLINE //mvChangLine()#else #define MV_DUMP32(_x_) //{mvDebugDumpU32(_x_);bCOMEnter();} #define MV_DUMP16(_x_) //{mvDebugDumpU16(_x_);bCOMEnter();} #define MV_DUMP8(_x_) //{mvDebugDumpU8(_x_);bCOMEnter();} #define MV_DUMPC32(_x_) //{mvDebugDumpU32(_x_);bCOMEnter();} #define MV_DUMPC16(_x_) //{mvDebugDumpU16(_x_);bCOMEnter();} #define MV_DUMPC8(_x_) //{mvDebugDumpU8(_x_);bCOMEnter();} #define MV_DUMPE32(_x_) //{mvDebugDumpU32(_x_);bCOMEnter();} #define MV_DUMPE16(_x_) //{mvDebugDumpU16(_x_);bCOMEnter();} #define MV_DUMPE8(_x_) //{mvDebugDumpU8(_x_);bCOMEnter();} #define MV_DUMP_COM(pString) //{bDbgPrintStr(pString);bCOMEnter();} #define MV_DUMP32_COM(pString, value) //bDbgPrintStr_U32(pString, value) #define MV_DUMP16_COM(pString, value) //bDbgPrintStr_U16(pString, value) #define MV_DUMP32_COM3(pString, value1, value2) //bDbgPrintStr_U32_3(pString, value1, value2) #define MV_DUMP8_COM(pString, value) //bDbgPrintStr_U8(pString, value) #define MV_BIOSDEBUG(pString, value) #define MV_HALTKEY #define MV_ENTERLINE #endif#if defined(_OS_LINUX) || defined(__QNXNTO__) /* unsigned/signed long is 64bit for AMD64, so use unsigned int instead */ typedef unsigned int MV_U32, *MV_PU32; typedef signed int MV_I32, *MV_PI32; typedef unsigned long MV_ULONG, *MV_PULONG; typedef signed long MV_ILONG, *MV_PILONG;#else /* unsigned/signed long is 32bit for x86, IA64 and AMD64 */ typedef unsigned long MV_U32, *MV_PU32; typedef signed long MV_I32, *MV_PI32;#endif /* defined(_OS_LINUX) || defined(__QNXNTO__) */#if defined(_OS_WINDOWS) typedef unsigned __int64 _MV_U64; typedef signed __int64 _MV_I64;#elif defined(_OS_LINUX) || defined(__QNXNTO__) typedef unsigned long long _MV_U64; typedef signed long long _MV_I64;#elif defined(_OS_FREEBSD)# error "No Where"#else# error "No Where"#endif /* _OS_WINDOWS */typedef _MV_U64 BUS_ADDRESS;#ifdef _OS_LINUX# if defined(__KCONF_64BIT__)# define _SUPPORT_64_BIT# else# ifdef _SUPPORT_64_BIT# error Error 64_BIT CPU Macro# endif# endif /* defined(__KCONF_64BIT__) */#elif defined(_OS_BIOS) || defined(__QNXNTO__)# undef _SUPPORT_64_BIT#else# define _SUPPORT_64_BIT#endif /* _OS_LINUX *//* * Primary Data Type */#if defined(_OS_WINDOWS) typedef union { struct { MV_U32 low; MV_U32 high; } parts; _MV_U64 value; } MV_U64, *PMV_U64, *MV_PU64;#elif defined(_OS_LINUX) || defined(__QNXNTO__) typedef union { struct {# if __MV_LITTLE_ENDIAN__ MV_U32 low; MV_U32 high;# elif __MV_BIG_ENDIAN__ MV_U32 high; MV_U32 low;# else# error "undefined endianness"# endif /* __MV_LITTLE_ENDIAN__ */ } parts; _MV_U64 value; } MV_U64, *PMV_U64, *MV_PU64;#else/* BIOS compiler doesn't support 64 bit data structure. */ typedef union { struct { MV_U32 low; MV_U32 high; }; struct { MV_U32 value; MV_U32 value1; }; } _MV_U64,MV_U64, *MV_PU64, *PMV_U64;#endif /* defined(_OS_LINUX) || defined(_OS_WINDOWS) || defined(__QNXNTO__)*//* PTR_INTEGER is necessary to convert between pointer and integer. */#if defined(_SUPPORT_64_BIT) typedef _MV_U64 MV_PTR_INTEGER;#else typedef MV_U32 MV_PTR_INTEGER;#endif /* defined(_SUPPORT_64_BIT) *//* LBA is the logical block access */typedef MV_U64 MV_LBA;#if defined(_CPU_16B) typedef MV_U32 MV_PHYSICAL_ADDR;#else typedef MV_U64 MV_PHYSICAL_ADDR;#endif /* defined(_CPU_16B) */#if defined (_OS_WINDOWS)typedef PVOID MV_FILE_HANDLE;#elif defined(_OS_LINUX) || defined(__QNXNTO__)typedef MV_I32 MV_FILE_HANDLE;#endif/* Product device id */#define VENDOR_ID 0x11AB#define DEVICE_ID_THORLITE_2S1P 0x6121#define DEVICE_ID_THORLITE_0S1P 0x6101#define DEVICE_ID_THORLITE_1S1P 0x6111#define DEVICE_ID_THOR_4S1P 0x6141#define DEVICE_ID_THOR_4S1P_NEW 0x6145/* Revision ID starts from B1 */#define DEVICE_ID_THORLITE_2S1P_WITH_FLASH 0x6122 /* Odin lite version */#define DEVICE_ID_6320 0x6320#define DEVICE_ID_6340 0x6340 #define DEVICE_ID_6440 0x6440 /* mule-board */#define DEVICE_ID_6480 0x6480 /* mule-board */#endif /* COM_DEFINE_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -