1 // © 2016 and later: Unicode, Inc. and others. 2 // License & terms of use: http://www.unicode.org/copyright.html 3 /****************************************************************************** 4 * 5 * Copyright (C) 2001, International Business Machines 6 * Corporation and others. All Rights Reserved. 7 * 8 ******************************************************************************* 9 * file name: stubdata.c 10 * 11 * Define initialized data that will build into a valid, but empty 12 * ICU data library. Used to bootstrap the ICU build, which has these 13 * dependencies: 14 * ICU Common library depends on ICU data 15 * ICU data requires data building tools. 16 * ICU data building tools require the ICU common library. 17 * 18 * The stub data library (for which this file is the source) is sufficient 19 * for running the data building tools. 20 * 21 */ 22 #include "unicode/utypes.h" 23 #include "unicode/udata.h" 24 #include "unicode/uversion.h" 25 26 27 typedef struct { 28 uint16_t headerSize; 29 uint8_t magic1, magic2; 30 UDataInfo info; 31 char padding[8]; 32 uint32_t count, reserved; 33 /* 34 const struct { 35 const char *const name; 36 const void *const data; 37 } toc[1]; 38 */ 39 int fakeNameAndData[4]; /* TODO: Change this header type from */ 40 /* pointerTOC to OffsetTOC. */ 41 } ICU_Data_Header; 42 43 extern "C" U_EXPORT const ICU_Data_Header U_ICUDATA_ENTRY_POINT = { 44 32, /* headerSize */ 45 0xda, /* magic1, (see struct MappedData in udata.c) */ 46 0x27, /* magic2 */ 47 { /*UDataInfo */ 48 sizeof(UDataInfo), /* size */ 49 0, /* reserved */ 50 51 #if U_IS_BIG_ENDIAN 52 1, 53 #else 54 0, 55 #endif 56 57 U_CHARSET_FAMILY, 58 sizeof(UChar), 59 0, /* reserved */ 60 { /* data format identifier */ 61 0x54, 0x6f, 0x43, 0x50}, /* "ToCP" */ 62 {1, 0, 0, 0}, /* format version major, minor, milli, micro */ 63 {0, 0, 0, 0} /* dataVersion */ 64 }, 65 {0,0,0,0,0,0,0,0}, /* Padding[8] */ 66 0, /* count */ 67 0, /* Reserved */ 68 { /* TOC structure */ 69 /* { */ 70 0 , 0 , 0, 0 /* name and data entries. Count says there are none, */ 71 /* but put one in just in case. */ 72 /* } */ 73 } 74 }; 75 76 77