diff options
author | 2015-10-17 21:48:42 +0000 | |
---|---|---|
committer | 2015-10-17 21:48:42 +0000 | |
commit | d994eebbf70ed6a7ab469ce6d8c349905c0a2fe3 (patch) | |
tree | 51dfa2ef684910d61a94fa3c682cb96ddbb33724 /lib/libc | |
parent | Fix the code that sets up the MCH BAR on systems where the (buggy) BIOS (diff) | |
download | wireguard-openbsd-d994eebbf70ed6a7ab469ce6d8c349905c0a2fe3.tar.xz wireguard-openbsd-d994eebbf70ed6a7ab469ce6d8c349905c0a2fe3.zip |
Move the last of the __DBINTERFACE_PRIVATE bits from <db.h> to libc's wrapper
and eliminate the now superfluous -D option
ok kettenis@ millert@
Diffstat (limited to 'lib/libc')
-rw-r--r-- | lib/libc/db/Makefile.inc | 4 | ||||
-rw-r--r-- | lib/libc/hidden/db.h | 50 |
2 files changed, 50 insertions, 4 deletions
diff --git a/lib/libc/db/Makefile.inc b/lib/libc/db/Makefile.inc index 069435a842d..a58c43db1de 100644 --- a/lib/libc/db/Makefile.inc +++ b/lib/libc/db/Makefile.inc @@ -1,7 +1,5 @@ -# $OpenBSD: Makefile.inc,v 1.5 2015/09/09 16:40:15 guenther Exp $ +# $OpenBSD: Makefile.inc,v 1.6 2015/10/17 21:48:42 guenther Exp $ # -CFLAGS+=-D__DBINTERFACE_PRIVATE - .PATH: ${LIBCSRCDIR}/db/btree SRCS+= bt_close.c bt_conv.c bt_debug.c bt_delete.c bt_get.c bt_open.c \ diff --git a/lib/libc/hidden/db.h b/lib/libc/hidden/db.h index a8bc9ca9469..57eb5558010 100644 --- a/lib/libc/hidden/db.h +++ b/lib/libc/hidden/db.h @@ -1,4 +1,4 @@ -/* $OpenBSD: db.h,v 1.2 2015/09/10 18:13:46 guenther Exp $ */ +/* $OpenBSD: db.h,v 1.3 2015/10/17 21:48:42 guenther Exp $ */ /* * Copyright (c) 2015 Philip Guenther <guenther@openbsd.org> * @@ -20,6 +20,54 @@ #include_next <db.h> +/* + * Little endian <==> big endian 32-bit swap macros. + * M_32_SWAP swap a memory location + * P_32_SWAP swap a referenced memory location + * P_32_COPY swap from one location to another + */ +#define M_32_SWAP(a) { \ + u_int32_t _tmp = a; \ + ((char *)&a)[0] = ((char *)&_tmp)[3]; \ + ((char *)&a)[1] = ((char *)&_tmp)[2]; \ + ((char *)&a)[2] = ((char *)&_tmp)[1]; \ + ((char *)&a)[3] = ((char *)&_tmp)[0]; \ +} +#define P_32_SWAP(a) { \ + u_int32_t _tmp = *(u_int32_t *)a; \ + ((char *)a)[0] = ((char *)&_tmp)[3]; \ + ((char *)a)[1] = ((char *)&_tmp)[2]; \ + ((char *)a)[2] = ((char *)&_tmp)[1]; \ + ((char *)a)[3] = ((char *)&_tmp)[0]; \ +} +#define P_32_COPY(a, b) { \ + ((char *)&(b))[0] = ((char *)&(a))[3]; \ + ((char *)&(b))[1] = ((char *)&(a))[2]; \ + ((char *)&(b))[2] = ((char *)&(a))[1]; \ + ((char *)&(b))[3] = ((char *)&(a))[0]; \ +} + +/* + * Little endian <==> big endian 16-bit swap macros. + * M_16_SWAP swap a memory location + * P_16_SWAP swap a referenced memory location + * P_16_COPY swap from one location to another + */ +#define M_16_SWAP(a) { \ + u_int16_t _tmp = a; \ + ((char *)&a)[0] = ((char *)&_tmp)[1]; \ + ((char *)&a)[1] = ((char *)&_tmp)[0]; \ +} +#define P_16_SWAP(a) { \ + u_int16_t _tmp = *(u_int16_t *)a; \ + ((char *)a)[0] = ((char *)&_tmp)[1]; \ + ((char *)a)[1] = ((char *)&_tmp)[0]; \ +} +#define P_16_COPY(a, b) { \ + ((char *)&(b))[0] = ((char *)&(a))[1]; \ + ((char *)&(b))[1] = ((char *)&(a))[0]; \ +} + __BEGIN_HIDDEN_DECLS DB *__bt_open(const char *, int, int, const BTREEINFO *, int); DB *__hash_open(const char *, int, int, const HASHINFO *, int); |