home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Misc / DC-POS24.LZX / pOS / IncPOS.lzx / pDOS / Notify.h < prev    next >
Encoding:
C/C++ Source or Header  |  1997-03-18  |  2.3 KB  |  91 lines

  1. #ifndef __INC_POS_PDOS_NOTIFY_H
  2. #define __INC_POS_PDOS_NOTIFY_H
  3. /*******************************************************************
  4.  Includes Release 24
  5.  (C) Copyright 1995-1997 proDAD
  6.      All Rights Reserved
  7.  
  8.  $AUT Holger Burkarth
  9.  $DAT >>Notify.h<<   08 Jan 1997    09:40:45 - (C) ProDAD
  10. *******************************************************************/
  11. #ifndef __INC_POS_PDOS_DOSTYPES_H
  12. #include <pDOS/DosTypes.h>
  13. #endif
  14. #ifndef __INC_POS_PEXEC_MSGPORT_H
  15. #include <pExec/MsgPort.h>
  16. #endif
  17.  
  18.  
  19. /*----------------------------------
  20. -----------------------------------*/
  21. struct pOS_DosNotifyReq
  22. {
  23.   struct pOS_Node nr_Node;         /* for the Filesystem use */
  24.  
  25.   const CHAR     *nr_Name;         /* pOS_ConstructDosMsgXXX() vermerkt den Filename,
  26.                                    ** pOS_DosStartNotify() setzt auf FilePart
  27.                                    */
  28.   const CHAR     *nr_FullName;     /* set by pDos - don't touch */
  29.         ULONG     nr_UserData[2];  /* for applications use */
  30.         ULONG     nr_Flags;        /* (enum pOS_DosNotifyReqFlags) */
  31.  
  32.   union {
  33.     UBYTE nr_Reserved1[12];
  34.  
  35.     struct {
  36.       struct pOS_MsgPort *nrmg_Port;   /* for NOTIREQF_Message => (struct pOS_DosNotifyMessage*) */
  37.     } nr_Msg;
  38.  
  39.     struct {
  40.       struct pOS_Task *nrsg_SigTask;   /* for NOTIREQF_Signal */
  41.       UBYTE            nrsg_SigBit;
  42.       UBYTE            nrsg_pad;
  43.     } nr_Sig;
  44.   } nr_U;
  45.  
  46.  
  47.   struct pOS_DosDevice *nr_DosDev;         /* for pOS_DosEndNotify() */
  48.   UBYTE                 nr_FSReserved[32]; /* for Filesystem use */
  49.  
  50.   UBYTE nr_Reserved2[32];
  51. };
  52.  
  53.  
  54.  
  55. enum pOS_DosNotifyReqFlags /** nr_Flags **/
  56. {
  57.   NOTIREQB_Message=0,
  58.   NOTIREQB_Signal,
  59.   NOTIREQB_WaitReply,
  60.   NOTIREQB_Initial,
  61.  
  62.   NOTIREQF_Message    =0x0001, /* send Message */
  63.   NOTIREQF_Signal     =0x0002, /* send Signal */
  64.   NOTIREQF_WaitReply  =0x0004,
  65.   NOTIREQF_Initial    =0x0008, /* event, when object exists */
  66.  
  67.   NOTIREQF_HandlerMask =0xffff0000
  68. };
  69.  
  70.  
  71.  
  72. /*----------------------------------
  73. -----------------------------------*/
  74. struct pOS_DosNotifyMessage
  75. {
  76.   struct pOS_Message             nm_Message;
  77.   const struct pOS_DosNotifyReq *nm_NReq;    /* don't modify the request! */
  78.  
  79.   ULONG             nm_Class;   /* (enum pOS_DosNotifyMsgClass) */
  80.   ULONG             nm_Code;    /* (enum pOS_DosIOReqCommands) */
  81. };
  82.  
  83.  
  84.  
  85. enum pOS_DosNotifyMsgClass /** nm_Class **/
  86. {
  87.   NOTIMSGCL_NReq =0x40000000,
  88. };
  89.  
  90. #endif
  91.