Annotation of XNU/EXTERNAL_HEADERS/architecture/byte_order.h, revision 1.1

1.1     ! root        1: /*
        !             2:  * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
        !             3:  *
        !             4:  * @APPLE_LICENSE_HEADER_START@
        !             5:  * 
        !             6:  * The contents of this file constitute Original Code as defined in and
        !             7:  * are subject to the Apple Public Source License Version 1.1 (the
        !             8:  * "License").  You may not use this file except in compliance with the
        !             9:  * License.  Please obtain a copy of the License at
        !            10:  * http://www.apple.com/publicsource and read it before using this file.
        !            11:  * 
        !            12:  * This Original Code and all software distributed under the License are
        !            13:  * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
        !            14:  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
        !            15:  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
        !            16:  * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.  Please see the
        !            17:  * License for the specific language governing rights and limitations
        !            18:  * under the License.
        !            19:  * 
        !            20:  * @APPLE_LICENSE_HEADER_END@
        !            21:  */
        !            22: /*
        !            23:  * Copyright (c) 1992 NeXT Computer, Inc.
        !            24:  *
        !            25:  * Byte ordering conversion.
        !            26:  *
        !            27:  * HISTORY
        !            28:  *
        !            29:  * 20 October 1992 ? at NeXT
        !            30:  *     Added #ifdef wrapper to prevent multiple inclusions of this file.
        !            31:  *
        !            32:  * 8 October 1992 ? at NeXT
        !            33:  *     Converted to NXxxx versions.  Condensed history.
        !            34:  *
        !            35:  * 18 May 1992 ? at NeXT
        !            36:  *     Created.
        !            37:  */
        !            38: 
        !            39: #ifndef        _ARCHITECTURE_BYTE_ORDER_H_
        !            40: #define _ARCHITECTURE_BYTE_ORDER_H_
        !            41:  
        !            42: typedef unsigned long NXSwappedFloat;
        !            43: typedef unsigned long long NXSwappedDouble;
        !            44: 
        !            45: #if defined (__ppc__)
        !            46: #include "architecture/ppc/byte_order.h"
        !            47: #elif defined (__i386__)
        !            48: #include "architecture/i386/byte_order.h"
        !            49: #else
        !            50: #error architecture not supported
        !            51: #endif
        !            52: 
        !            53: /*
        !            54:  * Identify the byte order
        !            55:  * of the current host.
        !            56:  */
        !            57: 
        !            58: enum NXByteOrder {
        !            59:     NX_UnknownByteOrder,
        !            60:     NX_LittleEndian,
        !            61:     NX_BigEndian
        !            62: };
        !            63: 
        !            64: static __inline__
        !            65: enum NXByteOrder
        !            66: NXHostByteOrder(void)
        !            67: {
        !            68:     unsigned int       _x;
        !            69:     
        !            70:     _x = (NX_BigEndian << 24) | NX_LittleEndian;
        !            71:         
        !            72:     return ((enum NXByteOrder)*((unsigned char *)&_x));
        !            73: }
        !            74: 
        !            75: /*
        !            76:  * The predicated versions
        !            77:  * are defined here in terms
        !            78:  * of the unpredicated ones.
        !            79:  */
        !            80: 
        !            81: #if    __BIG_ENDIAN__
        !            82: 
        !            83: static __inline__
        !            84: unsigned short
        !            85: NXSwapBigShortToHost(
        !            86:     unsigned short     x
        !            87: )
        !            88: {
        !            89:     return (x);
        !            90: }
        !            91: 
        !            92: static __inline__
        !            93: unsigned int
        !            94: NXSwapBigIntToHost(
        !            95:     unsigned int       x
        !            96: )
        !            97: {
        !            98:     return (x);
        !            99: }
        !           100: 
        !           101: static __inline__
        !           102: unsigned long
        !           103: NXSwapBigLongToHost(
        !           104:     unsigned long      x
        !           105: )
        !           106: {
        !           107:     return (x);
        !           108: }
        !           109: 
        !           110: static __inline__
        !           111: unsigned long long
        !           112: NXSwapBigLongLongToHost(
        !           113:     unsigned long long x
        !           114: )
        !           115: {
        !           116:     return (x);
        !           117: }
        !           118: 
        !           119: #ifndef KERNEL
        !           120: 
        !           121: static __inline__
        !           122: double
        !           123: NXSwapBigDoubleToHost(
        !           124:     NXSwappedDouble    x
        !           125: )
        !           126: {
        !           127:     return NXConvertSwappedDoubleToHost(x);
        !           128: }
        !           129: 
        !           130: static __inline__
        !           131: float
        !           132: NXSwapBigFloatToHost(
        !           133:     NXSwappedFloat     x
        !           134: )
        !           135: {
        !           136:     return NXConvertSwappedFloatToHost(x);
        !           137: }
        !           138: 
        !           139: #endif /* KERNEL */
        !           140: 
        !           141: static __inline__
        !           142: unsigned short
        !           143: NXSwapHostShortToBig(
        !           144:     unsigned short     x
        !           145: )
        !           146: {
        !           147:     return (x);
        !           148: }
        !           149: 
        !           150: static __inline__
        !           151: unsigned int
        !           152: NXSwapHostIntToBig(
        !           153:     unsigned int       x
        !           154: )
        !           155: {
        !           156:     return (x);
        !           157: }
        !           158: 
        !           159: static __inline__
        !           160: unsigned long
        !           161: NXSwapHostLongToBig(
        !           162:     unsigned long      x
        !           163: )
        !           164: {
        !           165:     return (x);
        !           166: }
        !           167: 
        !           168: static __inline__
        !           169: unsigned long long
        !           170: NXSwapHostLongLongToBig(
        !           171:     unsigned long long x
        !           172: )
        !           173: {
        !           174:     return (x);
        !           175: }
        !           176: 
        !           177: #ifndef KERNEL
        !           178: 
        !           179: static __inline__
        !           180: NXSwappedDouble
        !           181: NXSwapHostDoubleToBig(
        !           182:     double             x
        !           183: )
        !           184: {
        !           185:     return NXConvertHostDoubleToSwapped(x);
        !           186: }
        !           187: 
        !           188: static __inline__
        !           189: NXSwappedFloat
        !           190: NXSwapHostFloatToBig(
        !           191:     float              x
        !           192: )
        !           193: {
        !           194:     return NXConvertHostFloatToSwapped(x);
        !           195: }
        !           196: 
        !           197: #endif /* KERNEL */
        !           198: 
        !           199: static __inline__
        !           200: unsigned short
        !           201: NXSwapLittleShortToHost(
        !           202:     unsigned short     x
        !           203: )
        !           204: {
        !           205:     return (NXSwapShort(x));
        !           206: }
        !           207: 
        !           208: static __inline__
        !           209: unsigned int
        !           210: NXSwapLittleIntToHost(
        !           211:     unsigned int       x
        !           212: )
        !           213: {
        !           214:     return (NXSwapInt(x));
        !           215: }
        !           216: 
        !           217: static __inline__
        !           218: unsigned long
        !           219: NXSwapLittleLongToHost(
        !           220:     unsigned long      x
        !           221: )
        !           222: {
        !           223:     return (NXSwapLong(x));
        !           224: }
        !           225: 
        !           226: static __inline__
        !           227: unsigned long long
        !           228: NXSwapLittleLongLongToHost(
        !           229:     unsigned long long x
        !           230: )
        !           231: {
        !           232:     return (NXSwapLongLong(x));
        !           233: }
        !           234: 
        !           235: #ifndef KERNEL
        !           236: 
        !           237: static __inline__
        !           238: double
        !           239: NXSwapLittleDoubleToHost(
        !           240:     NXSwappedDouble    x
        !           241: )
        !           242: {
        !           243:     return NXConvertSwappedDoubleToHost(NXSwapDouble(x));
        !           244: }
        !           245: 
        !           246: static __inline__
        !           247: float
        !           248: NXSwapLittleFloatToHost(
        !           249:     NXSwappedFloat     x
        !           250: )
        !           251: {
        !           252:     return NXConvertSwappedFloatToHost(NXSwapFloat(x));
        !           253: }
        !           254: 
        !           255: #endif /* KERNEL */
        !           256: 
        !           257: static __inline__
        !           258: unsigned short
        !           259: NXSwapHostShortToLittle(
        !           260:     unsigned short     x
        !           261: )
        !           262: {
        !           263:     return (NXSwapShort(x));
        !           264: }
        !           265: 
        !           266: static __inline__
        !           267: unsigned int
        !           268: NXSwapHostIntToLittle(
        !           269:     unsigned int       x
        !           270: )
        !           271: {
        !           272:     return (NXSwapInt(x));
        !           273: }
        !           274: 
        !           275: static __inline__
        !           276: unsigned long
        !           277: NXSwapHostLongToLittle(
        !           278:     unsigned long      x
        !           279: )
        !           280: {
        !           281:     return (NXSwapLong(x));
        !           282: }
        !           283: 
        !           284: static __inline__
        !           285: unsigned long long
        !           286: NXSwapHostLongLongToLittle(
        !           287:     unsigned long long x
        !           288: )
        !           289: {
        !           290:     return (NXSwapLongLong(x));
        !           291: }
        !           292: 
        !           293: #ifndef KERNEL
        !           294: 
        !           295: static __inline__
        !           296: NXSwappedDouble
        !           297: NXSwapHostDoubleToLittle(
        !           298:     double             x
        !           299: )
        !           300: {
        !           301:     return NXSwapDouble(NXConvertHostDoubleToSwapped(x));
        !           302: }
        !           303: 
        !           304: static __inline__
        !           305: NXSwappedFloat
        !           306: NXSwapHostFloatToLittle(
        !           307:     float              x
        !           308: )
        !           309: {
        !           310:     return NXSwapFloat(NXConvertHostFloatToSwapped(x));
        !           311: }
        !           312: 
        !           313: #endif /* KERNEL */
        !           314: #endif /*__BIG_ENDIAN__ */
        !           315: 
        !           316: #if    __LITTLE_ENDIAN__
        !           317: 
        !           318: static __inline__
        !           319: unsigned short
        !           320: NXSwapBigShortToHost(
        !           321:     unsigned short     x
        !           322: )
        !           323: {
        !           324:     return (NXSwapShort(x));
        !           325: }
        !           326: 
        !           327: static __inline__
        !           328: unsigned int
        !           329: NXSwapBigIntToHost(
        !           330:     unsigned int       x
        !           331: )
        !           332: {
        !           333:     return (NXSwapInt(x));
        !           334: }
        !           335: 
        !           336: static __inline__
        !           337: unsigned long
        !           338: NXSwapBigLongToHost(
        !           339:     unsigned long      x
        !           340: )
        !           341: {
        !           342:     return (NXSwapLong(x));
        !           343: }
        !           344: 
        !           345: static __inline__
        !           346: unsigned long long
        !           347: NXSwapBigLongLongToHost(
        !           348:     unsigned long long x
        !           349: )
        !           350: {
        !           351:     return (NXSwapLongLong(x));
        !           352: }
        !           353: 
        !           354: static __inline__
        !           355: double
        !           356: NXSwapBigDoubleToHost(
        !           357:     NXSwappedDouble    x
        !           358: )
        !           359: {
        !           360:     return NXConvertSwappedDoubleToHost(NXSwapDouble(x));
        !           361: }
        !           362: 
        !           363: static __inline__
        !           364: float
        !           365: NXSwapBigFloatToHost(
        !           366:     NXSwappedFloat     x
        !           367: )
        !           368: {
        !           369:     return NXConvertSwappedFloatToHost(NXSwapFloat(x));
        !           370: }
        !           371: 
        !           372: static __inline__
        !           373: unsigned short
        !           374: NXSwapHostShortToBig(
        !           375:     unsigned short     x
        !           376: )
        !           377: {
        !           378:     return (NXSwapShort(x));
        !           379: }
        !           380: 
        !           381: static __inline__
        !           382: unsigned int
        !           383: NXSwapHostIntToBig(
        !           384:     unsigned int       x
        !           385: )
        !           386: {
        !           387:     return (NXSwapInt(x));
        !           388: }
        !           389: 
        !           390: static __inline__
        !           391: unsigned long
        !           392: NXSwapHostLongToBig(
        !           393:     unsigned long      x
        !           394: )
        !           395: {
        !           396:     return (NXSwapLong(x));
        !           397: }
        !           398: 
        !           399: static __inline__
        !           400: unsigned long long
        !           401: NXSwapHostLongLongToBig(
        !           402:     unsigned long long x
        !           403: )
        !           404: {
        !           405:     return (NXSwapLongLong(x));
        !           406: }
        !           407: 
        !           408: static __inline__
        !           409: NXSwappedDouble
        !           410: NXSwapHostDoubleToBig(
        !           411:     double             x
        !           412: )
        !           413: {
        !           414:     return (NXSwapDouble(NXConvertHostDoubleToSwapped(x)));
        !           415: }
        !           416: 
        !           417: static __inline__
        !           418: NXSwappedFloat
        !           419: NXSwapHostFloatToBig(
        !           420:     float              x
        !           421: )
        !           422: {
        !           423:     return (NXSwapFloat(NXConvertHostFloatToSwapped(x)));
        !           424: }
        !           425: 
        !           426: static __inline__
        !           427: unsigned short
        !           428: NXSwapLittleShortToHost(
        !           429:     unsigned short     x
        !           430: )
        !           431: {
        !           432:     return (x);
        !           433: }
        !           434: 
        !           435: static __inline__
        !           436: unsigned int
        !           437: NXSwapLittleIntToHost(
        !           438:     unsigned int       x
        !           439: )
        !           440: {
        !           441:     return (x);
        !           442: }
        !           443: 
        !           444: static __inline__
        !           445: unsigned long
        !           446: NXSwapLittleLongToHost(
        !           447:     unsigned long      x
        !           448: )
        !           449: {
        !           450:     return (x);
        !           451: }
        !           452: 
        !           453: static __inline__
        !           454: unsigned long long
        !           455: NXSwapLittleLongLongToHost(
        !           456:     unsigned long long x
        !           457: )
        !           458: {
        !           459:     return (x);
        !           460: }
        !           461: 
        !           462: static __inline__
        !           463: double
        !           464: NXSwapLittleDoubleToHost(
        !           465:     NXSwappedDouble    x
        !           466: )
        !           467: {
        !           468:     return NXConvertSwappedDoubleToHost(x);
        !           469: }
        !           470: 
        !           471: static __inline__
        !           472: float
        !           473: NXSwapLittleFloatToHost(
        !           474:     NXSwappedFloat     x
        !           475: )
        !           476: {
        !           477:     return NXConvertSwappedFloatToHost(x);
        !           478: }
        !           479: 
        !           480: static __inline__
        !           481: unsigned short
        !           482: NXSwapHostShortToLittle(
        !           483:     unsigned short     x
        !           484: )
        !           485: {
        !           486:     return (x);
        !           487: }
        !           488: 
        !           489: static __inline__
        !           490: unsigned int
        !           491: NXSwapHostIntToLittle(
        !           492:     unsigned int       x
        !           493: )
        !           494: {
        !           495:     return (x);
        !           496: }
        !           497: 
        !           498: static __inline__
        !           499: unsigned long
        !           500: NXSwapHostLongToLittle(
        !           501:     unsigned long      x
        !           502: )
        !           503: {
        !           504:     return (x);
        !           505: }
        !           506: 
        !           507: static __inline__
        !           508: unsigned long long
        !           509: NXSwapHostLongLongToLittle(
        !           510:     unsigned long long x
        !           511: )
        !           512: {
        !           513:     return (x);
        !           514: }
        !           515: 
        !           516: static __inline__
        !           517: NXSwappedDouble
        !           518: NXSwapHostDoubleToLittle(
        !           519:     double             x
        !           520: )
        !           521: {
        !           522:     return NXConvertHostDoubleToSwapped(x);
        !           523: }
        !           524: 
        !           525: static __inline__
        !           526: NXSwappedFloat
        !           527: NXSwapHostFloatToLittle(
        !           528:     float              x
        !           529: )
        !           530: {
        !           531:     return NXConvertHostFloatToSwapped(x);
        !           532: }
        !           533: 
        !           534: #endif /* __LITTLE_ENDIAN__ */
        !           535: 
        !           536: #endif /* _ARCHITECTURE_BYTE_ORDER_H_ */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.