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

📄 fb_mfbs.c

📁 早期freebsd实现
💻 C
📖 第 1 页 / 共 5 页
字号:
       ( 0x00000000 ),  ( 0x00000000 ),  ( 0x00000000 ),  ( 0x00000000 ),       ( 0x00000000 ),  ( 0x00000000 ),  ( 0x00000000 ),  ( 0x00000000 ),       ( 0x00000000 ),  ( 0x00000000 ),  ( 0x00000000 ),  ( 0x00000000 )},     { ( 0x00000000 ),  ( 0x00000004 ),  ( 0x00000006 ),  ( 0x00000007 ),       ( 0x00000000 ),  ( 0x00000000 ),  ( 0x00000000 ),  ( 0x00000000 ),       ( 0x00000000 ),  ( 0x00000000 ),  ( 0x00000000 ),  ( 0x00000000 ),       ( 0x00000000 ),  ( 0x00000000 ),  ( 0x00000000 ),  ( 0x00000000 ),       ( 0x00000000 ),  ( 0x00000000 ),  ( 0x00000000 ),  ( 0x00000000 ),       ( 0x00000000 ),  ( 0x00000000 ),  ( 0x00000000 ),  ( 0x00000000 ),       ( 0x00000000 ),  ( 0x00000000 ),  ( 0x00000000 ),  ( 0x00000000 ),       ( 0x00000000 ),  ( 0x00000000 ),  ( 0x00000000 ),  ( 0x00000000 )},     { ( 0x00000000 ),  ( 0x00000002 ),  ( 0x00000003 ),  ( 0x00000000 ),       ( 0x00000000 ),  ( 0x00000000 ),  ( 0x00000000 ),  ( 0x00000000 ),       ( 0x00000000 ),  ( 0x00000000 ),  ( 0x00000000 ),  ( 0x00000000 ),       ( 0x00000000 ),  ( 0x00000000 ),  ( 0x00000000 ),  ( 0x00000000 ),       ( 0x00000000 ),  ( 0x00000000 ),  ( 0x00000000 ),  ( 0x00000000 ),       ( 0x00000000 ),  ( 0x00000000 ),  ( 0x00000000 ),  ( 0x00000000 ),       ( 0x00000000 ),  ( 0x00000000 ),  ( 0x00000000 ),  ( 0x00000000 ),       ( 0x00000000 ),  ( 0x00000000 ),  ( 0x00000000 ),  ( 0x00000000 )},     { ( 0x00000000 ),  ( 0x00000001 ),  ( 0x00000000 ),  ( 0x00000000 ),       ( 0x00000000 ),  ( 0x00000000 ),  ( 0x00000000 ),  ( 0x00000000 ),       ( 0x00000000 ),  ( 0x00000000 ),  ( 0x00000000 ),  ( 0x00000000 ),       ( 0x00000000 ),  ( 0x00000000 ),  ( 0x00000000 ),  ( 0x00000000 ),       ( 0x00000000 ),  ( 0x00000000 ),  ( 0x00000000 ),  ( 0x00000000 ),       ( 0x00000000 ),  ( 0x00000000 ),  ( 0x00000000 ),  ( 0x00000000 ),       ( 0x00000000 ),  ( 0x00000000 ),  ( 0x00000000 ),  ( 0x00000000 ),       ( 0x00000000 ),  ( 0x00000000 ),  ( 0x00000000 ),  ( 0x00000000 )},};u_int mfbmask32[32] =    {     ( 1<<31 ),  ( 1<<30 ),  ( 1<<29 ),      ( 1<<28 ),  ( 1<<27 ),  ( 1<<26 ),      ( 1<<25 ),  ( 1<<24 ),  ( 1<<23 ),      ( 1<<22 ),  ( 1<<21 ),  ( 1<<20 ),      ( 1<<19 ),  ( 1<<18 ),  ( 1<<17 ),      ( 1<<16 ),  ( 1<<15 ),  ( 1<<14 ),      ( 1<<13 ),  ( 1<<12 ),  ( 1<<11 ),      ( 1<<10 ),  ( 1<<9 ),  ( 1<<8 ),     ( 1<<7 ),  ( 1<<6 ),  ( 1<<5 ),      ( 1<<4 ),  ( 1<<3 ),  ( 1<<2 ),      ( 1<<1 ),  ( 1<<0 )    }; u_int mfbrmask32[32] =     {    0xffffffff ^  ( 1<<31 ), 0xffffffff ^  ( 1<<30 ),     0xffffffff ^  ( 1<<29 ), 0xffffffff ^  ( 1<<28),     0xffffffff ^  ( 1<<27 ), 0xffffffff ^  ( 1<<26),    0xffffffff ^  ( 1<<25 ), 0xffffffff ^  ( 1<<24 ),     0xffffffff ^  ( 1<<23 ), 0xffffffff ^  ( 1<<22),     0xffffffff ^  ( 1<<21 ), 0xffffffff ^  ( 1<<20),    0xffffffff ^  ( 1<<19 ), 0xffffffff ^  ( 1<<18 ),     0xffffffff ^  ( 1<<17 ), 0xffffffff ^  ( 1<<16),    0xffffffff ^  ( 1<<15 ), 0xffffffff ^  ( 1<<14),    0xffffffff ^  ( 1<<13 ), 0xffffffff ^  ( 1<<12 ),    0xffffffff ^  ( 1<<11 ), 0xffffffff ^  ( 1<<10),     0xffffffff ^  ( 1<<9 ),  0xffffffff ^  ( 1<<8),    0xffffffff ^  ( 1<<7 ),  0xffffffff ^  ( 1<<6),      0xffffffff ^  ( 1<<5 ),  0xffffffff ^  ( 1<<4),      0xffffffff ^  ( 1<<3 ),  0xffffffff ^  ( 1<<2),    0xffffffff ^  ( 1<<1 ),  0xffffffff ^  ( 1<<0)    };mergeRopRec mergeRopBits[16] = {	 0, 0, 0, 0,		/* BF_0		0 */	~0, 0, 0, 0,		/* BF_SDA	src & dst */	~0, 0,~0, 0,		/* BF_SDIA	src & ~dst */	 0, 0,~0, 0,		/* BF_S		src */	~0,~0, 0, 0,		/* BF_SIDA	~src & dst */	 0,~0, 0, 0,		/* BF_D		dst */	 0,~0,~0, 0,		/* BF_SDX	src ^ dst */	~0,~0,~0, 0,		/* BF_SDO	src | dst */	~0,~0,~0,~0,		/* BF_SDOI	~(src | dst) */	 0,~0,~0,~0,		/* BF_SDXI	~(src ^ dst) */	 0,~0, 0,~0,		/* BF_DI	~dst */	~0,~0, 0,~0,		/* BF_SDIO	src | ~dst */	 0, 0,~0,~0,		/* BF_SI	~src */	~0, 0,~0,~0,		/* BF_SIDO	~src | dst */	~0, 0, 0,~0,		/* BF_SDAI	~(src & dst) */	 0, 0, 0,~0,		/* BF_1		1 */};#define Duff(counter, block) { \	switch (counter & 7) { \	case 7: { block; } \	case 6: { block; } \	case 5: { block; } \	case 4: { block; } \	case 3: { block; } \	case 2: { block; } \	case 1: { block; } \	case 0:; \	} \	while ((counter -= 8) >= 0) { \		{ block; } \		{ block; } \		{ block; } \		{ block; } \		{ block; } \		{ block; } \		{ block; } \		{ block; } \	} \}#ifdef mc68020#define	Duff_plus(n, dst, src, op) { \	switch ((n) & 7) { \	case 7: \		*(dst)++ op *(src)++; \	case 6: \		*(dst)++ op *(src)++; \	case 5: \		*(dst)++ op *(src)++; \	case 4: \		*(dst)++ op *(src)++; \	case 3: \		*(dst)++ op *(src)++; \	case 2: \		*(dst)++ op *(src)++; \	case 1: \		*(dst)++ op *(src)++; \	} \	while (((n) -= 8) >= 0) { \		*(dst)++ op *(src)++; \		*(dst)++ op *(src)++; \		*(dst)++ op *(src)++; \		*(dst)++ op *(src)++; \		*(dst)++ op *(src)++; \		*(dst)++ op *(src)++; \		*(dst)++ op *(src)++; \		*(dst)++ op *(src)++; \	} \} \#define Duff_minus(n, dst, src, op) { \	switch ((n) & 7) { \	case 7: \		*--(dst) op *--(src); \	case 6: \		*--(dst) op *--(src); \	case 5: \		*--(dst) op *--(src); \	case 4: \		*--(dst) op *--(src); \	case 3: \		*--(dst) op *--(src); \	case 2: \		*--(dst) op *--(src); \	case 1: \		*--(dst) op *--(src); \	} \	while (((n) -= 8) >= 0) { \		*--(dst) op *--(src); \		*--(dst) op *--(src); \		*--(dst) op *--(src); \		*--(dst) op *--(src); \		*--(dst) op *--(src); \		*--(dst) op *--(src); \		*--(dst) op *--(src); \		*--(dst) op *--(src); \	} \}#define	Duff_shift_plus(n, dst, src, op) { \	switch ((n) & 3) { \	case 3: \		bits = *(src)++; \		*(dst)++ op (bits1 << leftShift) | (bits >> rightShift); \	case 2: \		bits1 = *(src)++; \		*(dst)++ op (bits << leftShift) | (bits1 >> rightShift); \	case 1: \		bits = *(src)++; \		*(dst)++ op (bits1 << leftShift) | (bits >> rightShift); \	} \	while (((n) -= 4) >= 0) { \		bits1 = *(src)++; \		*(dst)++ op (bits << leftShift) | (bits1 >> rightShift); \		bits = *(src)++; \		*(dst)++ op (bits1 << leftShift) | (bits >> rightShift); \		bits1 = *(src)++; \		*(dst)++ op (bits << leftShift) | (bits1 >> rightShift); \		bits = *(src)++; \		*(dst)++ op (bits1 << leftShift) | (bits >> rightShift); \	} \}#define	Duff_shift_minus(n, dst, src, op) { \	switch ((n) & 3) { \	case 3: \		bits = *--(src); \		*--(dst) op ((bits1 >> rightShift) | (bits << leftShift)); \	case 2: \		bits1 = *--(src); \		*--(dst) op ((bits >> rightShift) | (bits1 << leftShift)); \	case 1: \		bits = *--(src); \		*--(dst) op ((bits1 >> rightShift) | (bits << leftShift)); \	} \	while (((n) -= 4) >= 0) { \		bits1 = *--(src); \		*--(dst) op ((bits >> rightShift) | (bits1 << leftShift)); \		bits = *--(src); \		*--(dst) op ((bits1 >> rightShift) | (bits << leftShift)); \		bits1 = *--(src); \		*--(dst) op ((bits >> rightShift) | (bits1 << leftShift)); \		bits = *--(src); \		*--(dst) op ((bits1 >> rightShift) | (bits << leftShift)); \	} \}#define	Duff_single(nlw, addr, op) { \	switch ((nlw) & 7) { \	case 7: \		*(addr)++ op ; \	case 6: \		*(addr)++ op ; \	case 5: \		*(addr)++ op ; \	case 4: \		*(addr)++ op ; \	case 3: \		*(addr)++ op ; \	case 2: \		*(addr)++ op ; \	case 1: \		*(addr)++ op ; \	} \	while (((nlw) -= 8) >= 0) { \		*(addr)++ op ; \		*(addr)++ op ; \		*(addr)++ op ; \		*(addr)++ op ; \		*(addr)++ op ; \		*(addr)++ op ; \		*(addr)++ op ; \		*(addr)++ op ; \	} \}#else /* mc68020 */#define	Duff_plus(n, dst, src, op) { \	(src) += (n) & 7; \	(dst) += (n) & 7; \	switch ((n) & 7) { \	case 7: \		(dst)[-7] op (src)[-7]; \	case 6: \		(dst)[-6] op (src)[-6]; \	case 5: \		(dst)[-5] op (src)[-5]; \	case 4: \		(dst)[-4] op (src)[-4]; \	case 3: \		(dst)[-3] op (src)[-3]; \	case 2: \		(dst)[-2] op (src)[-2]; \	case 1: \		(dst)[-1] op (src)[-1]; \	} \	while (((n) -= 8) >= 0) { \		(dst) += 8; \		(src) += 8; \		(dst)[-8] op (src)[-8]; \		(dst)[-7] op (src)[-7]; \		(dst)[-6] op (src)[-6]; \		(dst)[-5] op (src)[-5]; \		(dst)[-4] op (src)[-4]; \		(dst)[-3] op (src)[-3]; \		(dst)[-2] op (src)[-2]; \		(dst)[-1] op (src)[-1]; \	} \} \#define Duff_minus(n, dst, src, op) { \	(src) -= (n) & 7; \	(dst) -= (n) & 7; \	switch ((n) & 7) { \	case 7: \		(dst)[7-1] op (src)[7-1]; \	case 6: \		(dst)[6-1] op (src)[6-1]; \	case 5: \		(dst)[5-1] op (src)[5-1]; \	case 4: \		(dst)[4-1] op (src)[4-1]; \	case 3: \		(dst)[3-1] op (src)[3-1]; \	case 2: \		(dst)[2-1] op (src)[2-1]; \	case 1: \		(dst)[1-1] op (src)[1-1]; \	} \	while (((n) -= 8) >= 0) { \		(dst) -= 8; \		(src) -= 8; \		(dst)[8-1] op (src)[8-1]; \		(dst)[7-1] op (src)[7-1]; \		(dst)[6-1] op (src)[6-1]; \		(dst)[5-1] op (src)[5-1]; \		(dst)[4-1] op (src)[4-1]; \		(dst)[3-1] op (src)[3-1]; \		(dst)[2-1] op (src)[2-1]; \		(dst)[1-1] op (src)[1-1]; \	} \}#define	Duff_shift_plus(n, dst, src, op) { \	(src) += (n) & 7; \	(dst) += (n) & 7; \	switch ((n) & 7) { \	case 7: \		bits = (src)[-7]; \		(dst)[-7] op (bits1 << leftShift) | (bits >> rightShift); \	case 6: \		bits1 = (src)[-6]; \		(dst)[-6] op (bits << leftShift) | (bits1 >> rightShift); \	case 5: \		bits = (src)[-5]; \		(dst)[-5] op (bits1 << leftShift) | (bits >> rightShift); \	case 4: \		bits1 = (src)[-4]; \		(dst)[-4] op (bits << leftShift) | (bits1 >> rightShift); \	case 3: \		bits = (src)[-3]; \		(dst)[-3] op (bits1 << leftShift) | (bits >> rightShift); \	case 2: \		bits1 = (src)[-2]; \		(dst)[-2] op (bits << leftShift) | (bits1 >> rightShift); \	case 1: \		bits = (src)[-1]; \		(dst)[-1] op (bits1 << leftShift) | (bits >> rightShift); \	} \	while (((n) -= 8) >= 0) { \		(dst) += 8; \		(src) += 8; \		bits1 = (src)[-8]; \		(dst)[-8] op (bits << leftShift) | (bits1 >> rightShift); \		bits = (src)[-7]; \		(dst)[-7] op (bits1 << leftShift) | (bits >> rightShift); \		bits1 = (src)[-6]; \		(dst)[-6] op (bits << leftShift) | (bits1 >> rightShift); \		bits = (src)[-5]; \		(dst)[-5] op (bits1 << leftShift) | (bits >> rightShift); \		bits1 = (src)[-4]; \		(dst)[-4] op (bits << leftShift) | (bits1 >> rightShift); \		bits = (src)[-3]; \		(dst)[-3] op (bits1 << leftShift) | (bits >> rightShift); \		bits1 = (src)[-2]; \		(dst)[-2] op (bits << leftShift) | (bits1 >> rightShift); \		bits = (src)[-1]; \		(dst)[-1] op (bits1 << leftShift) | (bits >> rightShift); \	} \}#define	Duff_shift_minus(n, dst, src, op) { \	(src) -= (n) & 7; \	(dst) -= (n) & 7; \	switch ((n) & 7) { \	case 7: \		bits = (src)[7-1]; \		(dst)[7-1] op ((bits1 >> rightShift) | (bits << leftShift)); \	case 6: \		bits1 = (src)[6-1]; \		(dst)[6-1] op ((bits >> rightShift) | (bits1 << leftShift)); \	case 5: \		bits = (src)[5-1]; \		(dst)[5-1] op ((bits1 >> rightShift) | (bits << leftShift)); \	case 4: \		bits1 = (src)[4-1]; \		(dst)[4-1] op ((bits >> rightShift) | (bits1 << leftShift)); \	case 3: \		bits = (src)[3-1]; \		(dst)[3-1] op ((bits1 >> rightShift) | (bits << leftShift)); \	case 2: \		bits1 = (src)[2-1]; \		(dst)[2-1] op ((bits >> rightShift) | (bits1 << leftShift)); \	case 1: \		bits = (src)[1-1]; \		(dst)[1-1] op ((bits1 >> rightShift) | (bits << leftShift)); \	} \	while (((n) -= 8) >= 0) { \		(dst) -= 8; \		(src) -= 8; \		bits1 = (src)[8-1]; \		(dst)[8-1] op ((bits >> rightShift) | (bits1 << leftShift)); \		bits = (src)[7-1]; \		(dst)[7-1] op ((bits1 >> rightShift) | (bits << leftShift)); \		bits1 = (src)[6-1]; \		(dst)[6-1] op ((bits >> rightShift) | (bits1 << leftShift)); \		bits = (src)[5-1]; \		(dst)[5-1] op ((bits1 >> rightShift) | (bits << leftShift)); \		bits1 = (src)[4-1]; \		(dst)[4-1] op ((bits >> rightShift) | (bits1 << leftShift)); \		bits = (src)[3-1]; \		(dst)[3-1] op ((bits1 >> rightShift) | (bits << leftShift)); \		bits1 = (src)[2-1]; \		(dst)[2-1] op ((bits >> rightShift) | (bits1 << leftShift)); \		bits = (src)[1-1]; \		(dst)[1-1] op ((bits1 >> rightShift) | (bits << leftShift)); \

⌨️ 快捷键说明

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