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