oak.h

来自「Linux下的无线网卡通用驱动程序」· C头文件 代码 · 共 198 行

H
198
字号
#include <inttypes.h>typedef uint32_t	DWORD;typedef uint16_t	WORD;typedef uint8_t		BYTE;/* * JBIG BIH.  But note that Oak uses it little endian. */typedef struct{    DWORD	opt1;    DWORD	xd;	// Oak has this little endian    DWORD	yd;	// Oak has this little endian    DWORD	l0;	// Oak has this little endian    DWORD	opt2;} OAKBIH;/* * Oak record header.  Every record starts with one of these and * the entire record is always padded out to a multiple of 16 bytes. */typedef struct{    char	magic[4];			#define OAK_HDR_MAGIC	"OAKT"    DWORD	len;		// Total length of record including this header    DWORD	type;		// Record type} OAK_HDR;/* * Note that the upper nibble of the type number encodes the class * * 0x	- start/end doc * 1x	- start/end page * 2x	- page parameters * 3x	- image data *//************************************************************************//*	0x	-	start/end doc					*//************************************************************************//* * First record in file. * * No idea what the payload means yet.  My guess is username. */#define	OAK_TYPE_OTHER	0x0Dtypedef struct{    WORD	unk;		// Always 1    char	string[64];	// "OTHER" padded with 0's    // WORD	pad;		// "PAD_PAD_" as needed.} OAK_OTHER;typedef OAK_OTHER	HDR_0D;/* * date/time record */#define	OAK_TYPE_TIME	0x0Ctypedef struct{    char	datetime[32];	// Date/time in string format (with NL)    DWORD	time_t;		// Time in seconds since the Unix epoch    WORD	year;		// e.g. 2003    WORD	tm_mon;		// Month-1    WORD	tm_mday;	// Day of month (1-31)    WORD	tm_hour;	// Hour (0-23)    WORD	tm_min;		// Minute (0-59)    WORD	tm_sec;		// Second (0-59)    // DWORD	pad;} OAK_TIME;typedef OAK_TIME	HDR_0C;/* * Filename record */#define	OAK_TYPE_FILENAME	0x0Atypedef struct{    char	string[64];	// "OTHER" padded with 0's} OAK_FILENAME;/* * End of document */#define	OAK_TYPE_END_DOC	0x0B/************************************************************************//*	1x	-	start/end page					*//************************************************************************/#define	OAK_TYPE_START_PAGE	0x14	// No arguments#define	OAK_TYPE_START_IMAGE	0x15	// No arguments#define	OAK_TYPE_END_IMAGE	0x17	// No arguments#define	OAK_TYPE_END_PAGE	0x18	// WORD argument (0)/************************************************************************//*	2x	-	page parameters					*//************************************************************************/#define	OAK_TYPE_SOURCE		0x28	// DWORD argument: paper source				#define OAK_SOURCE_TRAY1	1				#define OAK_SOURCE_MANUAL	4				#define OAK_SOURCE_AUTO		7#define	OAK_TYPE_MEDIA		0x29typedef struct{    BYTE	media;		// Media code				#define OAK_MEDIA_AUTO		0				#define OAK_MEDIA_PLAIN		1				#define OAK_MEDIA_PREPRINTED	2				#define OAK_MEDIA_LETTERHEAD	3				#define OAK_MEDIA_GRAYTRANS	4				#define OAK_MEDIA_PREPUNCHED	5				#define OAK_MEDIA_LABELS	6				#define OAK_MEDIA_BOND		7				#define OAK_MEDIA_RECYCLED	8				#define OAK_MEDIA_COLOR		9				#define OAK_MEDIA_CARDSTOCK	10				#define OAK_MEDIA_HEAVY		11				#define OAK_MEDIA_ENVELOPE	12				#define OAK_MEDIA_LIGHT		13				#define OAK_MEDIA_TOUGH		14    BYTE	unk8[3];	// Unknown, 2, 0, 0    char	string[64];	// Unknown string, padd with blanks} OAK_MEDIA;#define	OAK_TYPE_COPIES		0x2Atypedef struct{    DWORD	copies;		// Number of copies    DWORD	unk;		// collate????} OAK_COPIES;#define	OAK_TYPE_PAPER		0x2Btypedef struct{    DWORD	paper;		// Paper code	#define OAK_PAPER_LETTER	1    // 8.5 x 11in	#define OAK_PAPER_LEGAL		5    // 8.5 x 14in	#define OAK_PAPER_EXECUTIVE	7    // 7.25 x 10.5in	#define OAK_PAPER_A4		9    // 210 x 297mm	#define OAK_PAPER_A5		11   // 148 x 210mm	#define OAK_PAPER_B5_JIS	13   // 182 x 257mm	#define OAK_PAPER_ENV_10	20   // 4.125 x 9.5in	#define OAK_PAPER_ENV_DL	27   // 110 x 220mm	#define OAK_PAPER_ENV_C5	28   // 162 x 229mm	#define OAK_PAPER_ENV_B5	34   // 176 x 250mm	#define OAK_PAPER_ENV_MONARCH	37   // 3.875 x 7.5in	#define OAK_PAPER_B5_ISO	257  // 176 x 250mm	#define OAK_PAPER_EXECUTIVE_JIS	258  // 8 x 13in	#define OAK_PAPER_16K		93   // 7.75 x 10.75in	#define OAK_PAPER_DOUBLE_POSTCARD 69 // 5.8 x 7.9in	#define OAK_PAPER_POSTCARD	43   // 4.25 x 6in	#define OAK_PAPER_CUSTOM	256  // user defined    DWORD	w1200;		// Paper width at 1200 DPI    DWORD	h1200;		// Paper height at 1200 DPI    DWORD	unk;		// unknown, 0} OAK_PAPER;/************************************************************************//*	3x	-	JBIG image data					*//************************************************************************/#define OAK_TYPE_IMAGE_COLOR	0x32#define OAK_TYPE_IMAGE_MONO	0x33typedef struct{    DWORD	unk0;		// Likely x offset    DWORD	unk1;		// Likely y offset    DWORD	w;		// width of (clipped?) image    DWORD	h;		// height of (clipped?) image    DWORD	resx;		// X resolution in DPI    DWORD	resy;		// Y resolution in DPI    DWORD	nbits;		// bits per plane, 1 or 2    char	unk[16];	// always 0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f} OAK_IMAGE_PLANE;typedef struct{    OAK_IMAGE_PLANE	plane;} OAK_IMAGE_MONO;typedef struct{    OAK_IMAGE_PLANE	plane[4];} OAK_IMAGE_COLOR;#define OAK_TYPE_IMAGE_DATA	0x3Ctypedef struct{    OAKBIH	bih;		// Little-endian JBIG BIH    DWORD	datalen;	// Length of actual image data    DWORD	padlen;		// Padded length of image data    DWORD	unk1C;		// unknown, 000    DWORD	y;		// Y offset of this chunk    DWORD	plane;		// 0=, 1=, 2=, 3=K    DWORD	subplane;	// 0 or 1    // DWORD	pad[2];} OAK_IMAGE_DATA;

⌨️ 快捷键说明

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