From 772d929a3ca02ed113176afb757358a99cb490f1 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Wed, 4 Apr 2012 17:47:18 -0500 Subject: Add _ALIGN macro based on one in libmisc/shell/fts.c --- freebsd/sys/param.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/freebsd/sys/param.h b/freebsd/sys/param.h index 1a67648d..cd00ea4c 100644 --- a/freebsd/sys/param.h +++ b/freebsd/sys/param.h @@ -155,6 +155,18 @@ #define MJUM9BYTES (9 * 1024) /* jumbo cluster 9k */ #define MJUM16BYTES (16 * 1024) /* jumbo cluster 16k */ +/* + * Round p (pointer or byte index) up to a correctly-aligned value + * for all data types (int, long, ...). The result is u_long and + * must be cast to any desired pointer type. + */ +#ifndef _ALIGNBYTES +#define _ALIGNBYTES (sizeof(long) - 1) +#endif +#ifndef _ALIGN +#define _ALIGN(p) (((uintptr_t)(p) + _ALIGNBYTES) &~ _ALIGNBYTES) +#endif + /* * Some macros for units conversion */ -- cgit v1.2.3