The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/bsd/hfs/hfs_endian.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*
    2  * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
    3  *
    4  * @APPLE_LICENSE_HEADER_START@
    5  * 
    6  * Copyright (c) 1999-2003 Apple Computer, Inc.  All Rights Reserved.
    7  * 
    8  * This file contains Original Code and/or Modifications of Original Code
    9  * as defined in and that are subject to the Apple Public Source License
   10  * Version 2.0 (the 'License'). You may not use this file except in
   11  * compliance with the License. Please obtain a copy of the License at
   12  * http://www.opensource.apple.com/apsl/ and read it before using this
   13  * file.
   14  * 
   15  * The Original Code and all software distributed under the License are
   16  * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
   17  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
   18  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
   19  * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
   20  * Please see the License for the specific language governing rights and
   21  * limitations under the License.
   22  * 
   23  * @APPLE_LICENSE_HEADER_END@
   24  */
   25 #ifndef __HFS_ENDIAN_H__
   26 #define __HFS_ENDIAN_H__
   27 
   28 #include <sys/appleapiopts.h>
   29 
   30 #ifdef KERNEL
   31 #ifdef __APPLE_API_PRIVATE
   32 /*
   33  * hfs_endian.h
   34  *
   35  * This file prototypes endian swapping routines for the HFS/HFS Plus
   36  * volume format.
   37  */
   38 #include "hfs.h"
   39 #include "hfscommon/headers/BTreesInternal.h"
   40 #include <architecture/byte_order.h>
   41 
   42 /*********************/
   43 /* BIG ENDIAN Macros */
   44 /*********************/
   45 #if BYTE_ORDER == BIG_ENDIAN
   46 
   47     /* HFS is always big endian, make swaps into no-ops */
   48     #define SWAP_BE16(__a) (__a)
   49     #define SWAP_BE32(__a) (__a)
   50     #define SWAP_BE64(__a) (__a)
   51     
   52     /* HFS is always big endian, no swapping needed */
   53     #define SWAP_HFS_PLUS_FORK_DATA(__a)
   54     #define SWAP_BT_NODE(__a, __b, __c, __d)
   55 
   56 /************************/
   57 /* LITTLE ENDIAN Macros */
   58 /************************/
   59 #elif BYTE_ORDER == LITTLE_ENDIAN
   60 
   61     /* HFS is always big endian, make swaps actually swap */
   62     #define SWAP_BE16(__a)                                                      NXSwapBigShortToHost (__a)
   63     #define SWAP_BE32(__a)                                                      NXSwapBigLongToHost (__a)
   64     #define SWAP_BE64(__a)                                                      NXSwapBigLongLongToHost (__a)
   65     
   66     #define SWAP_HFS_PLUS_FORK_DATA(__a)                        hfs_swap_HFSPlusForkData ((__a))
   67     #define SWAP_BT_NODE(__a, __b, __c, __d)    hfs_swap_BTNode ((__a), (__b), (__c), (__d))
   68 
   69 #else
   70 #warning Unknown byte order
   71 #error
   72 #endif
   73 
   74 #ifdef __cplusplus
   75 extern "C" {
   76 #endif
   77 
   78 void hfs_swap_HFSPlusForkData (HFSPlusForkData *src);
   79 int  hfs_swap_BTNode (BlockDescriptor *src, int isHFSPlus, HFSCatalogNodeID fileID, int unswap);
   80 
   81 #ifdef __cplusplus
   82 }
   83 #endif
   84 
   85 #endif /* __APPLE_API_PRIVATE */
   86 #endif /* KERNEL */
   87 #endif /* __HFS_FORMAT__ */

Cache object: 6e518344d6a987b34830ce63f31a6ff3


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.