|
Message-Id: <0620da4a3eaadc604c8e7696d81f5c44dfcac6fb.1685527375.git.Jens.Gustedt@inria.fr> Date: Wed, 31 May 2023 12:05:16 +0200 From: Jens Gustedt <Jens.Gustedt@...ia.fr> To: musl@...ts.openwall.com Subject: [C23 new stdlib 2/3] C23: add the memalignment function The name is reserved, so we don't need to protect it via a feature macro or a weak symbol. --- include/stdlib.h | 2 ++ src/stdlib/memalignment.c | 8 ++++++++ 2 files changed, 10 insertions(+) create mode 100644 src/stdlib/memalignment.c diff --git a/include/stdlib.h b/include/stdlib.h index 2f46e6aa..10bdf7f8 100644 --- a/include/stdlib.h +++ b/include/stdlib.h @@ -180,6 +180,8 @@ typedef int once_flag; void call_once(once_flag *, void (*)(void)); #endif +size_t memalignment(const void *); + #ifdef __cplusplus } #endif diff --git a/src/stdlib/memalignment.c b/src/stdlib/memalignment.c new file mode 100644 index 00000000..0f87c71b --- /dev/null +++ b/src/stdlib/memalignment.c @@ -0,0 +1,8 @@ +#include <stdlib.h> +#include <stdint.h> + +size_t memalignment(const void *p) +{ + uintptr_t bits = (uintptr_t)p; + return (bits^(bits-1))&bits; +} -- 2.34.1
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.