home *** CD-ROM | disk | FTP | other *** search
- #ifndef __INC_POS_PGFX_MONDEV_H
- #define __INC_POS_PGFX_MONDEV_H
- /*******************************************************************
- Includes Release 24
- (C) Copyright 1995-1997 proDAD
- All Rights Reserved
-
- $AUT Holger Burkarth
- $DAT >>MonDev.h<< 25 Jan 1997 09:34:07 - (C) ProDAD
- *******************************************************************/
- #ifndef __INC_POS_PEXEC_DEVICE_H
- #include <pExec/Device.h>
- #endif
- #ifndef __INC_POS_PDOS_DOSTYPES_H
- #include <pDos/DosTypes.h>
- #endif
-
-
- /*----------------------------------
- -----------------------------------*/
- struct pOS_MonIOReq
- {
- struct pOS_Message mr_Message;
- struct pOS_MonDevice *mr_Device; /* device node pointer */
- struct pOS_Unit *mr_Unit; /* unit (driver private) */
- UWORD mr_Command; /* (enum pOS_MonitorIOReqCommands) */
- UBYTE mr_Flags; /* (enum pOS_IOReqFlags) */
- SBYTE mr_Error2; /* (enum pOS_DosErrors) */
- ULONG mr_UserData; /* for Handler own use */
- ULONG mr_CretData; /* creater own data */
-
- union {
- UBYTE mr_Reserved[24];
-
- struct { /*** MONCMD_LockObject ***/
- const struct pOS_MonLock *mrlk_CurrLock;
- const dosname_t *mrlk_Name;
- ULONG mrlk_Mode; /* (enum pOS_MonLockAccess) */
- struct pOS_MonLock *mrlk_ResLock;
- } mr_LockObj;
-
- struct { /*** MONCMD_UnlockObject ***/
- struct pOS_MonLock *mrul_Lock;
- } mr_UnlockObj;
-
- struct { /*** MONCMD_ExamineObject ***/
- const struct pOS_MonLock *mrex_Lock; /** ==NULL => File **/
- const struct pOS_MonFile *mrex_FH;
- struct pOS_MonInfoBlock *mrex_MIB;
- } mr_ExamineObj;
-
- struct { /*** MONCMD_ExNextObject ***/
- const struct pOS_MonLock *mren_Lock;
- UBYTE dren_d[4];
- struct pOS_MonInfoBlock *mren_MIB;
- } mr_ExNextObj;
-
- struct { /*** MONCMD_DupObjectLock ***/
- const struct pOS_MonLock *mrdp_Lock;
- UBYTE drdp_d[8];
- struct pOS_MonLock *mrdp_ResLock; /* Result */
- } mr_DupObjLock;
-
-
- struct { /*** MONCMD_OpenFH ***/
- const struct pOS_MonLock *mrop_CurrLock; /* CurrentDir-Lock oder NULL */
- const dosname_t *mrop_Name; /* local path */
- UWORD mrop_Mode; /* (enum pOS_MonFileMode) */
- UBYTE mrop_d[2];
- struct pOS_MonFile *mrop_ResFH; /* Result */
- } mr_OpenFH;
-
- struct { /*** MONCMD_CloseFH ***/
- struct pOS_MonFile *mrcl_FH; /* */
- } mr_CloseFH;
-
-
- struct { /*** MONCMD_DupFH ***/
- const struct pOS_MonFile *mrdf_FH;
- UBYTE mrdf_d[8];
- struct pOS_MonFile *mrdf_ResFH; /* Result */
- } mr_DupFH;
-
-
- struct { /*** MONCMD_Form ***/
- struct pOS_MonForm *mrfm_MF;
- } mr_Form;
-
- struct { /*** MONCMD_UpdateView ***/
- struct pOS_MonFile *mruv_FH; /* */
- ULONG mruv_Flags; /* enum pOS_MonitorUpdateViewFlags */
- } mr_UpView;
-
- } mr_U;
-
- };
-
-
-
- enum pOS_MonitorIOReqCommands
- {
- MONCMD_LockObject =CMD_NONSTD,
- MONCMD_UnlockObject,
- MONCMD_ExamineObject,
- MONCMD_ExNextObject,
- MONCMD_DupObjectLock,
- MONCMD_Pad1,
- MONCMD_Pad2,
- MONCMD_OpenFH,
- MONCMD_CloseFH,
- MONCMD_DupFH,
- MONCMD_Pad3,
- MONCMD_Pad4,
- MONCMD_Pad5,
- MONCMD_OpenFromLock,
- MONCMD_Form,
- MONCMD_UpdateView,
-
-
- MONCMD_MAX
- };
-
-
-
- enum pOS_MonitorUpdateViewFlags /** MONCMD_UpdateView mruv_Flags **/
- {
- MONUPVF_All = ~0,
- MONUPVF_Colors = 0x0001,
- MONUPVF_Sprits = 0x0002,
- MONUPVF_Position = 0x0004,
- };
-
-
- /*----------------------------------
- -----------------------------------*/
- struct pOS_MonDevice
- {
- struct pOS_Library mdv_Dev;
-
- UWORD mdv_Type; /* (enum pOS_MonDeviceTypes) */
-
- ULONG mdv_LockCnt; /* Lock-Counter (Handler privat) */
- ULONG mdv_FHCnt; /* FH-Counter (Handler privat) */
- struct pOS_List mdv_LockList; /* Liste der aktiven Locks (Handler privat) */
- struct pOS_List mdv_FileList; /* Liste der aktiven FileHandle (Handler privat) */
- struct pOS_List mdv_Lst; /* Ist für Assigns, .... */
- struct pOS_MonIOReq mdv_IOMaster;
-
- union {
- UBYTE mdv_Reserved2[32];
-
- struct {
- UBYTE mdvh_Pad[4];
- const struct pOS_MonMountDevice *mdvh_Mount;
- } mdv_Handler;
-
- } mdv_U;
- };
-
-
-
- enum pOS_MonDeviceTypes
- {
- MDTYP_Handler=1,
- MDTYP_Assign,
- };
-
-
-
-
- /*----------------------------------
- -----------------------------------*/
- struct pOS_MonMountDevice
- {
- struct pOS_ExNode mmd_Node; /* ln_Name, pOS_AllocVec() */
-
- UWORD mmd_Type; /* (enum pOS_MonMountDevType) */
- ULONG mmd_Flags; /* (enum pOS_MonMountDevFlags) */
-
- UBYTE mmd_Reserved[12];
-
- union {
- UBYTE mmd_UReserved[128];
-
- struct { /* MMDTYP_StdGfx */
- const CHAR* mmstd_MDName; /* MonDevice-Name (Handler) */
- APTR mmstd_MDPrivate; /* MonDevice-Private-Datas pOS_AllocVec() */
- CHAR *mmstd_Startup; /* Startup-String pOS_AllocVec() */
- const CHAR* mmstd_LibName; /* Gfx-Library */
- } mmd_StdGfx;
-
-
-
- } mmd_U;
- };
-
-
-
- enum pOS_MonMountDevType
- {
- MMDTYP_StdGfx =0x21, /* Standard-Device */
- MMDTYP_NetGfx =0x23, /* Network-Device */
- };
-
-
- enum pOS_MonMountDevFlags
- {
- MMDF_NameAllocVec = 0x0001, /* ln_Name, pOS_AllocVec() */
- };
-
-
-
-
-
- /*----------------------------------
- -----------------------------------*/
- struct pOS_MonDevPathInfo
- {
- const struct pOS_MonLock *mopi_CurrDir; /* Absoluter Pfad, kann null sein */
- const dosname_t *mopi_PathName; /* String-Name */
- dosname_t *mopi_Buffer;
- size_t mopi_BufSize;
-
- const struct pOS_MonLock *mopi_ResDir; /* Result-Lock */
- const dosname_t *mopi_ResName;
-
- struct pOS_MonDevice *mopi_Device;
- struct pOS_MonDevice *mopi_2thDev;
-
- UBYTE mopi_Reserved[16];
- };
-
-
-
-
- /*----------------------------------
- -----------------------------------*/
- struct pOS_MonResidentLibInit
- {
- size_t mlit_DataSize; /* device data space size */
- __CONST__ ULONG **mlit_FuncTable; /* table of entry points */
- VOID *mlit_DataInit; /* table of data initializers */
- BOOL (*mlit_InitFunc)(_R_LB struct pOS_ExecBase*,_R_A0 struct pOS_MonDevice*); /* initialization function to run */
- const struct pOS_MonMountDevice* mlit_Mount;
- UBYTE mlit_Reserved[4];
- };
-
-
-
- /*----------------------------------
- -----------------------------------*/
- struct pOS_StdMonDevFunction
- {
- struct pOS_LibraryFunction Reserved2[8];
-
- VOID (*AbortIO_func)(_R_LB struct pOS_MonDevice*,_R_A0 struct pOS_MonIOReq*);
- UBYTE _d5[8];
- VOID (*BeginIO_func)(_R_LB struct pOS_MonDevice*,_R_A0 struct pOS_MonIOReq*);
- UBYTE _d4[8];
-
- struct pOS_LibraryFunction Reserved1[8];
-
- struct pOS_SegmentLst* (*Expunge_func)(_R_LB struct pOS_MonDevice*);
- UBYTE _d3[8];
- struct pOS_LibraryFunction Res2;
- struct pOS_LibraryFunction Res1;
- };
-
-
- #define _pOS_GetStdMonDevFunction(dev) \
- ( (struct pOS_StdMonDevFunction*)((ULONG)(dev) - sizeof(struct pOS_StdMonDevFunction)) )
-
-
- #endif
-