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

📄 types.h

📁 linux环境在终端打印出所有smbios信息的代码
💻 H
字号:
#ifndef TYPES_H#define TYPES_Htypedef unsigned char u8;typedef unsigned short u16;typedef signed short i16;typedef unsigned int u32;/* * These macros help us solve problems on systems that don't support * non-aligned memory access. This isn't a big issue IMHO, since the tools * in this package are intended mainly for Intel and compatible systems, * which are little-endian and support non-aligned memory access. Anyway, * you may use the following defines to control the way it works: * - Define BIGENDIAN on big-endian systems. * - Define ALIGNMENT_WORKAROUND if your system doesn't support *   non-aligned memory access. In this case, we use a slower, but safer, *   memory access method. * You most probably will have to define none or the two of them. */#ifdef BIGENDIANtypedef struct {	u32 h;	u32 l;} u64;#elsetypedef struct {	u32 l;	u32 h;} u64;#endif#ifdef ALIGNMENT_WORKAROUNDstatic u64 U64(u32 low, u32 high){	u64 self;		self.l=low;	self.h=high;		return self;}#endif#ifdef ALIGNMENT_WORKAROUND#	ifdef BIGENDIAN#	define WORD(x) (u16)((x)[1]+((x)[0]<<8))#	define DWORD(x) (u32)((x)[3]+((x)[2]<<8)+((x)[1]<<16)+((x)[0]<<24))#	define QWORD(x) (U64(DWORD(x+4), DWORD(x)))#	else /* BIGENDIAN */#	define WORD(x) (u16)((x)[0]+((x)[1]<<8))#	define DWORD(x) (u32)((x)[0]+((x)[1]<<8)+((x)[2]<<16)+((x)[3]<<24))#	define QWORD(x) (U64(DWORD(x), DWORD(x+4)))#	endif /* BIGENDIAN */#else /* ALIGNMENT_WORKAROUND */#define WORD(x) (u16)(*(const u16 *)(x))#define DWORD(x) (u32)(*(const u32 *)(x))#define QWORD(x) (*(const u64 *)(x))#endif /* ALIGNMENT_WORKAROUND */#endif

⌨️ 快捷键说明

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