diff options
author | Mattias Andrée <maandree@kth.se> | 2018-11-25 15:42:18 +0100 |
---|---|---|
committer | Mattias Andrée <maandree@kth.se> | 2018-11-25 15:42:18 +0100 |
commit | edd7a4955dc31ea3e0893008f8b31bbded22a1b6 (patch) | |
tree | 9a4f61118886d660d6008e8fef2d9bcf1ff8127a | |
parent | Add man pages for [raw]memelem{cpy,move} (diff) | |
download | libsimple-edd7a4955dc31ea3e0893008f8b31bbded22a1b6.tar.gz libsimple-edd7a4955dc31ea3e0893008f8b31bbded22a1b6.tar.bz2 libsimple-edd7a4955dc31ea3e0893008f8b31bbded22a1b6.tar.xz |
Add array.h
Signed-off-by: Mattias Andrée <maandree@kth.se>
-rw-r--r-- | Makefile | 1 | ||||
-rw-r--r-- | libsimple.h | 1 | ||||
-rw-r--r-- | libsimple/array.h | 117 |
3 files changed, 119 insertions, 0 deletions
@@ -7,6 +7,7 @@ SUBHDR =\ libsimple/aligned_alloc.h\ libsimple/aligned_allocz.h\ libsimple/aligned_memdup.h\ + libsimple/array.h\ libsimple/calloc.h\ libsimple/definitions.h\ libsimple/env.h\ diff --git a/libsimple.h b/libsimple.h index 6e2c08f..f2dd4b9 100644 --- a/libsimple.h +++ b/libsimple.h @@ -73,6 +73,7 @@ #include "libsimple/time.h" #include "libsimple/mem.h" #include "libsimple/memelem.h" +#include "libsimple/array.h" #include "libsimple/str.h" #include "libsimple/strn.h" #include "libsimple/overflow.h" diff --git a/libsimple/array.h b/libsimple/array.h new file mode 100644 index 0000000..b31088c --- /dev/null +++ b/libsimple/array.h @@ -0,0 +1,117 @@ +/* See LICENSE file for copyright and license details. */ + +/* TODO test, doc, man */ + + +#define libsimple_arrayelem(haystack, needle, n) libsimple_memelem(haystack, needle, sizeof *(haystack), n) +#ifndef arrayelem +# define arrayelem(...) libsimple_arrayelem(__VA_ARGS__) +#endif + + +#define libsimple_rawarrayelem(haystack, needle, n) libsimple_rawmemelem(haystack, needle, sizeof *(haystack), n) +#ifndef rawarrayelem +# define rawarrayelem(...) libsimple_rawarrayelem(__VA_ARGS__) +#endif + + +#define libsimple_arrayscan(haystack, needle, n) libsimple_memelemscan(haystack, needle, sizeof *(haystack), n) +#ifndef arrayscan +# define arrayscan(...) libsimple_arrayscan(__VA_ARGS__) +#endif + + +#define libsimple_arrayrelem(haystack, needle, n) libsimple_memrelem(haystack, needle, sizeof *(haystack), n) +#ifndef arrayrelem +# define arrayrelem(...) libsimple_arrayrelem(__VA_ARGS__) +#endif + + +#define libsimple_rawarrayrelem(haystack, needle, n) libsimple_rawmemrelem(haystack, needle, sizeof *(haystack), n) +#ifndef rawarrayrelem +# define rawarrayrelem(...) libsimple_rawarrayrelem(__VA_ARGS__) +#endif + + +#define libsimple_arrayelem_inv(haystack, needle, n) libsimple_memelem_inv(haystack, needle, sizeof *(haystack), n) +#ifndef arrayelem_inv +# define arrayelem_inv(...) libsimple_arrayelem_inv(__VA_ARGS__) +#endif + + +#define libsimple_rawarrayelem_inv(haystack, needle, n) libsimple_rawmemelem_inv(haystack, needle, sizeof *(haystack), n) +#ifndef rawarrayelem_inv +# define rawarrayelem_inv(...) libsimple_rawarrayelem_inv(__VA_ARGS__) +#endif + + +#define libsimple_arrayscan_inv(haystack, needle, n) libsimple_memelemscan_inv(haystack, needle, sizeof *(haystack), n) +#ifndef arrayscan_inv +# define arrayscan_inv(...) libsimple_arrayscan_inv(__VA_ARGS__) +#endif + + +#define libsimple_arrayrelem_inv(haystack, needle, n) libsimple_memrelem_inv(haystack, needle, sizeof *(haystack), n) +#ifndef arrayrelem_inv +# define arrayrelem_inv(...) libsimple_arrayrelem_inv(__VA_ARGS__) +#endif + + +#define libsimple_rawarrayrelem_inv(haystack, needle, n) libsimple_rawmemrelem_inv(haystack, needle, sizeof *(haystack), n) +#ifndef rawarrayrelem_inv +# define rawarrayrelem_inv(...) libsimple_rawarrayrelem_inv(__VA_ARGS__) +#endif + + +#define libsimple_arrayset(buf, item, n) libsimple_memsetelem(buf, item, (n) * sizeof *(buf)) +#ifndef arrayset +# define arrayset(...) libsimple_arrayset(__VA_ARGS__) +#endif + + +#define libsimple_arraypset(buf, item, n) libsimple_mempsetelem(buf, item, (n) * sizeof *(buf)) +#ifndef arraypset +# define arraypset(...) libsimple_arraypset(__VA_ARGS__) +#endif + + +#define libsimple_arraycpy(d, s, n) libsimple_memcpy(d, s, (n) * sizeof *(s)) +#ifndef arraycpy +# define arraycpy(...) libsimple_arraycpy(__VA_ARGS__) +#endif + + +#define libsimple_arraymove(d, s, n) libsimple_memmove(d, s, (n) * sizeof *(s)) +#ifndef arraymove +# define arraymove(...) libsimple_arraymove(__VA_ARGS__) +#endif + + +#define libsimple_arrayelemcpy(d, s, elem, n) libsimple_memelemcpy(d, s, elem, sizeof *(s), n) +#ifndef arrayelemcpy +# define arrayelemcpy(...) libsimple_arrayelemcpy(__VA_ARGS__) +#endif + + +#define libsimple_arrayelemmove(d, s, elem, n) libsimple_memelemmove(d, s, elem, sizeof *(s), n) +#ifndef arrayelemmove +# define arrayelemmove(...) libsimple_arrayelemmove(__VA_ARGS__) +#endif + + +#define libsimple_rawarrayelemcpy(d, s, elem) libsimple_rawmemelemcpy(d, s, elem, sizeof *(s)) +#ifndef rawarrayelemcpy +# define rawarrayelemcpy(...) libsimple_rawarrayelemcpy(__VA_ARGS__) +#endif + + +#define libsimple_rawarrayelemmove(d, s, elem) libsimple_rawmemelemmove(d, s, elem, sizeof *(s)) +#ifndef rawarrayelemmove +# define rawarrayelemmove(...) libsimple_rawarrayelemmove(__VA_ARGS__) +#endif + + +#define libsimple_arrayreplace(s, old, new, n) libsimple_memreplaceelem(s, old, new, sizeof *(s), n) +#ifndef arrayreplace +# define arrayreplace(...) libsimple_arrayreplace(__VA_ARGS__) +#endif |