diff options
author | Jeff Johnston <jjohnstn@redhat.com> | 2002-07-02 22:18:58 +0400 |
---|---|---|
committer | Jeff Johnston <jjohnstn@redhat.com> | 2002-07-02 22:18:58 +0400 |
commit | cec4a9f8f00e58c2486849aa0cf784b84a411beb (patch) | |
tree | ae3d9daebd3a3c5501497beab441a1bf27737092 /newlib/libc/search | |
parent | d183515c9fa35681286cbdf02da37845648cef0b (diff) |
2002-07-02 Chris Demetriou <cgd@broadcom.com>
* libc/include/sys/config.h (__IEEE_LITTLE_ENDIAN)
(__IEEE_BIG_ENDIAN): Define appropriately for MIPS.
Check that one of them is defined and error out if not.
Add any platforms defined in <machine/ieeefp.h> that are missing.
* libc/search/hash.h (DB_BYTE_ORDER, DB_BIG_ENDIAN)
(DB_LITTLE_ENDIAN): New defines.
* libc/search/hash.c: Replace all incorrect checks for
_IEEE_LITTLE_ENDIAN with tests of BYTE_ORDER, and all uses of
BYTE_ORDER, LITTLE_ENDIAN, and BIG_ENDIAN with DB_* versions.
* libc/search/hash_page.c: Likewise.
Diffstat (limited to 'newlib/libc/search')
-rw-r--r-- | newlib/libc/search/hash.c | 16 | ||||
-rw-r--r-- | newlib/libc/search/hash.h | 18 | ||||
-rw-r--r-- | newlib/libc/search/hash_page.c | 4 |
3 files changed, 19 insertions, 19 deletions
diff --git a/newlib/libc/search/hash.c b/newlib/libc/search/hash.c index 5bd4fb77e..3aa3eb7ea 100644 --- a/newlib/libc/search/hash.c +++ b/newlib/libc/search/hash.c @@ -72,7 +72,7 @@ static int hash_sync(const DB *, __uint32_t); static int hdestroy(HTAB *); static HTAB *init_hash(HTAB *, const char *, HASHINFO *); static int init_htab(HTAB *, int); -#ifdef _IEEE_LITTLE_ENDIAN +#if (BYTE_ORDER == LITTLE_ENDIAN) static void swap_header(HTAB *); static void swap_header_copy(HASHHDR *, HASHHDR *); #endif @@ -156,7 +156,7 @@ __hash_open(file, flags, mode, info, dflags) hashp->hash = __default_hash; hdrsize = read(hashp->fp, &hashp->hdr, sizeof(HASHHDR)); -#ifdef _IEEE_LITTLE_ENDIAN +#if (BYTE_ORDER == LITTLE_ENDIAN) swap_header(hashp); #endif if (hdrsize == -1) @@ -299,7 +299,7 @@ init_hash(hashp, file, info) nelem = 1; hashp->NKEYS = 0; - hashp->LORDER = BYTE_ORDER; + hashp->LORDER = DB_BYTE_ORDER; hashp->BSIZE = DEF_BUCKET_SIZE; hashp->BSHIFT = DEF_BUCKET_SHIFT; hashp->SGSIZE = DEF_SEGSIZE; @@ -335,8 +335,8 @@ init_hash(hashp, file, info) if (info->nelem) nelem = info->nelem; if (info->lorder) { - if (info->lorder != BIG_ENDIAN && - info->lorder != LITTLE_ENDIAN) { + if (info->lorder != DB_BIG_ENDIAN && + info->lorder != DB_LITTLE_ENDIAN) { errno = EINVAL; return (NULL); } @@ -495,7 +495,7 @@ flush_meta(hashp) HTAB *hashp; { HASHHDR *whdrp; -#ifdef _IEEE_LITTLE_ENDIAN +#if (BYTE_ORDER == LITTLE_ENDIAN) HASHHDR whdr; #endif int fp, i, wsize; @@ -508,7 +508,7 @@ flush_meta(hashp) fp = hashp->fp; whdrp = &hashp->hdr; -#ifdef _IEEE_LITTLE_ENDIAN +#if (BYTE_ORDER == LITTLE_ENDIAN) whdrp = &whdr; swap_header_copy(&hashp->hdr, whdrp); #endif @@ -941,7 +941,7 @@ alloc_segs(hashp, nsegs) return (0); } -#ifdef _IEEE_LITTLE_ENDIAN +#if (BYTE_ORDER == LITTLE_ENDIAN) /* * Hashp->hdr needs to be byteswapped. */ diff --git a/newlib/libc/search/hash.h b/newlib/libc/search/hash.h index 8287eb7e5..db9e96dd8 100644 --- a/newlib/libc/search/hash.h +++ b/newlib/libc/search/hash.h @@ -39,18 +39,18 @@ #include <sys/param.h> +/* Check that newlib understands the byte order of its target system. */ #ifndef BYTE_ORDER -#ifndef LITTLE_ENDIAN -#define LITTLE_ENDIAN 1234 +#error BYTE_ORDER not defined by sys/param.h #endif -#ifndef BIG_ENDIAN -#define BIG_ENDIAN 4321 -#endif -#ifdef __IEEE_LITTLE_ENDIAN -#define BYTE_ORDER LITTLE_ENDIAN + +/* Define DB endianness constants based on target endianness. */ +#define DB_LITTLE_ENDIAN 1234 +#define DB_BIG_ENDIAN 4321 +#if (BYTE_ORDER == LITTLE_ENDIAN) +#define DB_BYTE_ORDER DB_LITTLE_ENDIAN #else -#define BYTE_ORDER BIG_ENDIAN -#endif +#define DB_BYTE_ORDER DB_BIG_ENDIAN #endif /* Operations */ diff --git a/newlib/libc/search/hash_page.c b/newlib/libc/search/hash_page.c index 896aee8d5..cffb20aa3 100644 --- a/newlib/libc/search/hash_page.c +++ b/newlib/libc/search/hash_page.c @@ -552,7 +552,7 @@ __get_page(hashp, p, bucket, is_bucket, is_disk, is_bitmap) if (!is_bitmap && !bp[0]) { PAGE_INIT(p); } else - if (hashp->LORDER != BYTE_ORDER) { + if (hashp->LORDER != DB_BYTE_ORDER) { int i, max; if (is_bitmap) { @@ -591,7 +591,7 @@ __put_page(hashp, p, bucket, is_bucket, is_bitmap) return (-1); fd = hashp->fp; - if (hashp->LORDER != BYTE_ORDER) { + if (hashp->LORDER != DB_BYTE_ORDER) { int i; int max; |