1 /* $NetBSD: common_int_fmtio.h,v 1.1 2014/07/25 21:43:13 joerg Exp $ */ 2 3 /*- 4 * Copyright (c) 2014 The NetBSD Foundation, Inc. 5 * All rights reserved. 6 * 7 * This code is derived from software contributed to The NetBSD Foundation 8 * by Joerg Sonnenberger. 9 * 10 * Redistribution and use in source and binary forms, with or without 11 * modification, are permitted provided that the following conditions 12 * are met: 13 * 1. Redistributions of source code must retain the above copyright 14 * notice, this list of conditions and the following disclaimer. 15 * 2. Redistributions in binary form must reproduce the above copyright 16 * notice, this list of conditions and the following disclaimer in the 17 * documentation and/or other materials provided with the distribution. 18 * 19 * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 20 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 21 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 22 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 23 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 24 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 25 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 26 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 27 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 28 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 29 * POSSIBILITY OF SUCH DAMAGE. 30 */ 31 32 #ifndef _SYS_COMMON_INT_FMTIO_H_ 33 #define _SYS_COMMON_INT_FMTIO_H_ 34 35 #ifndef __INTPTR_FMTd__ 36 #error Your compiler does not provide format string macros. 37 #endif 38 39 /* 40 * 7.8.1 Macros for format specifiers 41 */ 42 43 /* fprintf macros for signed integers */ 44 #define PRId8 __INT8_FMTd__ 45 #define PRId16 __INT16_FMTd__ 46 #define PRId32 __INT32_FMTd__ 47 #define PRId64 __INT64_FMTd__ 48 #define PRIdLEAST8 __INT_LEAST8_FMTd__ 49 #define PRIdLEAST16 __INT_LEAST16_FMTd__ 50 #define PRIdLEAST32 __INT_LEAST32_FMTd__ 51 #define PRIdLEAST64 __INT_LEAST64_FMTd__ 52 #define PRIdFAST8 __INT_FAST8_FMTd__ 53 #define PRIdFAST16 __INT_FAST16_FMTd__ 54 #define PRIdFAST32 __INT_FAST32_FMTd__ 55 #define PRIdFAST64 __INT_FAST64_FMTd__ 56 #define PRIdMAX __INTMAX_FMTd__ 57 #define PRIdPTR __INTPTR_FMTd__ 58 59 #define PRIi8 __INT8_FMTi__ 60 #define PRIi16 __INT16_FMTi__ 61 #define PRIi32 __INT32_FMTi__ 62 #define PRIi64 __INT64_FMTi__ 63 #define PRIiLEAST8 __INT_LEAST8_FMTi__ 64 #define PRIiLEAST16 __INT_LEAST16_FMTi__ 65 #define PRIiLEAST32 __INT_LEAST32_FMTi__ 66 #define PRIiLEAST64 __INT_LEAST64_FMTi__ 67 #define PRIiFAST8 __INT_FAST8_FMTi__ 68 #define PRIiFAST16 __INT_FAST16_FMTi__ 69 #define PRIiFAST32 __INT_FAST32_FMTi__ 70 #define PRIiFAST64 __INT_FAST64_FMTi__ 71 #define PRIiMAX __INTMAX_FMTi__ 72 #define PRIiPTR __INTPTR_FMTi__ 73 74 /* fprintf macros for unsigned integers */ 75 76 #define PRIo8 __UINT8_FMTo__ 77 #define PRIo16 __UINT16_FMTo__ 78 #define PRIo32 __UINT32_FMTo__ 79 #define PRIo64 __UINT64_FMTo__ 80 #define PRIoLEAST8 __UINT_LEAST8_FMTo__ 81 #define PRIoLEAST16 __UINT_LEAST16_FMTo__ 82 #define PRIoLEAST32 __UINT_LEAST32_FMTo__ 83 #define PRIoLEAST64 __UINT_LEAST64_FMTo__ 84 #define PRIoFAST8 __UINT_FAST8_FMTo__ 85 #define PRIoFAST16 __UINT_FAST16_FMTo__ 86 #define PRIoFAST32 __UINT_FAST32_FMTo__ 87 #define PRIoFAST64 __UINT_FAST64_FMTo__ 88 #define PRIoMAX __UINTMAX_FMTo__ 89 #define PRIoPTR __UINTPTR_FMTo__ 90 91 #define PRIu8 __UINT8_FMTu__ 92 #define PRIu16 __UINT16_FMTu__ 93 #define PRIu32 __UINT32_FMTu__ 94 #define PRIu64 __UINT64_FMTu__ 95 #define PRIuLEAST8 __UINT_LEAST8_FMTu__ 96 #define PRIuLEAST16 __UINT_LEAST16_FMTu__ 97 #define PRIuLEAST32 __UINT_LEAST32_FMTu__ 98 #define PRIuLEAST64 __UINT_LEAST64_FMTu__ 99 #define PRIuFAST8 __UINT_FAST8_FMTu__ 100 #define PRIuFAST16 __UINT_FAST16_FMTu__ 101 #define PRIuFAST32 __UINT_FAST32_FMTu__ 102 #define PRIuFAST64 __UINT_FAST64_FMTu__ 103 #define PRIuMAX __UINTMAX_FMTu__ 104 #define PRIuPTR __UINTPTR_FMTu__ 105 106 #define PRIx8 __UINT8_FMTx__ 107 #define PRIx16 __UINT16_FMTx__ 108 #define PRIx32 __UINT32_FMTx__ 109 #define PRIx64 __UINT64_FMTx__ 110 #define PRIxLEAST8 __UINT_LEAST8_FMTx__ 111 #define PRIxLEAST16 __UINT_LEAST16_FMTx__ 112 #define PRIxLEAST32 __UINT_LEAST32_FMTx__ 113 #define PRIxLEAST64 __UINT_LEAST64_FMTx__ 114 #define PRIxFAST8 __UINT_FAST8_FMTx__ 115 #define PRIxFAST16 __UINT_FAST16_FMTx__ 116 #define PRIxFAST32 __UINT_FAST32_FMTx__ 117 #define PRIxFAST64 __UINT_FAST64_FMTx__ 118 #define PRIxMAX __UINTMAX_FMTx__ 119 #define PRIxPTR __UINTPTR_FMTx__ 120 121 #define PRIX8 __UINT8_FMTX__ 122 #define PRIX16 __UINT16_FMTX__ 123 #define PRIX32 __UINT32_FMTX__ 124 #define PRIX64 __UINT64_FMTX__ 125 #define PRIXLEAST8 __UINT_LEAST8_FMTX__ 126 #define PRIXLEAST16 __UINT_LEAST16_FMTX__ 127 #define PRIXLEAST32 __UINT_LEAST32_FMTX__ 128 #define PRIXLEAST64 __UINT_LEAST64_FMTX__ 129 #define PRIXFAST8 __UINT_FAST8_FMTX__ 130 #define PRIXFAST16 __UINT_FAST16_FMTX__ 131 #define PRIXFAST32 __UINT_FAST32_FMTX__ 132 #define PRIXFAST64 __UINT_FAST64_FMTX__ 133 #define PRIXMAX __UINTMAX_FMTX__ 134 #define PRIXPTR __UINTPTR_FMTX__ 135 136 /* fscanf macros for signed integers */ 137 138 #define SCNd8 __INT8_FMTd__ 139 #define SCNd16 __INT16_FMTd__ 140 #define SCNd32 __INT32_FMTd__ 141 #define SCNd64 __INT64_FMTd__ 142 #define SCNdLEAST8 __INT_LEAST8_FMTd__ 143 #define SCNdLEAST16 __INT_LEAST16_FMTd__ 144 #define SCNdLEAST32 __INT_LEAST32_FMTd__ 145 #define SCNdLEAST64 __INT_LEAST64_FMTd__ 146 #define SCNdFAST8 __INT_FAST8_FMTd__ 147 #define SCNdFAST16 __INT_FAST16_FMTd__ 148 #define SCNdFAST32 __INT_FAST32_FMTd__ 149 #define SCNdFAST64 __INT_FAST64_FMTd__ 150 #define SCNdMAX __INTMAX_FMTd__ 151 #define SCNdPTR __INTPTR_FMTd__ 152 153 #define SCNi8 __INT8_FMTi__ 154 #define SCNi16 __INT16_FMTi__ 155 #define SCNi32 __INT32_FMTi__ 156 #define SCNi64 __INT64_FMTi__ 157 #define SCNiLEAST8 __INT_LEAST8_FMTi__ 158 #define SCNiLEAST16 __INT_LEAST16_FMTi__ 159 #define SCNiLEAST32 __INT_LEAST32_FMTi__ 160 #define SCNiLEAST64 __INT_LEAST64_FMTi__ 161 #define SCNiFAST8 __INT_FAST8_FMTi__ 162 #define SCNiFAST16 __INT_FAST16_FMTi__ 163 #define SCNiFAST32 __INT_FAST32_FMTi__ 164 #define SCNiFAST64 __INT_FAST64_FMTi__ 165 #define SCNiMAX __INTMAX_FMTi__ 166 #define SCNiPTR __INTPTR_FMTi__ 167 168 /* fscanf macros for unsigned integers */ 169 170 #define SCNo8 __UINT8_FMTo__ 171 #define SCNo16 __UINT16_FMTo__ 172 #define SCNo32 __UINT32_FMTo__ 173 #define SCNo64 __UINT64_FMTo__ 174 #define SCNoLEAST8 __UINT_LEAST8_FMTo__ 175 #define SCNoLEAST16 __UINT_LEAST16_FMTo__ 176 #define SCNoLEAST32 __UINT_LEAST32_FMTo__ 177 #define SCNoLEAST64 __UINT_LEAST64_FMTo__ 178 #define SCNoFAST8 __UINT_FAST8_FMTo__ 179 #define SCNoFAST16 __UINT_FAST16_FMTo__ 180 #define SCNoFAST32 __UINT_FAST32_FMTo__ 181 #define SCNoFAST64 __UINT_FAST64_FMTo__ 182 #define SCNoMAX __UINTMAX_FMTo__ 183 #define SCNoPTR __UINTPTR_FMTo__ 184 185 #define SCNu8 __UINT8_FMTu__ 186 #define SCNu16 __UINT16_FMTu__ 187 #define SCNu32 __UINT32_FMTu__ 188 #define SCNu64 __UINT64_FMTu__ 189 #define SCNuLEAST8 __UINT_LEAST8_FMTu__ 190 #define SCNuLEAST16 __UINT_LEAST16_FMTu__ 191 #define SCNuLEAST32 __UINT_LEAST32_FMTu__ 192 #define SCNuLEAST64 __UINT_LEAST64_FMTu__ 193 #define SCNuFAST8 __UINT_FAST8_FMTu__ 194 #define SCNuFAST16 __UINT_FAST16_FMTu__ 195 #define SCNuFAST32 __UINT_FAST32_FMTu__ 196 #define SCNuFAST64 __UINT_FAST64_FMTu__ 197 #define SCNuMAX __UINTMAX_FMTu__ 198 #define SCNuPTR __UINTPTR_FMTu__ 199 200 #define SCNx8 __UINT8_FMTx__ 201 #define SCNx16 __UINT16_FMTx__ 202 #define SCNx32 __UINT32_FMTx__ 203 #define SCNx64 __UINT64_FMTx__ 204 #define SCNxLEAST8 __UINT_LEAST8_FMTx__ 205 #define SCNxLEAST16 __UINT_LEAST16_FMTx__ 206 #define SCNxLEAST32 __UINT_LEAST32_FMTx__ 207 #define SCNxLEAST64 __UINT_LEAST64_FMTx__ 208 #define SCNxFAST8 __UINT_FAST8_FMTx__ 209 #define SCNxFAST16 __UINT_FAST16_FMTx__ 210 #define SCNxFAST32 __UINT_FAST32_FMTx__ 211 #define SCNxFAST64 __UINT_FAST64_FMTx__ 212 #define SCNxMAX __UINTMAX_FMTx__ 213 #define SCNxPTR __UINTPTR_FMTx__ 214 215 #define SCNX8 __UINT8_FMTX__ 216 #define SCNX16 __UINT16_FMTX__ 217 #define SCNX32 __UINT32_FMTX__ 218 #define SCNX64 __UINT64_FMTX__ 219 #define SCNXLEAST8 __UINT_LEAST8_FMTX__ 220 #define SCNXLEAST16 __UINT_LEAST16_FMTX__ 221 #define SCNXLEAST32 __UINT_LEAST32_FMTX__ 222 #define SCNXLEAST64 __UINT_LEAST64_FMTX__ 223 #define SCNXFAST8 __UINT_FAST8_FMTX__ 224 #define SCNXFAST16 __UINT_FAST16_FMTX__ 225 #define SCNXFAST32 __UINT_FAST32_FMTX__ 226 #define SCNXFAST64 __UINT_FAST64_FMTX__ 227 #define SCNXMAX __UINTMAX_FMTX__ 228 #define SCNXPTR __UINTPTR_FMTX__ 229 230 #endif /* _SYS_COMMON_INT_FMTIO_H_ */ 231