亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? endian.h

?? ecos下的gui開發源代碼
?? H
字號:
//==========================================================================
//
//      include/sys/endian.h
//
//==========================================================================
//####BSDCOPYRIGHTBEGIN####
//
// -------------------------------------------
//
// Portions of this software may have been derived from OpenBSD, 
// FreeBSD or other sources, and are covered by the appropriate
// copyright disclaimers included herein.
//
// Portions created by Red Hat are
// Copyright (C) 2002 Red Hat, Inc. All Rights Reserved.
//
// -------------------------------------------
//
//####BSDCOPYRIGHTEND####
//==========================================================================

//==========================================================================
//
//      include/sys/endian.h
//
//      
//
//==========================================================================
//####BSDCOPYRIGHTBEGIN####
//
// -------------------------------------------
//
// Portions of this software may have been derived from OpenBSD or other sources,
// and are covered by the appropriate copyright disclaimers included herein.
//
// -------------------------------------------
//
//####BSDCOPYRIGHTEND####
//==========================================================================
//#####DESCRIPTIONBEGIN####
//
// Author(s):    gthomas
// Contributors: gthomas
// Date:         2000-01-10
// Purpose:      
// Description:  
//              
//
//####DESCRIPTIONEND####
//
//==========================================================================


/*	$OpenBSD: endian.h,v 1.4 1999/07/21 05:58:25 csapuntz Exp $	*/

/*-
 * Copyright (c) 1997 Niklas Hallqvist.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. All advertising materials mentioning features or use of this software
 *    must display the following acknowledgement:
 *	This product includes software developed by Niklas Hallqvist.
 * 4. The name of the author may not be used to endorse or promote products
 *    derived from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

/*
 * Generic definitions for little- and big-endian systems.  Other endianesses
 * has to be dealt with in the specific machine/endian.h file for that port.
 *
 * This file is meant to be included from a little- or big-endian port's
 * machine/endian.h after setting BYTE_ORDER to either 1234 for little endian
 * or 4321 for big..
 */

#ifndef _SYS_ENDIAN_H_
#define _SYS_ENDIAN_H_

#include <cyg/hal/basetype.h>

#if CYG_BYTEORDER == CYG_MSBFIRST
#define BYTE_ORDER BIG_ENDIAN
#else
#define BYTE_ORDER LITTLE_ENDIAN
#endif

#ifndef _POSIX_SOURCE

#define LITTLE_ENDIAN	1234
#define BIG_ENDIAN	4321
#define PDP_ENDIAN	3412

#ifdef __GNUC__

#define __swap16gen(x) ({						\
	cyg_uint16 __swap16gen_x = (x);					\
									\
	(cyg_uint16)((__swap16gen_x & 0xff) << 8 |			\
	    (__swap16gen_x & 0xff00) >> 8);				\
})

#define __swap32gen(x) ({						\
	cyg_uint32 __swap32gen_x = (x);					\
									\
	(cyg_uint32)((__swap32gen_x & 0xff) << 24 |			\
	    (__swap32gen_x & 0xff00) << 8 |				\
	    (__swap32gen_x & 0xff0000) >> 8 |				\
	    (__swap32gen_x & 0xff000000) >> 24);			\
})

#else /* __GNUC__ */

/* Note that these macros evaluate their arguments several times.  */
#define __swap16gen(x)							\
    (cyg_uint16)(((cyg_uint16)(x) & 0xff) << 8 | ((cyg_uint16)(x) & 0xff00) >> 8)

#define __swap32gen(x)							\
    (cyg_uint32)(((cyg_uint32)(x) & 0xff) << 24 |				\
    ((cyg_uint32)(x) & 0xff00) << 8 | ((cyg_uint32)(x) & 0xff0000) >> 8 |	\
    ((cyg_uint32)(x) & 0xff000000) >> 24)

#endif /* __GNUC__ */

/*
 * Define MD_SWAP if you provide swap{16,32}md functions/macros that are
 * optimized for your architecture,  These will be used for swap{16,32}
 * unless the argument is a constant and we are using GCC, where we can
 * take advantage of the CSE phase much better by using the generic version.
 */
#ifdef MD_SWAP
#if __GNUC__

#define swap16(x) ({							\
	cyg_uint16 __swap16_x = (x);					\
									\
	__builtin_constant_p(x) ? __swap16gen(__swap16_x) :		\
	    __swap16md(__swap16_x);					\
})

#define swap32(x) ({							\
	cyg_uint32 __swap32_x = (x);					\
									\
	__builtin_constant_p(x) ? __swap32gen(__swap32_x) :		\
	    __swap32md(__swap32_x);					\
})

#endif /* __GNUC__  */

#else /* MD_SWAP */
#define swap16 __swap16gen
#define swap32 __swap32gen
#endif /* MD_SWAP */

