1/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
2 * Mupen64plus-core - osal/files.h *
3 * Mupen64Plus homepage: https://mupen64plus.org/ *
4 * Copyright (C) 2009 Richard Goedeken *
5 * *
6 * This program is free software; you can redistribute it and/or modify *
7 * it under the terms of the GNU General Public License as published by *
8 * the Free Software Foundation; either version 2 of the License, or *
9 * (at your option) any later version. *
10 * *
11 * This program is distributed in the hope that it will be useful, *
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
14 * GNU General Public License for more details. *
15 * *
16 * You should have received a copy of the GNU General Public License *
17 * along with this program; if not, write to the *
18 * Free Software Foundation, Inc., *
19 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
20 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
21
22/* This file contains the declarations for OS-dependent file handling
23 * functions
24 */
25
26#if !defined (OSAL_FILES_H)
27#define OSAL_FILES_H
28
29/* some file-related preprocessor definitions */
30#if defined(WIN32) && !defined(__MINGW32__)
31 #include <io.h> // For _unlink()
32
33 #define unlink _unlink
34
35 #define OSAL_DIR_SEPARATORS "\\/"
36 #define PATH_MAX _MAX_PATH
37#else /* Not WIN32 */
38 #include <limits.h> // for PATH_MAX
39 #include <unistd.h> // for unlink()
40
41 #define OSAL_DIR_SEPARATORS "/"
42
43 /* PATH_MAX only may be defined by limits.h */
44 #ifndef PATH_MAX
45 #define PATH_MAX 4096
46 #endif
47#endif
48
49/* Create a directory path recursively.
50 * Returns zero on success, nonzero on failure.
51 * Note that, unlike mkdir(), this function succeeds if the path already exists.
52 */
53extern int osal_mkdirp(const char *dirpath, int mode);
54
55extern const char * osal_get_shared_filepath(const char *filename, const char *firstsearch, const char *secondsearch);
56extern const char * osal_get_user_configpath(void);
57extern const char * osal_get_user_datapath(void);
58extern const char * osal_get_user_cachepath(void);
59
60#endif /* OSAL_FILES_H */
61
62