Skip to content

AFNI/NIfTI Server

Sections
Personal tools
You are here: Home » AFNI » Documentation

Doxygen Source Code Documentation


Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals   Search  

byteorder.h

Go to the documentation of this file.
00001 /*===========================================================================*
00002  * byteorder.h                                                               *
00003  *                                                                           *
00004  *      stuff to handle different byte order                                 *
00005  *                                                                           *
00006  *===========================================================================*/
00007 
00008 /*
00009  * Copyright (c) 1995 The Regents of the University of California.
00010  * All rights reserved.
00011  *
00012  * Permission to use, copy, modify, and distribute this software and its
00013  * documentation for any purpose, without fee, and without written agreement is
00014  * hereby granted, provided that the above copyright notice and the following
00015  * two paragraphs appear in all copies of this software.
00016  *
00017  * IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR
00018  * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT
00019  * OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF
00020  * CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00021  *
00022  * THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
00023  * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
00024  * AND FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS
00025  * ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO
00026  * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
00027  */
00028 
00029 /*  
00030  *  $Header: /misc/elrond0/share/cvs/AFNI/src/mpeg_encodedir/headers/byteorder.h,v 1.5 2004/04/02 15:12:41 rwcox Exp $
00031  *  $Log: byteorder.h,v $
00032  *  Revision 1.5  2004/04/02 15:12:41  rwcox
00033  *  Cput
00034  *
00035  *  Revision 1.4  2004/02/05 21:32:23  rwcox
00036  *  Cput
00037  *
00038  *  Revision 1.3  2003/12/23 13:50:08  rwcox
00039  *  Cput
00040  *
00041  *  Revision 1.2  2003/12/03 14:46:15  rwcox
00042  *  Cput
00043  *
00044  *  Revision 1.1  2001/12/17 18:25:44  rwcox
00045  *  Cadd
00046  *
00047  * Revision 1.3  1995/01/19  23:54:39  eyhung
00048  * Changed copyrights
00049  *
00050  * Revision 1.3  1995/01/19  23:54:39  eyhung
00051  * Changed copyrights
00052  *
00053  * Revision 1.2  1994/11/12  02:12:15  keving
00054  * nothing
00055  *
00056  * Revision 1.1  1993/07/22  22:24:23  keving
00057  * nothing
00058  *
00059  */
00060 
00061 
00062 #include "general.h"
00063 
00064 
00065 #ifdef FORCE_BIG_ENDIAN
00066     /* leave byte order as it is */
00067 #define htonl(x) (x)
00068 #define ntohl(x) (x)
00069 #define htons(x) (x)
00070 #define ntohs(x) (x)
00071 #else
00072 #ifdef FORCE_LITTLE_ENDIAN
00073     /* need to reverse byte order */
00074     /* note -- we assume here that htonl is called on a variable, not a
00075      * constant; thus, this is not for general use, but works with bitio.c
00076      */
00077 #define htonl(x)    \
00078     ((((unsigned char *)(&x))[0] << 24) |       \
00079      (((unsigned char *)(&x))[1] << 16) |       \
00080      (((unsigned char *)(&x))[2] << 8) |        \
00081      (((unsigned char *)(&x))[3]))
00082 #define ntohl(x)    htonl(x)
00083 #define htons(x)    \
00084     ((((unsigned char *)(&x))[0] << 8) |        \
00085      ((unsigned char *)(&x))[1])
00086 #define ntohs(x)    htons(x)
00087 #else
00088     /* let in.h handle it, if possible */                  
00089 #include <sys/types.h>
00090 #include <netinet/in.h>
00091 #endif /* FORCE_LITTLE_ENDIAN */
00092 #endif /* FORCE_BIG_ENDIAN */
 

Powered by Plone

This site conforms to the following standards: