]>
Commit | Line | Data |
---|---|---|
b75a7d8f A |
1 | /* |
2 | ****************************************************************************** | |
3 | * | |
4388f060 | 4 | * Copyright (C) 1999-2011, International Business Machines |
b75a7d8f A |
5 | * Corporation and others. All Rights Reserved. |
6 | * | |
7 | ******************************************************************************/ | |
8 | ||
b75a7d8f A |
9 | /*---------------------------------------------------------------------------------- |
10 | * | |
11 | * Memory mapped file wrappers for use by the ICU Data Implementation | |
12 | * | |
13 | * Porting note: The implementation of these functions is very platform specific. | |
14 | * Not all platforms can do real memory mapping. Those that can't | |
15 | * still must implement these functions, getting the data into memory using | |
16 | * whatever means are available. | |
17 | * | |
18 | * These functions are part of the ICU internal implementation, and | |
19 | * are not inteded to be used directly by applications. | |
20 | * | |
21 | *----------------------------------------------------------------------------------*/ | |
22 | ||
23 | #ifndef __UMAPFILE_H__ | |
24 | #define __UMAPFILE_H__ | |
25 | ||
729e4ab9 | 26 | #include "unicode/putil.h" |
b75a7d8f | 27 | #include "unicode/udata.h" |
4388f060 | 28 | #include "putilimp.h" |
b75a7d8f | 29 | |
729e4ab9 A |
30 | U_CFUNC UBool uprv_mapFile(UDataMemory *pdm, const char *path); |
31 | U_CFUNC void uprv_unmapFile(UDataMemory *pData); | |
32 | ||
33 | /* MAP_NONE: no memory mapping, no file access at all */ | |
34 | #define MAP_NONE 0 | |
35 | #define MAP_WIN32 1 | |
36 | #define MAP_POSIX 2 | |
37 | #define MAP_STDIO 3 | |
38 | #define MAP_390DLL 4 | |
39 | ||
40 | #if UCONFIG_NO_FILE_IO | |
41 | # define MAP_IMPLEMENTATION MAP_NONE | |
4388f060 | 42 | #elif U_PLATFORM_USES_ONLY_WIN32_API |
729e4ab9 | 43 | # define MAP_IMPLEMENTATION MAP_WIN32 |
4388f060 A |
44 | #elif U_HAVE_MMAP || U_PLATFORM == U_PF_OS390 |
45 | # if U_PLATFORM == U_PF_OS390 && defined (OS390_STUBDATA) | |
729e4ab9 A |
46 | /* No memory mapping for 390 batch mode. Fake it using dll loading. */ |
47 | # define MAP_IMPLEMENTATION MAP_390DLL | |
48 | # else | |
49 | # define MAP_IMPLEMENTATION MAP_POSIX | |
50 | # endif | |
51 | #else /* unknown platform, no memory map implementation: use stdio.h and uprv_malloc() instead */ | |
52 | # define MAP_IMPLEMENTATION MAP_STDIO | |
53 | #endif | |
b75a7d8f A |
54 | |
55 | #endif |