00001
00146
#ifndef _INCLUDE_PHYSFS_H_
00147
#define _INCLUDE_PHYSFS_H_
00148
00149
#ifdef __cplusplus
00150
extern "C" {
00151
#endif
00152
00153
#ifndef DOXYGEN_SHOULD_IGNORE_THIS
00154
#if (defined _MSC_VER)
00155
#define __EXPORT__ __declspec(dllexport)
00156
#else
00157
#define __EXPORT__
00158
#endif
00159
#endif
00160
00165 typedef unsigned char PHYSFS_uint8;
00166
00171 typedef signed char PHYSFS_sint8;
00172
00177 typedef unsigned short PHYSFS_uint16;
00178
00183 typedef signed short PHYSFS_sint16;
00184
00189 typedef unsigned int PHYSFS_uint32;
00190
00195 typedef signed int PHYSFS_sint32;
00196
00212
#if (defined PHYSFS_NO_64BIT_SUPPORT)
00213
typedef PHYSFS_uint32 PHYSFS_uint64;
00214
typedef PHYSFS_sint32 PHYSFS_sint64;
00215
#elif (defined _MSC_VER)
00216
typedef signed __int64
PHYSFS_sint64;
00217
typedef unsigned __int64
PHYSFS_uint64;
00218
#else
00219 typedef unsigned long long PHYSFS_uint64;
00220 typedef signed long long PHYSFS_sint64;
00221
#endif
00222
00223
00224
#ifndef DOXYGEN_SHOULD_IGNORE_THIS
00225
00226
#define PHYSFS_COMPILE_TIME_ASSERT(name, x) \
00227
typedef int PHYSFS_dummy_ ## name[(x) * 2 - 1]
00228
00229 PHYSFS_COMPILE_TIME_ASSERT(uint8,
sizeof(PHYSFS_uint8) == 1);
00230 PHYSFS_COMPILE_TIME_ASSERT(sint8,
sizeof(PHYSFS_sint8) == 1);
00231 PHYSFS_COMPILE_TIME_ASSERT(uint16,
sizeof(PHYSFS_uint16) == 2);
00232 PHYSFS_COMPILE_TIME_ASSERT(sint16,
sizeof(PHYSFS_sint16) == 2);
00233 PHYSFS_COMPILE_TIME_ASSERT(uint32,
sizeof(PHYSFS_uint32) == 4);
00234 PHYSFS_COMPILE_TIME_ASSERT(sint32,
sizeof(PHYSFS_sint32) == 4);
00235
00236
#ifndef PHYSFS_NO_64BIT_SUPPORT
00237
PHYSFS_COMPILE_TIME_ASSERT(uint64,
sizeof(PHYSFS_uint64) == 8);
00238 PHYSFS_COMPILE_TIME_ASSERT(sint64,
sizeof(PHYSFS_sint64) == 8);
00239
#endif
00240
00241
#undef PHYSFS_COMPILE_TIME_ASSERT
00242
00243
#endif
00244
00245
00269 typedef struct
00270
{
00271 void *opaque;
00272 }
PHYSFS_file;
00273
00274
00275
00291 typedef struct
00292
{
00293 const char *extension;
00294 const char *description;
00295 const char *author;
00296 const char *url;
00297 }
PHYSFS_ArchiveInfo;
00298
00299
00313 typedef struct
00314
{
00315 PHYSFS_uint8 major;
00316 PHYSFS_uint8 minor;
00317 PHYSFS_uint8 patch;
00318 }
PHYSFS_Version;
00319
00320
#ifndef DOXYGEN_SHOULD_IGNORE_THIS
00321
#define PHYSFS_VER_MAJOR 1
00322
#define PHYSFS_VER_MINOR 0
00323
#define PHYSFS_VER_PATCH 0
00324
#endif
00325
00326
00327
00328
00345 #define PHYSFS_VERSION(x) \
00346
{ \
00347
(x)->major = PHYSFS_VER_MAJOR; \
00348
(x)->minor = PHYSFS_VER_MINOR; \
00349
(x)->patch = PHYSFS_VER_PATCH; \
00350
}
00351
00352
00379 __EXPORT__
void PHYSFS_getLinkedVersion(
PHYSFS_Version *ver);
00380
00381
00401 __EXPORT__
int PHYSFS_init(
const char *argv0);
00402
00403
00428 __EXPORT__
int PHYSFS_deinit(
void);
00429
00430
00459 __EXPORT__
const PHYSFS_ArchiveInfo **
PHYSFS_supportedArchiveTypes(
void);
00460
00461
00475 __EXPORT__
void PHYSFS_freeList(
void *listVar);
00476
00477
00492 __EXPORT__
const char *
PHYSFS_getLastError(
void);
00493
00494
00508 __EXPORT__
const char *
PHYSFS_getDirSeparator(
void);
00509
00510
00539 __EXPORT__
void PHYSFS_permitSymbolicLinks(
int allow);
00540
00541
00574 __EXPORT__
char **
PHYSFS_getCdRomDirs(
void);
00575
00576
00593 __EXPORT__
const char *
PHYSFS_getBaseDir(
void);
00594
00595
00616 __EXPORT__
const char *
PHYSFS_getUserDir(
void);
00617
00618
00630 __EXPORT__
const char *
PHYSFS_getWriteDir(
void);
00631
00632
00654 __EXPORT__
int PHYSFS_setWriteDir(
const char *newDir);
00655
00656
00674 __EXPORT__
int PHYSFS_addToSearchPath(
const char *newDir,
int appendToPath);
00675
00676
00694 __EXPORT__
int PHYSFS_removeFromSearchPath(
const char *oldDir);
00695
00696
00722 __EXPORT__
char **
PHYSFS_getSearchPath(
void);
00723
00724
00782 __EXPORT__
int PHYSFS_setSaneConfig(
const char *organization,
00783
const char *appName,
00784
const char *archiveExt,
00785
int includeCdRoms,
00786
int archivesFirst);
00787
00788
00789
00790
00812 __EXPORT__
int PHYSFS_mkdir(
const char *dirName);
00813
00814
00845 __EXPORT__
int PHYSFS_delete(
const char *filename);
00846
00847
00869 __EXPORT__
const char *
PHYSFS_getRealDir(
const char *filename);
00870
00871
00908 __EXPORT__
char **
PHYSFS_enumerateFiles(
const char *dir);
00909
00910
00928 __EXPORT__
int PHYSFS_exists(
const char *fname);
00929
00930
00948 __EXPORT__
int PHYSFS_isDirectory(
const char *fname);
00949
00950
00968 __EXPORT__
int PHYSFS_isSymbolicLink(
const char *fname);
00969
00970
00984 __EXPORT__
PHYSFS_sint64 PHYSFS_getLastModTime(
const char *filename);
00985
00986
00987
00988
01011 __EXPORT__
PHYSFS_file *
PHYSFS_openWrite(
const char *filename);
01012
01013
01037 __EXPORT__
PHYSFS_file *
PHYSFS_openAppend(
const char *filename);
01038
01039
01062 __EXPORT__
PHYSFS_file *
PHYSFS_openRead(
const char *filename);
01063
01064
01083 __EXPORT__
int PHYSFS_close(
PHYSFS_file *handle);
01084
01085
01102 __EXPORT__
PHYSFS_sint64 PHYSFS_read(
PHYSFS_file *handle,
01103
void *buffer,
01104 PHYSFS_uint32 objSize,
01105 PHYSFS_uint32 objCount);
01106
01120 __EXPORT__
PHYSFS_sint64 PHYSFS_write(
PHYSFS_file *handle,
01121
const void *buffer,
01122 PHYSFS_uint32 objSize,
01123 PHYSFS_uint32 objCount);
01124
01125
01126
01127
01140 __EXPORT__
int PHYSFS_eof(
PHYSFS_file *handle);
01141
01142
01153 __EXPORT__
PHYSFS_sint64 PHYSFS_tell(
PHYSFS_file *handle);
01154
01155
01170 __EXPORT__
int PHYSFS_seek(
PHYSFS_file *handle, PHYSFS_uint64 pos);
01171
01172
01189 __EXPORT__
PHYSFS_sint64 PHYSFS_fileLength(
PHYSFS_file *handle);
01190
01191
01192
01193
01234 __EXPORT__
int PHYSFS_setBuffer(
PHYSFS_file *handle, PHYSFS_uint64 bufsize);
01235
01236
01253 __EXPORT__
int PHYSFS_flush(
PHYSFS_file *handle);
01254
01255
01256
01257
01268 __EXPORT__
PHYSFS_sint16 PHYSFS_swapSLE16(PHYSFS_sint16 val);
01269
01270
01281 __EXPORT__
PHYSFS_uint16 PHYSFS_swapULE16(PHYSFS_uint16 val);
01282
01293 __EXPORT__
PHYSFS_sint32 PHYSFS_swapSLE32(PHYSFS_sint32 val);
01294
01295
01306 __EXPORT__
PHYSFS_uint32 PHYSFS_swapULE32(PHYSFS_uint32 val);
01307
01321 __EXPORT__
PHYSFS_sint64 PHYSFS_swapSLE64(PHYSFS_sint64 val);
01322
01323
01337 __EXPORT__
PHYSFS_uint64 PHYSFS_swapULE64(PHYSFS_uint64 val);
01338
01339
01350 __EXPORT__
PHYSFS_sint16 PHYSFS_swapSBE16(PHYSFS_sint16 val);
01351
01352
01363 __EXPORT__
PHYSFS_uint16 PHYSFS_swapUBE16(PHYSFS_uint16 val);
01364
01375 __EXPORT__
PHYSFS_sint32 PHYSFS_swapSBE32(PHYSFS_sint32 val);
01376
01377
01388 __EXPORT__
PHYSFS_uint32 PHYSFS_swapUBE32(PHYSFS_uint32 val);
01389
01390
01404 __EXPORT__
PHYSFS_sint64 PHYSFS_swapSBE64(PHYSFS_sint64 val);
01405
01406
01420 __EXPORT__
PHYSFS_uint64 PHYSFS_swapUBE64(PHYSFS_uint64 val);
01421
01422
01436 __EXPORT__
int PHYSFS_readSLE16(
PHYSFS_file *file, PHYSFS_sint16 *val);
01437
01438
01453 __EXPORT__
int PHYSFS_readULE16(
PHYSFS_file *file, PHYSFS_uint16 *val);
01454
01455
01469 __EXPORT__
int PHYSFS_readSBE16(
PHYSFS_file *file, PHYSFS_sint16 *val);
01470
01471
01486 __EXPORT__
int PHYSFS_readUBE16(
PHYSFS_file *file, PHYSFS_uint16 *val);
01487
01488
01502 __EXPORT__
int PHYSFS_readSLE32(
PHYSFS_file *file, PHYSFS_sint32 *val);
01503
01504
01519 __EXPORT__
int PHYSFS_readULE32(
PHYSFS_file *file, PHYSFS_uint32 *val);
01520
01521
01535 __EXPORT__
int PHYSFS_readSBE32(
PHYSFS_file *file, PHYSFS_sint32 *val);
01536
01537
01552 __EXPORT__
int PHYSFS_readUBE32(
PHYSFS_file *file, PHYSFS_uint32 *val);
01553
01554
01571 __EXPORT__
int PHYSFS_readSLE64(
PHYSFS_file *file, PHYSFS_sint64 *val);
01572
01573
01590 __EXPORT__
int PHYSFS_readULE64(
PHYSFS_file *file, PHYSFS_uint64 *val);
01591
01592
01609 __EXPORT__
int PHYSFS_readSBE64(
PHYSFS_file *file, PHYSFS_sint64 *val);
01610
01611
01628 __EXPORT__
int PHYSFS_readUBE64(
PHYSFS_file *file, PHYSFS_uint64 *val);
01629
01630
01643 __EXPORT__
int PHYSFS_writeSLE16(
PHYSFS_file *file, PHYSFS_sint16 val);
01644
01645
01658 __EXPORT__
int PHYSFS_writeULE16(
PHYSFS_file *file, PHYSFS_uint16 val);
01659
01660
01673 __EXPORT__
int PHYSFS_writeSBE16(
PHYSFS_file *file, PHYSFS_sint16 val);
01674
01675
01688 __EXPORT__
int PHYSFS_writeUBE16(
PHYSFS_file *file, PHYSFS_uint16 val);
01689
01690
01703 __EXPORT__
int PHYSFS_writeSLE32(
PHYSFS_file *file, PHYSFS_sint32 val);
01704
01705
01718 __EXPORT__
int PHYSFS_writeULE32(
PHYSFS_file *file, PHYSFS_uint32 val);
01719
01720
01733 __EXPORT__
int PHYSFS_writeSBE32(
PHYSFS_file *file, PHYSFS_sint32 val);
01734
01735
01748 __EXPORT__
int PHYSFS_writeUBE32(
PHYSFS_file *file, PHYSFS_uint32 val);
01749
01750
01766 __EXPORT__
int PHYSFS_writeSLE64(
PHYSFS_file *file, PHYSFS_sint64 val);
01767
01768
01784 __EXPORT__
int PHYSFS_writeULE64(
PHYSFS_file *file, PHYSFS_uint64 val);
01785
01786
01802 __EXPORT__
int PHYSFS_writeSBE64(
PHYSFS_file *file, PHYSFS_sint64 val);
01803
01804
01820 __EXPORT__
int PHYSFS_writeUBE64(
PHYSFS_file *file, PHYSFS_uint64 val);
01821
01822
01823
#ifdef __cplusplus
01824
}
01825
#endif
01826
01827
#endif
01828
01829
01830