OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [rtems/] [c/] [src/] [libnetworking/] [machine/] [endian.h] - Rev 173

Compare with Previous | Blame | View Log

/*
 *  $Id: endian.h,v 1.2 2001-09-27 12:01:53 chris Exp $
 */
 
#ifndef _MACHINE_ENDIAN_H_
#define _MACHINE_ENDIAN_H_
 
#include <rtems/score/cpu.h>
 
/*
 * BSD-style endian declaration
 */
#define BIG_ENDIAN	4321
#define LITTLE_ENDIAN	1234
 
#if CPU_BIG_ENDIAN
# define BYTE_ORDER BIG_ENDIAN
#elif CPU_LITTLE_ENDIAN
# define BYTE_ORDER LITTLE_ENDIAN
#else
# error "Can't decide which end is which!"
#endif
 
#if ( CPU_HAS_OWN_HOST_TO_NETWORK_ROUTINES == FALSE )
 
#if ( CPU_BIG_ENDIAN == TRUE )
 
/*
 *  Very simply on big endian CPUs
 */
 
#define       ntohl(_x)        (_x)
#define       ntohs(_x)        (_x)
#define       htonl(_x)        (_x)
#define       htons(_x)        (_x)
 
#define NTOHS(x)
#define HTONS(x)
#define NTOHL(x)
#define HTONL(x)
 
#elif ( CPU_LITTLE_ENDIAN == TRUE )
 
/*
 *  A little more complicated on little endian CPUs
 */
 
#define       ntohl(_x)        ((long)  CPU_swap_u32((unsigned32)_x))
#define       ntohs(_x)        ((short) CPU_swap_u16((unsigned16)_x))
#define       htonl(_x)        ((long)  CPU_swap_u32((unsigned32)_x))
#define       htons(_x)        ((short) CPU_swap_u16((unsigned16)_x))
 
#define NTOHS(x) (x) = ntohs(x)
#define HTONS(x) (x) = htons(x)
#define NTOHL(x) (x) = ntohl(x)
#define HTONL(x) (x) = htonl(x)
 
#else
#error "Unknown endian-ness for this cpu"
#endif
 
#endif  /* CPU_HAS_OWN_HOST_TO_NETWORK_ROUTINES */
 
#endif /* _MACHINE_ENDIAN_H_ */
 

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.