#define swap16_multi(v, n) do {					        \
	size_t __swap16_multi_n = (n);					\
	cyg_uint16 *__swap16_multi_v = (v);				\
									\
	while (__swap16_multi_n) {					\
		*__swap16_multi_v = swap16(*__swap16_multi_v);		\
		__swap16_multi_v++;					\
		__swap16_multi_n--;					\
	}								\
} while (0)

//cyg_uint32	htobe32 __P((cyg_uint32));
//cyg_uint16	htobe16 __P((cyg_uint16));
//cyg_uint32	betoh32 __P((cyg_uint32));
//cyg_uint16	betoh16 __P((cyg_uint16));
//
//cyg_uint32	htole32 __P((cyg_uint32));
//cyg_uint16	htole16 __P((cyg_uint16));
//cyg_uint32	letoh32 __P((cyg_uint32));
//cyg_uint16	letoh16 __P((cyg_uint16));

#if BYTE_ORDER == LITTLE_ENDIAN

/* Can be overridden by machine/endian.h before inclusion of this file.  */
#ifndef _QUAD_HIGHWORD
#define _QUAD_HIGHWORD 1
#endif
#ifndef _QUAD_LOWWORD
#define _QUAD_LOWWORD 0
#endif

#define htobe16 swap16
#define htobe32 swap32
#define betoh16 swap16
#define betoh32 swap32

#define htole16(x) (x)
#define htole32(x) (x)
#define letoh16(x) (x)
#define letoh32(x) (x)

#endif /* BYTE_ORDER */

#if BYTE_ORDER == BIG_ENDIAN

/* Can be overridden by machine/endian.h before inclusion of this file.  */
#ifndef _QUAD_HIGHWORD
#define _QUAD_HIGHWORD 0
#endif
#ifndef _QUAD_LOWWORD
#define _QUAD_LOWWORD 1
#endif

#define htole16 swap16
#define htole32 swap32
#define letoh16 swap16
#define letoh32 swap32

#define htobe16(x) (x)
#define htobe32(x) (x)
#define betoh16(x) (x)
#define betoh32(x) (x)

#endif /* BYTE_ORDER */

#define htons htobe16
#define htonl htobe32
#define ntohs betoh16
#define ntohl betoh32

#define	NTOHL(x) (x) = ntohl((cyg_uint32)(x))
#define	NTOHS(x) (x) = ntohs((cyg_uint16)(x))
#define	HTONL(x) (x) = htonl((cyg_uint32)(x))
#define	HTONS(x) (x) = htons((cyg_uint16)(x))

#endif /* _POSIX_SOURCE */
#endif /* _SYS_ENDIAN_H_ */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本乱人伦一区| 一区二区日韩av| 亚洲精品乱码久久久久久黑人| 午夜不卡av在线| 91偷拍与自偷拍精品| 337p日本欧洲亚洲大胆色噜噜| 亚洲制服丝袜一区| 91亚洲资源网| 中文字幕一区三区| 国产乱码一区二区三区| 日韩三级.com| 人人超碰91尤物精品国产| 欧美在线看片a免费观看| 国产精品进线69影院| 精品无人区卡一卡二卡三乱码免费卡| 欧美中文字幕一区二区三区 | av在线不卡电影| 久久久精品中文字幕麻豆发布| 九九国产精品视频| 欧美综合欧美视频| 一区二区三区四区五区视频在线观看| 高清shemale亚洲人妖| 337p粉嫩大胆噜噜噜噜噜91av| 青娱乐精品视频在线| 欧美片在线播放| 丝袜美腿亚洲一区| 日韩视频免费观看高清在线视频| 亚洲福中文字幕伊人影院| 日本伦理一区二区| 亚洲国产一区二区三区青草影视| 91在线porny国产在线看| 国产精品久久久久久久久免费樱桃 | 成人午夜私人影院| 国产日产精品1区| 国产精品一区二区在线观看不卡| 久久综合久久久久88| 国产不卡视频在线播放| 国产精品久久久久久久裸模| 91免费看片在线观看| 亚洲欧美另类在线| 欧美三级午夜理伦三级中视频| 亚洲福利视频三区| 日韩欧美的一区| 激情综合色综合久久| 日本一区二区三区在线不卡| 成人av网站在线| 亚洲女与黑人做爰| 91麻豆精品国产自产在线观看一区 | 欧美激情中文不卡| 成人国产精品免费观看视频| 亚洲黄色小视频| 欧美剧情片在线观看| 精品一区二区成人精品| 亚洲国产精品激情在线观看| 色狠狠桃花综合| 免费欧美在线视频| 国产精品成人免费| 欧美精品1区2区3区| 国产一区二区剧情av在线| 国产精品福利一区二区| 欧美日韩在线直播| 国产真实乱偷精品视频免| 亚洲免费观看高清完整版在线 | 日本高清视频一区二区| 日本麻豆一区二区三区视频| 国产日韩av一区二区| 在线亚洲一区二区| 狠狠网亚洲精品| 亚洲一区二区精品3399| 久久久99久久| 7878成人国产在线观看| 成人app在线| 免费在线观看成人| 有码一区二区三区| 欧美精彩视频一区二区三区| 欧美嫩在线观看| www.激情成人| 国产乱人伦精品一区二区在线观看| 一区二区三区免费观看| 国产日韩欧美a| 日韩你懂的在线观看| 日本韩国一区二区| 国产91对白在线观看九色| 日韩不卡在线观看日韩不卡视频| 亚洲色图制服诱惑 | 亚洲韩国精品一区| 18涩涩午夜精品.www| 久久久精品免费网站| 日韩一区二区三区四区| 在线观看国产精品网站| 成人综合婷婷国产精品久久| 免费在线一区观看| 日日摸夜夜添夜夜添亚洲女人| 亚洲视频一二区| 国产精品入口麻豆九色| 久久新电视剧免费观看| 欧美一级理论性理论a| 欧美视频一区二区在线观看| 91蜜桃免费观看视频| 顶级嫩模精品视频在线看| 激情亚洲综合在线| 国产一区二区三区在线观看免费视频 | 一区二区三区四区高清精品免费观看| 亚洲精品一线二线三线| 欧美成人三级在线| 日韩免费在线观看| 欧美大尺度电影在线| 日韩一区二区电影在线| 在线成人免费视频| 91精品蜜臀在线一区尤物| 欧美二区乱c少妇| 4438亚洲最大| 日韩免费观看高清完整版| 日韩欧美一区二区三区在线| 91精品国产欧美一区二区| 91麻豆精品国产无毒不卡在线观看| 777亚洲妇女| 精品免费国产一区二区三区四区| 欧美不卡一区二区| 久久婷婷色综合| 国产日韩成人精品| 亚洲丝袜美腿综合| 亚洲第一福利视频在线| 爽爽淫人综合网网站| 久久99久久99小草精品免视看| 激情综合五月天| av不卡在线观看| 欧美亚洲尤物久久| 欧美mv和日韩mv的网站| 久久九九久久九九| 亚洲精品一二三四区| 天堂久久一区二区三区| 国产在线一区二区| 色综合久久久久久久| 欧美日韩不卡一区二区| 精品入口麻豆88视频| 国产精品三级久久久久三级| 一区二区三区欧美日韩| 日欧美一区二区| 成人精品亚洲人成在线| 欧美日韩综合色| 国产欧美综合在线观看第十页| 一区二区日韩电影| 韩国精品免费视频| 欧美午夜精品久久久久久孕妇| 日韩欧美一区二区在线视频| 国产精品美女久久久久久2018| 亚洲一区二区三区中文字幕 | 色94色欧美sute亚洲线路二| 91麻豆精品国产91久久久久久| 久久理论电影网| 亚洲高清免费观看高清完整版在线观看| 精品亚洲成a人| 91成人网在线| 国产午夜精品一区二区三区四区| 一区二区三区四区激情 | 久久草av在线| 成人av一区二区三区| 日韩一区二区三区四区五区六区| 国产精品久久免费看| 麻豆极品一区二区三区| 一本久久综合亚洲鲁鲁五月天| 日韩久久久久久| 亚洲成人中文在线| 91小视频在线免费看| 久久这里只有精品首页| 午夜精品一区二区三区三上悠亚| 不卡视频在线观看| 欧美成人aa大片| 五月天亚洲精品| 在线免费精品视频| 国产精品网友自拍| 国产一区二区三区四区五区美女| 欧洲视频一区二区| 亚洲丝袜美腿综合| 成人av在线一区二区| 久久久青草青青国产亚洲免观| 日本vs亚洲vs韩国一区三区二区 | 久久婷婷综合激情| 日本欧美韩国一区三区| 欧美日韩在线三区| 一区二区三区欧美视频| 91亚洲精华国产精华精华液| 国产精品三级在线观看| 国产一区二区久久| 亚洲欧美另类久久久精品| 精品一区二区三区香蕉蜜桃| 欧美一区二区三区性视频| 亚洲第一主播视频| 欧美日韩精品一区二区三区蜜桃| 亚洲人精品一区| 91麻豆国产福利在线观看| 国产精品久久午夜夜伦鲁鲁| 国产91在线观看丝袜| 久久久99精品免费观看| 粉嫩一区二区三区性色av| 久久精品在线免费观看| 国产91露脸合集magnet| 国产精品区一区二区三区| 成人性生交大片免费看视频在线|