mirror of https://git.wuffs.org/MWCC
169 lines
8.0 KiB
C
169 lines
8.0 KiB
C
|
#pragma once
|
||
|
#include "common.h"
|
||
|
#include "oslib.h"
|
||
|
|
||
|
/**
|
||
|
* Functions emulating classic Mac OS on other OSes
|
||
|
*/
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
|
||
|
/********************************/
|
||
|
/* ErrMgr */
|
||
|
extern char *GetSysErrText(SInt16 msgNbr, char *errMsg);
|
||
|
|
||
|
/********************************/
|
||
|
/* Files */
|
||
|
extern OSErr HCreate(SInt16 volume, SInt32 dirid, ConstStr255Param fileName, OSType creator, OSType type);
|
||
|
extern OSErr HOpen(SInt16 vRefNum, SInt32 dirID, ConstStr255Param fileName, SInt8 permission, SInt16 *refNum);
|
||
|
extern OSErr HOpenDF(SInt16 vRefNum, SInt32 dirID, ConstStr255Param fileName, SInt8 permission, SInt16 *refNum);
|
||
|
extern OSErr HDelete(SInt16 vRefNum, SInt32 dirID, ConstStr255Param fileName);
|
||
|
extern OSErr HRename(SInt16 vRefNum, SInt32 dirID, ConstStr255Param oldName, ConstStr255Param newName);
|
||
|
extern OSErr HGetFInfo(SInt16 vRefNum, SInt32 dirID, ConstStr255Param fileName, FInfo *fndrInfo);
|
||
|
extern OSErr HSetFInfo(SInt16 vRefNum, SInt32 dirID, ConstStr255Param fileName, const FInfo *fndrInfo);
|
||
|
extern OSErr FSpCreate(const FSSpec *fss, OSType creator, OSType fileType, ScriptCode scriptTag);
|
||
|
extern OSErr FSpDirCreate(const FSSpec *fss, ScriptCode scriptTag, SInt32 *createdDirID);
|
||
|
extern OSErr FSpOpenDF(const FSSpec *fss, SInt8 permission, SInt16 *refNum);
|
||
|
extern OSErr FSpDelete(const FSSpec *fss);
|
||
|
extern OSErr FSpRename(const FSSpec *oldfss, ConstStr255Param newName);
|
||
|
extern OSErr FSpGetFInfo(const FSSpec *fss, FInfo *fndrInfo);
|
||
|
extern OSErr FSpSetFInfo(const FSSpec *fss, const FInfo *fndrInfo);
|
||
|
extern OSErr HGetVol(StringPtr volName, SInt16 *vRefNum, SInt32 *dirID);
|
||
|
extern OSErr HSetVol(ConstStr63Param volName, SInt16 vRefNum, SInt32 dirID);
|
||
|
extern OSErr FlushVol(ConstStr63Param volName, SInt16 vRefNum);
|
||
|
extern OSErr FSRead(SInt16 fRefNum, SInt32 *Size, void *Buffer);
|
||
|
extern OSErr FSWrite(SInt16 fRefNum, SInt32 *Size, const void *Buffer);
|
||
|
extern OSErr FSClose(SInt16 fRefNum);
|
||
|
extern OSErr GetEOF(SInt16 fRefNum, SInt32 *curEOF);
|
||
|
extern OSErr SetEOF(SInt16 fRefNum, SInt32 newEOF);
|
||
|
extern OSErr GetFPos(SInt16 fRefNum, SInt32 *pos);
|
||
|
extern OSErr SetFPos(SInt16 fRefNum, SInt16 posMode, SInt32 posOffset);
|
||
|
extern OSErr GetVInfo(SInt16 vRefNum, StringPtr name, SInt16 *vRef, SInt32 *hDir);
|
||
|
extern OSErr PBWriteSync(ParmBlkPtr paramBlock);
|
||
|
extern OSErr PBHGetFInfoSync(HParmBlkPtr paramBlock);
|
||
|
extern OSErr PBHSetFInfoSync(HParmBlkPtr paramBlock);
|
||
|
extern OSErr PBGetCatInfoSync(CInfoPBPtr paramBlock);
|
||
|
extern OSErr ResolveAliasFile(FSSpec *fss, Boolean resolveChains, Boolean *isFolder, Boolean *wasAliased);
|
||
|
extern OSErr FSMakeFSSpec(SInt16 vRefNum, SInt32 dirID, ConstStr255Param pathName, FSSpec *fss);
|
||
|
extern OSErr Allocate(SInt16 refNum, SInt32 *byteCount);
|
||
|
|
||
|
/********************************/
|
||
|
/* LowMem */
|
||
|
extern UInt32 LMGetTicks();
|
||
|
extern UInt32 LMGetTime();
|
||
|
extern OSErr LMGetMemErr();
|
||
|
extern void LMSetMemErr(OSErr value);
|
||
|
|
||
|
/********************************/
|
||
|
/* Memory */
|
||
|
extern OSHandle *OS_PeekMacHandle(Handle h);
|
||
|
extern Handle OS_CreateMacHandle(OSHandle *h);
|
||
|
extern Handle OS_CreateMacHandleDup(OSHandle *h);
|
||
|
extern void OS_DestroyMacHandle(Handle h, OSHandle *ret);
|
||
|
|
||
|
extern OSErr MemError();
|
||
|
extern Handle NewHandle(SInt32 dataSize);
|
||
|
extern Handle NewHandleClear(UInt32 dataSize);
|
||
|
extern Handle TempNewHandle(UInt32 dataSize, OSErr *resultCode);
|
||
|
extern void DisposeHandle(Handle h);
|
||
|
extern void HLock(Handle h);
|
||
|
extern void HLockHi(Handle h);
|
||
|
extern void HUnlock(Handle h);
|
||
|
extern void HPurge(Handle theHandle);
|
||
|
extern void HNoPurge(Handle theHandle);
|
||
|
extern SInt8 HGetState(Handle theHandle);
|
||
|
extern void HSetState(Handle theHandle, SInt8 flags);
|
||
|
extern SInt32 GetHandleSize(Handle h);
|
||
|
extern void SetHandleSize(Handle h, SInt32 newSize);
|
||
|
extern OSErr PtrAndHand(const void *srcPtr, Handle destHandle, SInt32 size);
|
||
|
extern OSErr PtrToHand(const void *srcPtr, Handle *destHandle, SInt32 size);
|
||
|
extern OSErr HandToHand(Handle *destHandle);
|
||
|
extern OSErr HandAndHand(Handle src, Handle dst);
|
||
|
extern void MoveHHi(Handle theHandle);
|
||
|
extern void BlockMove(const void *srcPtr, void *destPtr, UInt32 byteCount);
|
||
|
extern void BlockMoveData(const void *srcPtr, void *destPtr, UInt32 byteCount);
|
||
|
extern Ptr NewPtr(SInt32 dataSize);
|
||
|
extern void DisposePtr(Ptr p);
|
||
|
extern Ptr NewPtrClear(SInt32 dataSize);
|
||
|
extern void DebugStr(ConstStringPtr str);
|
||
|
extern struct Zone *HandleZone();
|
||
|
extern struct Zone *ApplicationZone();
|
||
|
|
||
|
/********************************/
|
||
|
/* Resources */
|
||
|
extern Boolean OS_UsingMacResourceForkInfo();
|
||
|
extern void OS_UseMacResourceForkInfo(Boolean which);
|
||
|
extern OSErr SystemInitResources(OSSpec *spec);
|
||
|
extern void OS_AddMacResourceForkRef(int ref, const OSSpec *spec);
|
||
|
extern void OS_RemoveMacResourceForkRef(int ref);
|
||
|
extern OSSpec *OS_GetMacResourceForkFromRef(int ref);
|
||
|
extern Boolean OS_SearchMacResourceForkList(const OSSpec *rspec, int *ref);
|
||
|
extern int OS_SetMacResourceForkCreatorAndType(int ref, OSType creator, OSType type);
|
||
|
extern int OS_GetMacResourceForkCreatorAndType(int ref, OSType *creator, OSType *type);
|
||
|
extern void OS_CleanupMacResourceForkDir(const OSPathSpec *dir);
|
||
|
extern OSErr OS_MacDumpResourceFork(SInt16 ref, Boolean dumpContents);
|
||
|
extern OSErr FSpOpenRF(const FSSpec *fss, SInt8 permission, SInt16 *refNum);
|
||
|
extern OSErr HOpenRF(SInt16 vRefNum, SInt32 dirID, ConstStringPtr fileName, SInt8 permission, SInt16 *refNum);
|
||
|
extern OSErr InitResources();
|
||
|
extern OSErr ResError();
|
||
|
extern void FSpCreateResFile(const FSSpec *fss, OSType creator, OSType fileType, ScriptCode scriptTag);
|
||
|
extern void HCreateResFile(SInt16 vRefNum, SInt32 dirID, ConstStringPtr fileName);
|
||
|
extern OSErr FSpOpenResFile(const FSSpec *fss, SInt8 permission);
|
||
|
extern SInt16 HOpenResFile(SInt16 vRefNum, SInt32 dirID, ConstStringPtr fileName, SInt8 permission);
|
||
|
extern SInt16 CurResFile();
|
||
|
extern void UseResFile(SInt16 refNum);
|
||
|
extern SInt16 HomeResFile(Handle theResource);
|
||
|
extern Handle GetResource(OSType theType, SInt16 theID);
|
||
|
extern Handle Get1Resource(OSType theType, SInt16 theID);
|
||
|
extern Handle GetNamedResource(OSType theType, ConstStringPtr theName);
|
||
|
extern Handle Get1NamedResource(OSType theType, ConstStringPtr theName);
|
||
|
extern void SetResLoad(Boolean load);
|
||
|
extern void MacEmul_LoadResource(Handle theResource);
|
||
|
extern void GetResInfo(Handle theResource, SInt16 *theID, OSType *theType, StringPtr name);
|
||
|
extern void SetResInfo(Handle theResource, SInt16 theID, ConstStringPtr name);
|
||
|
extern SInt16 GetResAttrs(Handle theResource);
|
||
|
extern void SetResAttrs(Handle theResource, SInt16 attrs);
|
||
|
extern void ChangedResource(Handle theResource);
|
||
|
extern void AddResource(Handle theData, OSType theType, SInt16 theID, ConstStringPtr name);
|
||
|
extern void UpdateResFile(SInt16 refnum);
|
||
|
extern void WriteResource(Handle theResource);
|
||
|
extern void SetResPurge(Boolean install);
|
||
|
extern SInt16 CountResources(OSType theType);
|
||
|
extern SInt16 Count1Resources(OSType theType);
|
||
|
extern Handle GetIndResource(OSType theType, SInt16 index);
|
||
|
extern Handle Get1IndResource(OSType theType, SInt16 index);
|
||
|
extern SInt16 Count1Types();
|
||
|
extern void Get1IndType(OSType *theType, SInt16 index);
|
||
|
extern void ReleaseResource();
|
||
|
extern void DetachResource(Handle theResource);
|
||
|
extern void RemoveResource(Handle theResource);
|
||
|
extern void CloseResFile(SInt16 refNum);
|
||
|
extern SInt16 GetResFileAttrs(SInt16);
|
||
|
extern Boolean LMGetResLoad();
|
||
|
|
||
|
/********************************/
|
||
|
/* ResourceStrings */
|
||
|
extern void Res_Initialize();
|
||
|
extern int Res_AddResource(const char *name, SInt16 rsrcid, const char **strings);
|
||
|
extern const char *Res_GetResource(SInt16 rsrcid, SInt16 index);
|
||
|
extern void Res_Cleanup();
|
||
|
|
||
|
/********************************/
|
||
|
/* TextUtils */
|
||
|
extern StringPtr c2pstr(char *s);
|
||
|
extern char *p2cstr(StringPtr s);
|
||
|
extern SInt16 CharacterByteType(Ptr textBuf, SInt16 textOffset, ScriptCode script);
|
||
|
extern SInt16 CharByte();
|
||
|
extern void GetDateTime(UInt32 *secs);
|
||
|
extern Boolean EqualString(ConstStr255Param strA, ConstStr255Param strB, Boolean caseSens, Boolean diacSens);
|
||
|
extern void GetIndString(Str255 theString, SInt16 strListID, SInt16 index);
|
||
|
extern char *getindstring(char *theString, SInt16 strListID, SInt16 index);
|
||
|
extern void NumToString(SInt32 theNum, Str255 theString);
|
||
|
extern void StringToNum(ConstStr255Param theString, SInt32 *theNum);
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
}
|
||
|
#endif
|