mirror of https://github.com/acidanthera/audk.git
44 lines
1.2 KiB
C
44 lines
1.2 KiB
C
/** @file
|
|
|
|
Copyright (c) 2004, Intel Corporation
|
|
All rights reserved. This program and the accompanying materials
|
|
are licensed and made available under the terms and conditions of the BSD License
|
|
which accompanies this distribution. The full text of the license may be found at
|
|
http://opensource.org/licenses/bsd-license.php
|
|
|
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|
|
|
Module name:
|
|
hton.h
|
|
|
|
Abstract:
|
|
Byte swapping macros.
|
|
|
|
|
|
**/
|
|
|
|
#ifndef _HTON_H_
|
|
#define _HTON_H_
|
|
|
|
//
|
|
// Only Intel order functions are defined at this time.
|
|
//
|
|
#define HTONS(v) (UINT16) ((((v) << 8) & 0xff00) + (((v) >> 8) & 0x00ff))
|
|
|
|
#define HTONL(v) \
|
|
(UINT32) ((((v) << 24) & 0xff000000) + (((v) << 8) & 0x00ff0000) + (((v) >> 8) & 0x0000ff00) + (((v) >> 24) & 0x000000ff))
|
|
|
|
#define HTONLL(v) swap64 (v)
|
|
|
|
#define U8PTR(na) ((UINT8 *) &(na))
|
|
|
|
#define NTOHS(ns) ((UINT16) (((*U8PTR (ns)) << 8) +*(U8PTR (ns) + 1)))
|
|
|
|
#define NTOHL(ns) \
|
|
((UINT32) (((*U8PTR (ns)) << 24) + ((*(U8PTR (ns) + 1)) << 16) + ((*(U8PTR (ns) + 2)) << 8) +*(U8PTR (ns) + 3)))
|
|
|
|
#endif /* _HTON_H_ */
|
|
|
|
/* EOF - hton.h */
|