1 /* @(#)align.h 1.11 13/07/23 Copyright 1995-2013 J. Schilling */ 2 /* 3 * Platform dependent definitions for aligning data. 4 * 5 * Copyright (c) 1995-2013 J. Schilling 6 */ 7 /* 8 * The contents of this file are subject to the terms of the 9 * Common Development and Distribution License, Version 1.0 only 10 * (the "License"). You may not use this file except in compliance 11 * with the License. 12 * 13 * See the file CDDL.Schily.txt in this distribution for details. 14 * A copy of the CDDL is also available via the Internet at 15 * http://www.opensource.org/licenses/cddl1.txt 16 * 17 * When distributing Covered Code, include this CDDL HEADER in each 18 * file and include the License file CDDL.Schily.txt from this distribution. 19 */ 20 21 /* 22 * The automatically created included file defines the following macros: 23 * 24 * saligned(a) One parameter aligned for a "short int" 25 * s2aligned(a, b) Both parameters aligned for a "short int" 26 * ialigned(a) One parameter aligned for a "int" 27 * i2aligned(a, b) Both parameters aligned for a "int" 28 * laligned(a) One parameter aligned for a "long" 29 * l2aligned(a, b) Both parameters aligned for a "long" 30 * llaligned(a) One parameter aligned for a "long long" 31 * ll2aligned(a, b) Both parameters aligned for a "long long" 32 * faligned(a) One parameter aligned for a "float" 33 * f2aligned(a, b) Both parameters aligned for a "float" 34 * daligned(a) One parameter aligned for a "double" 35 * d2aligned(a, b) Both parameters aligned for a "double" 36 * paligned(a) One parameter aligned for a "pointer" 37 * p2aligned(a, b) Both parameters aligned for a "pointe" 38 * 39 * salign(x) Align for a "short int" 40 * ialign(x) Align for a "int" 41 * lalign(x) Align for a "long" 42 * llalign(x) Align for a "long long" 43 * falign(x) Align for a "float" 44 * dalign(x) Align for a "double" 45 * palign(x) Align for a "pointer" 46 */ 47 #ifndef _SCHILY_ALIGN_H 48 #define _SCHILY_ALIGN_H 49 50 #ifndef _SCHILY_MCONFIG_H 51 #include <schily/mconfig.h> 52 #endif 53 54 #ifndef _SCHILY_UTYPES_H 55 #include <schily/utypes.h> 56 #endif 57 58 #ifdef SCHILY_BUILD /* #defined by Schily makefile system */ 59 /* 60 * Include $(SRCROOT)/incs/$(OARCH)/align.h via 61 * -I$(SRCROOT)/incs/$(OARCH)/ 62 */ 63 # include <align.h> 64 #else /* !SCHILY_BUILD */ 65 /* 66 * The stuff for static compilation. Include files from a previous 67 * dynamic autoconfiguration. 68 */ 69 #ifdef __SUNOS5_SPARC_CC32 70 #include <schily/sparc-sunos5-cc/align.h> 71 #define __JS_ARCH_ALIGN_INCL 72 #endif 73 #ifdef __SUNOS5_SPARC_CC64 74 #include <schily/sparc-sunos5-cc64/align.h> 75 #define __JS_ARCH_ALIGN_INCL 76 #endif 77 #ifdef __SUNOS5_SPARC_GCC32 78 #include <schily/sparc-sunos5-gcc/align.h> 79 #define __JS_ARCH_ALIGN_INCL 80 #endif 81 #ifdef __SUNOS5_SPARC_GCC64 82 #include <schily/sparc-sunos5-gcc64/align.h> 83 #define __JS_ARCH_ALIGN_INCL 84 #endif 85 #ifdef __SUNOS5_X86_CC32 86 #include <schily/i386-sunos5-cc/align.h> 87 #define __JS_ARCH_ALIGN_INCL 88 #endif 89 #ifdef __SUNOS5_X86_CC64 90 #include <schily/i386-sunos5-cc64/align.h> 91 #define __JS_ARCH_ALIGN_INCL 92 #endif 93 #ifdef __SUNOS5_X86_GCC32 94 #include <schily/i386-sunos5-gcc/align.h> 95 #define __JS_ARCH_ALIGN_INCL 96 #endif 97 #ifdef __SUNOS5_X86_GCC64 98 #include <schily/i386-sunos5-gcc64/align.h> 99 #define __JS_ARCH_ALIGN_INCL 100 #endif 101 102 #ifdef __HPUX_HPPA_CC32 103 #include <schily/hppa-hp-ux-cc/align.h> 104 #define __JS_ARCH_CONF_INCL 105 #endif 106 #ifdef __HPUX_HPPA_CC64 107 #include <schily/hppa-hp-ux-cc64/align.h> 108 #define __JS_ARCH_CONF_INCL 109 #endif 110 #ifdef __HPUX_HPPA_GCC32 111 #include <schily/hppa-hp-ux-gcc/align.h> 112 #define __JS_ARCH_CONF_INCL 113 #endif 114 #ifdef __HPUX_HPPA_GCC64 115 #include <schily/hppa-hp-ux-gcc64/align.h> 116 #define __JS_ARCH_CONF_INCL 117 #endif 118 119 #ifdef __LINUX_ARMV6L_GCC32 120 #include <schily/armv6l-linux-gcc/align.h> 121 #define __JS_ARCH_CONF_INCL 122 #endif 123 #ifdef __LINUX_ARMV5L_GCC32 124 #include <schily/armv6l-linux-gcc/align.h> 125 #define __JS_ARCH_CONF_INCL 126 #endif 127 #ifdef __LINUX_ARMV5TEJL_GCC32 128 #include <schily/armv5tejl-linux-gcc/align.h> 129 #define __JS_ARCH_CONF_INCL 130 #endif 131 #ifdef __LINUX_I386_GCC32 132 #include <schily/i686-linux-gcc/align.h> 133 #define __JS_ARCH_CONF_INCL 134 #endif 135 #ifdef __LINUX_amd64_GCC64 136 #include <schily/x86_64-linux-gcc/align.h> 137 #define __JS_ARCH_CONF_INCL 138 #endif 139 140 #ifdef __MSWIN_X86_CL32 141 #include <schily/i686-cygwin32_nt-cl/align.h> 142 #define __JS_ARCH_ALIGN_INCL 143 #endif 144 145 #ifdef __CYGWIN_X86_GCC 146 #include <schily/i686-cygwin32_nt-gcc/align.h> 147 #define __JS_ARCH_ALIGN_INCL 148 #endif 149 150 #ifndef __JS_ARCH_ALIGN_INCL 151 /* 152 * #error will not work for all compilers (e.g. sunos4) 153 * The following line will abort compilation on all compilers 154 * if none of the above is defined. And that's what we want. 155 */ 156 Error unconfigured architecture 157 158 #include <schily/err_arch.h> /* Avoid "unknown directive" with K&R */ 159 #endif 160 161 #endif /* SCHILY_BUILD */ 162 163 #ifdef __cplusplus 164 extern "C" { 165 #endif 166 /* 167 * Fake in order to keep the silly hdrchk(1) quiet. 168 */ 169 #ifdef __cplusplus 170 } 171 #endif 172 173 #endif /* _SCHILY_ALIGN_H */ 174