+++ /dev/null
-/* macros.h
- *
- */
-
-/* nettle, low-level cryptographics library
- *
- * Copyright (C) 2001 Niels Möller
- *
- * The nettle library is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation; either version 2.1 of the License, or (at your
- * option) any later version.
- *
- * The nettle library is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
- * License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with the nettle library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- * MA 02111-1307, USA.
- */
-
-#ifndef NETTLE_MACROS_H_INCLUDED
-#define NETTLE_MACROS_H_INCLUDED
-
-/* Reads a 32-bit integer, in network, big-endian, byte order */
-#define READ_UINT32(p) \
-( (((uint32_t) (p)[0]) << 24) \
- | (((uint32_t) (p)[1]) << 16) \
- | (((uint32_t) (p)[2]) << 8) \
- | ((uint32_t) (p)[3]))
-
-#define WRITE_UINT32(p, i) \
-do { \
- (p)[0] = ((i) >> 24) & 0xff; \
- (p)[1] = ((i) >> 16) & 0xff; \
- (p)[2] = ((i) >> 8) & 0xff; \
- (p)[3] = (i) & 0xff; \
-} while(0)
-
-/* And the other, little-endian, byteorder */
-#define LE_READ_UINT32(p) \
-( (((uint32_t) (p)[3]) << 24) \
- | (((uint32_t) (p)[2]) << 16) \
- | (((uint32_t) (p)[1]) << 8) \
- | ((uint32_t) (p)[0]))
-
-#define LE_WRITE_UINT32(p, i) \
-do { \
- (p)[3] = ((i) >> 24) & 0xff; \
- (p)[2] = ((i) >> 16) & 0xff; \
- (p)[1] = ((i) >> 8) & 0xff; \
- (p)[0] = (i) & 0xff; \
-} while(0)
-
-/* Macro to make it easier to loop over several blocks. */
-#define FOR_BLOCKS(length, dst, src, blocksize) \
- assert( !((length) % (blocksize))); \
- for (; (length); ((length) -= (blocksize), \
- (dst) += (blocksize), \
- (src) += (blocksize)) )
-
-#endif /* NETTLE_MACROS_H_INCLUDED */