[runtime] Coverage profiler fixes (#5698)
[mono.git] / mono / utils / mono-io-portability.h
1 /**
2  * \file
3  */
4
5 #ifndef __MONO_IO_PORTABILITY_H
6 #define __MONO_IO_PORTABILITY_H
7
8 #include <glib.h>
9 #include <mono/utils/mono-compiler.h>
10 #include "config.h"
11
12 enum {
13         PORTABILITY_NONE        = 0x00,
14         PORTABILITY_UNKNOWN     = 0x01,
15         PORTABILITY_DRIVE       = 0x02,
16         PORTABILITY_CASE        = 0x04
17 };
18
19 #ifdef DISABLE_PORTABILITY
20
21 #define mono_portability_helpers_init()
22 #define mono_portability_find_file(pathname,last_exists) NULL
23
24 #define IS_PORTABILITY_NONE FALSE
25 #define IS_PORTABILITY_UNKNOWN FALSE
26 #define IS_PORTABILITY_DRIVE FALSE
27 #define IS_PORTABILITY_CASE FALSE
28 #define IS_PORTABILITY_SET FALSE
29
30 #else
31
32 void mono_portability_helpers_init (void);
33 gchar *mono_portability_find_file (const gchar *pathname, gboolean last_exists);
34
35 extern int mono_io_portability_helpers;
36
37 #define IS_PORTABILITY_NONE (mono_io_portability_helpers & PORTABILITY_NONE)
38 #define IS_PORTABILITY_UNKNOWN (mono_io_portability_helpers & PORTABILITY_UNKNOWN)
39 #define IS_PORTABILITY_DRIVE (mono_io_portability_helpers & PORTABILITY_DRIVE)
40 #define IS_PORTABILITY_CASE (mono_io_portability_helpers & PORTABILITY_CASE)
41 #define IS_PORTABILITY_SET (mono_io_portability_helpers > 0)
42
43 #endif
44
45 #endif