]> git.saurik.com Git - apple/icu.git/blame - icuSources/common/umapfile.h
ICU-57163.0.1.tar.gz
[apple/icu.git] / icuSources / common / umapfile.h
CommitLineData
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
30U_CFUNC UBool uprv_mapFile(UDataMemory *pdm, const char *path);
31U_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