libsf3
Loading...
Searching...
No Matches
sf3_lib.h
Go to the documentation of this file.
1#ifndef __SF3_LIB_H__
2#define __SF3_LIB_H__
3#ifdef __cplusplus
4extern "C" {
5#endif
6
7#if defined(SF3_STATIC)
8# define SF3_EXPORT static
9# define SF3_INLINE static inline
10#elif defined(_MSC_VER)
11# if defined(SF3_BUILD)
12# define SF3_EXPORT __declspec(dllexport)
13# define SF3_INLINE __declspec(dllexport)
14# else
15# define SF3_EXPORT __declspec(dllimport)
16# define SF3_INLINE __declspec(dllimport)
17# endif
18#elif defined(__GNUC__)
19# if defined(SF3_BUILD)
20# define SF3_EXPORT __attribute__((visibility("default")))
21# define SF3_INLINE __attribute__((visibility("default")))
22# else
23# define SF3_EXPORT
24# define SF3_INLINE static inline
25# endif
26#else
27# define SF3_EXPORT
28#endif
29#include "sf3.h"
30
40
58
60 typedef void *sf3_handle;
61
65
67 SF3_EXPORT const char *sf3_strerror(enum sf3_error error);
68
75 SF3_EXPORT int sf3_tell(const char *path);
76
86 SF3_EXPORT int sf3_open(const char *path, enum sf3_open_mode mode, sf3_handle *handle);
87
93
101 SF3_EXPORT void *sf3_data(sf3_handle handle, size_t *size);
102
111 SF3_EXPORT int sf3_create(void *addr, size_t size, sf3_handle *handle);
112
126 SF3_EXPORT int sf3_write(const char *path, sf3_handle handle);
127
128#ifdef SF3_NO_CUSTOM_ALLOCATOR
129#define sf3_calloc calloc
130#define sf3_free free
131#else
140 SF3_EXPORT extern void *(*sf3_calloc)(size_t num, size_t size);
141
148 SF3_EXPORT extern void (*sf3_free)(void *ptr);
149#endif
150
151#ifdef __cplusplus
152}
153#endif
154#endif
sf3_error
Definition sf3_lib.h:41
@ SF3_OPEN_FAILED
Definition sf3_lib.h:46
@ SF3_WRITE_FAILED
The file write operation failed.
Definition sf3_lib.h:54
@ SF3_OUT_OF_MEMORY
A memory allocation failed.
Definition sf3_lib.h:48
@ SF3_OK
No error has occurred.
Definition sf3_lib.h:43
@ SF3_INVALID_FILE
The file is not a valid SF3 file.
Definition sf3_lib.h:56
@ SF3_MMAP_FAILED
The file failed to map into memory.
Definition sf3_lib.h:50
@ SF3_INVALID_HANDLE
An invalid sf3_handle was passed.
Definition sf3_lib.h:52
#define SF3_EXPORT
Definition sf3_lib.h:27
SF3_EXPORT const char * sf3_strerror(enum sf3_error error)
Return a string representation of the error code.
SF3_EXPORT void sf3_close(sf3_handle handle)
SF3_EXPORT int sf3_open(const char *path, enum sf3_open_mode mode, sf3_handle *handle)
SF3_EXPORT void * sf3_data(sf3_handle handle, size_t *size)
SF3_EXPORT int sf3_tell(const char *path)
SF3_EXPORT void(* sf3_free)(void *ptr)
void * sf3_handle
Opaque representation of a file handle.
Definition sf3_lib.h:60
SF3_EXPORT int sf3_create(void *addr, size_t size, sf3_handle *handle)
sf3_open_mode
Definition sf3_lib.h:31
@ SF3_OPEN_READ_ONLY
Open the file for reading only.
Definition sf3_lib.h:33
@ SF3_OPEN_READ_WRITE
Definition sf3_lib.h:38
SF3_EXPORT int sf3_write(const char *path, sf3_handle handle)