1/* 2 * This file has been generated automatically 3 * by CMake commands. Do not edit. 4 * 5 * Original contents from @(#)align_test.c 1.19 03/11/25 Copyright 1995 J. Schilling 6 * 7 */ 8 9#ifndef _UTYPES_H 10#include <utypes.h> 11#endif 12 13#define ALIGN_SHORT @SIZE_SHORT@ 14#define ALIGN_INT @SIZE_INT@ 15#define ALIGN_LONG @SIZE_LONG@ 16#define ALIGN_LLONG @SIZE_LLONG@ 17#define ALIGN_FLOAT @SIZE_FLOAT@ 18#define ALIGN_DOUBLE @SIZE_DOUBLE@ 19#define ALIGN_PTR @SIZE_PTR@ 20 21#define SIZE_SHORT @SIZE_SHORT@ 22#define SIZE_INT @SIZE_INT@ 23#define SIZE_LONG @SIZE_LONG@ 24#define SIZE_LLONG @SIZE_LLONG@ 25#define SIZE_FLOAT @SIZE_FLOAT@ 26#define SIZE_DOUBLE @SIZE_DOUBLE@ 27#define SIZE_PTR @SIZE_PTR@ 28 29 30#define ALIGN_SMASK @SHORTLESS@ 31#define ALIGN_IMASK @INTLESS@ 32#define ALIGN_LMASK @LONGLESS@ 33#define ALIGN_LLMASK @LLONGLESS@ 34#define ALIGN_FMASK @FLOATLESS@ 35#define ALIGN_DMASK @DOUBLELESS@ 36#define ALIGN_PMASK @PTRLESS@ 37 38 39/* 40 * There used to be a cast to an int but we get a warning from GCC. 41 * This warning message from GCC is wrong. 42 * Believe me that this macro would even be usable if I would cast to short. 43 * In order to avoid this warning, we are now using UIntptr_t 44 */ 45#define xaligned(a, s) ((((UIntptr_t)(a)) & (s)) == 0 ) 46#define x2aligned(a, b, s) (((((UIntptr_t)(a)) | ((UIntptr_t)(b))) & (s)) == 0 ) 47 48#define saligned(a) xaligned(a, ALIGN_SMASK) 49#define s2aligned(a, b) x2aligned(a, b, ALIGN_SMASK) 50 51#define ialigned(a) xaligned(a, ALIGN_IMASK) 52#define i2aligned(a, b) x2aligned(a, b, ALIGN_IMASK) 53 54#define laligned(a) xaligned(a, ALIGN_LMASK) 55#define l2aligned(a, b) x2aligned(a, b, ALIGN_LMASK) 56 57#define llaligned(a) xaligned(a, ALIGN_LLMASK) 58#define ll2aligned(a, b) x2aligned(a, b, ALIGN_LLMASK) 59 60#define faligned(a) xaligned(a, ALIGN_FMASK) 61#define f2aligned(a, b) x2aligned(a, b, ALIGN_FMASK) 62 63#define daligned(a) xaligned(a, ALIGN_DMASK) 64#define d2aligned(a, b) x2aligned(a, b, ALIGN_DMASK) 65 66#define paligned(a) xaligned(a, ALIGN_PMASK) 67#define p2aligned(a, b) x2aligned(a, b, ALIGN_PMASK) 68 69 70/* 71 * There used to be a cast to an int but we get a warning from GCC. 72 * This warning message from GCC is wrong. 73 * Believe me that this macro would even be usable if I would cast to short. 74 * In order to avoid this warning, we are now using UIntptr_t 75 */ 76#define xalign(x, a, m) ( ((char *)(x)) + ( (a) - 1 - ((((UIntptr_t)(x))-1)&(m))) ) 77 78#define salign(x) xalign((x), ALIGN_SHORT, ALIGN_SMASK) 79#define ialign(x) xalign((x), ALIGN_INT, ALIGN_IMASK) 80#define lalign(x) xalign((x), ALIGN_LONG, ALIGN_LMASK) 81#define llalign(x) xalign((x), ALIGN_LLONG, ALIGN_LLMASK) 82#define falign(x) xalign((x), ALIGN_FLOAT, ALIGN_FMASK) 83#define dalign(x) xalign((x), ALIGN_DOUBLE, ALIGN_DMASK) 84#define palign(x) xalign((x), ALIGN_PTR, ALIGN_PMASK) 85