2ff0b512 |
1 | #ifndef __CORETYPES_H__ |
2 | #define __CORETYPES_H__ |
3 | |
4 | #include <stdint.h> |
5 | #include <stdio.h> |
6 | |
7 | #ifdef USE_LIBRETRO_VFS |
8 | #include <streams/file_stream_transforms.h> |
9 | #endif |
10 | |
11 | #define ARRAY_LENGTH(x) (sizeof(x)/sizeof(x[0])) |
12 | |
13 | typedef uint64_t UINT64; |
14 | typedef uint32_t UINT32; |
15 | typedef uint16_t UINT16; |
16 | typedef uint8_t UINT8; |
17 | |
18 | typedef int64_t INT64; |
19 | typedef int32_t INT32; |
20 | typedef int16_t INT16; |
21 | typedef int8_t INT8; |
22 | |
23 | #define core_file FILE |
a9821f07 |
24 | #ifdef HAVE_LIBRETRO |
25 | #include <compat/fopen_utf8.h> |
26 | #define core_fopen(file) fopen_utf8(file, "rb") |
27 | #else |
2ff0b512 |
28 | #define core_fopen(file) fopen(file, "rb") |
a9821f07 |
29 | #endif |
2ff0b512 |
30 | #if defined(__WIN32__) || defined(_WIN32) || defined(WIN32) || defined(__WIN64__) |
31 | #define core_fseek _fseeki64 |
32 | #define core_ftell _ftelli64 |
33 | #elif defined(_LARGEFILE_SOURCE) && defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64 |
34 | #define core_fseek fseeko64 |
35 | #define core_ftell ftello64 |
36 | #else |
37 | #define core_fseek fseeko |
38 | #define core_ftell ftello |
39 | #endif |
40 | #define core_fread(fc, buff, len) fread(buff, 1, len, fc) |
41 | #define core_fclose fclose |
42 | |
43 | static UINT64 core_fsize(core_file *f) |
44 | { |
45 | UINT64 rv; |
46 | UINT64 p = core_ftell(f); |
47 | core_fseek(f, 0, SEEK_END); |
48 | rv = core_ftell(f); |
49 | core_fseek(f, p, SEEK_SET); |
50 | return rv; |
51 | } |
52 | |
53 | #endif |