1 #ifndef __CORETYPES_H__
2 #define __CORETYPES_H__
7 #ifdef USE_LIBRETRO_VFS
8 #include <streams/file_stream_transforms.h>
11 #define ARRAY_LENGTH(x) (sizeof(x)/sizeof(x[0]))
13 typedef uint64_t UINT64;
14 typedef uint32_t UINT32;
15 typedef uint16_t UINT16;
16 typedef uint8_t UINT8;
18 typedef int64_t INT64;
19 typedef int32_t INT32;
20 typedef int16_t INT16;
23 #define core_file FILE
25 #include <compat/fopen_utf8.h>
26 #define core_fopen(file) fopen_utf8(file, "rb")
28 #define core_fopen(file) fopen(file, "rb")
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
37 #define core_fseek fseeko
38 #define core_ftell ftello
40 #define core_fread(fc, buff, len) fread(buff, 1, len, fc)
41 #define core_fclose fclose
43 static UINT64 core_fsize(core_file *f)
46 UINT64 p = core_ftell(f);
47 core_fseek(f, 0, SEEK_END);
49 core_fseek(f, p, SEEK_SET);