home *** CD-ROM | disk | FTP | other *** search
- /*
- * PATCHES.H vi:ts=4
- *
- * Copyright (c) Eddy Carroll, September 1994.
- *
- * Contains definitions used by the patches module
- */
-
- #define reg_d0 register __d0
- #define reg_d1 register __d1
- #define reg_d2 register __d2
- #define reg_d3 register __d3
- #define reg_d4 register __d4
- #define reg_d5 register __d5
- #define reg_d6 register __d6
- #define reg_d7 register __d7
- #define reg_a0 register __a0
- #define reg_a1 register __a1
- #define reg_a2 register __a2
- #define reg_a3 register __a3
- #define reg_a4 register __a4
- #define reg_a5 register __a5
- #define reg_a6 register __a6
-
- typedef enum {
- DOS_LIB,
- EXEC_LIB,
- INTUITION_LIB,
- GRAPHICS_LIB,
- ICON_LIB,
- NUM_LIBS
- } LibNumbers;
-
- /*
- * Now type definitions for all the functions to be replaced, so that we
- * can easily call the original function from our replacement function.
- */
- #define DFT(f) typedef __asm ULONG (*FP_##f) /* Define Function Type */
- #define LBASE reg_a6 void *
- typedef struct TagItem *TAGPTR;
-
- /*
- * Dos prototypes
- */
- DFT(AddDosEntry) (reg_d1 struct DosList *, LBASE);
- DFT(CurrentDir) (reg_d1 BPTR, LBASE);
- DFT(DeleteFile) (reg_d1 char *, LBASE);
- DFT(Execute) (reg_d1 char *, reg_d2 BPTR, reg_d3 BPTR, LBASE);
- DFT(GetVar) (reg_d1 char *, reg_d2 char *, reg_d3 ULONG, reg_d4 ULONG,
- LBASE);
- DFT(FindVar) (reg_d1 char *, reg_d2 ULONG, LBASE);
- DFT(LoadSeg) (reg_d1 char *, LBASE);
- DFT(NewLoadSeg) (reg_d1 char *, reg_d2 TAGPTR, LBASE);
- DFT(Lock) (reg_d1 char *, reg_d2 LONG, LBASE);
- DFT(Open) (reg_d1 char *, reg_d2 ULONG, LBASE);
- DFT(CreateDir) (reg_d1 char *, LBASE);
- DFT(MakeLink) (reg_d1 char *, reg_d2 LONG, reg_d3 LONG, LBASE);
- DFT(Rename) (reg_d1 char *, reg_d2 char *, LBASE);
- DFT(RunCommand) (reg_d1 BPTR, reg_d2 ULONG, reg_d3 char *,
- reg_d4 ULONG, LBASE);
- DFT(SetVar) (reg_d1 char *, reg_d2 char *, reg_d3 ULONG, reg_d4 ULONG,
- LBASE);
- DFT(DeleteVar) (reg_d1 char *, reg_d2 ULONG, LBASE);
- DFT(SystemTagList) (reg_d1 char *, reg_d2 TAGPTR, LBASE);
-
- /*
- * Exec prototypes
- */
- DFT(FindPort) (reg_a1 char *, LBASE);
- DFT(FindResident) (reg_a1 char *, LBASE);
- DFT(FindResource) (reg_a1 char *, LBASE);
- DFT(FindSemaphore) (reg_a1 char *, LBASE);
- DFT(FindTask) (reg_a1 char *, LBASE);
- DFT(OpenDevice) (reg_a0 char *, reg_d0 long, reg_a1 struct IORequest *,
- reg_d1 long, LBASE);
- DFT(OpenLibrary) (reg_a1 char *, reg_d0 long, LBASE);
- DFT(OpenResource) (reg_a1 char *, LBASE);
- DFT(GetMsg) (reg_a0 struct MsgPort *, LBASE);
- DFT(PutMsg) (reg_a0 struct MsgPort *, reg_a1 struct Message *, LBASE);
-
- /*
- * Graphics, Intuition and Icon library prototypes
- */
- DFT(OpenFont) (reg_a0 struct TextAttr *, LBASE);
- DFT(LockPubScreen) (reg_a0 char *, LBASE);
- DFT(FindToolType) (reg_a0 char **, reg_a1 char *, LBASE);
- DFT(MatchToolValue) (reg_a0 char *, reg_a1 char *, LBASE);
-
- /*
- * Dos library function offsets
- */
- #define LVO_AddDosEntry -678
- #define LVO_CurrentDir -126
- #define LVO_DeleteFile -72
- #define LVO_Execute -222
- #define LVO_GetVar -906
- #define LVO_FindVar -918
- #define LVO_LoadSeg -150
- #define LVO_NewLoadSeg -768
- #define LVO_Lock -84
- #define LVO_Open -30
- #define LVO_CreateDir -120
- #define LVO_MakeLink -444
- #define LVO_Rename -78
- #define LVO_RunCommand -504
- #define LVO_SetVar -900
- #define LVO_DeleteVar -912
- #define LVO_SystemTagList -606
-
- /*
- * Exec library function offsets
- */
- #define LVO_FindPort -390
- #define LVO_FindResident -96
- #define LVO_FindSemaphore -594
- #define LVO_FindTask -294
- #define LVO_OpenDevice -444
- #define LVO_OpenLibrary -552
- #define LVO_OpenResource -498
- #define LVO_GetMsg -372
- #define LVO_PutMsg -366
-
- /*
- * Graphics, Intuition and Icon library function offsets
- */
- #define LVO_OpenFont -72
- #define LVO_LockPubScreen -510
- #define LVO_FindToolType -96
- #define LVO_MatchToolValue -102
-