home *** CD-ROM | disk | FTP | other *** search
- #ifndef DOS_NOTIFY_H
- #define DOS_NOTIFY_H
- /*
- **
- ** $Filename: dos/notify.h $
- ** $Release: 2.04 Includes, V37.4 $
- ** $Revision: 36.8 $
- ** $Date: 90/08/29 $
- **
- ** dos notification definitions
- **
- ** (C) Copyright 1989-1991 Commodore-Amiga, Inc.
- ** All Rights Reserved
- **
- */
-
- #ifndef EXEC_TYPES_H
- #include "exec/types.h"
- #endif
-
- #ifndef EXEC_PORTS_H
- #include "exec/ports.h"
- #endif
-
- #ifndef EXEC_TASKS_H
- #include "exec/tasks.h"
- #endif
-
-
- /* use of Class and code is discouraged for the time being - we might want to
- change things */
- /* --- NotifyMessage Class ------------------------------------------------ */
- #define NOTIFY_CLASS 0x40000000
-
- /* --- NotifyMessage Codes ------------------------------------------------ */
- #define NOTIFY_CODE 0x1234
-
-
- /* Sent to the application if SEND_MESSAGE is specified. */
-
- struct NotifyMessage {
- struct Message nm_ExecMessage;
- ULONG nm_Class;
- UWORD nm_Code;
- struct NotifyRequest *nm_NReq; /* don't modify the request! */
- ULONG nm_DoNotTouch; /* like it says! For use by handlers */
- ULONG nm_DoNotTouch2; /* ditto */
- };
-
- /* Do not modify or reuse the notifyrequest while active. */
- /* note: the first LONG of nr_Data has the length transfered */
-
- struct NotifyRequest {
- UBYTE *nr_Name;
- UBYTE *nr_FullName; /* set by dos - don't touch */
- ULONG nr_UserData; /* for applications use */
- ULONG nr_Flags;
-
- union {
-
- struct {
- struct MsgPort *nr_Port; /* for SEND_MESSAGE */
- } nr_Msg;
-
- struct {
- struct Task *nr_Task; /* for SEND_SIGNAL */
- UBYTE nr_SignalNum; /* for SEND_SIGNAL */
- UBYTE nr_pad[3];
- } nr_Signal;
- } nr_stuff;
-
- ULONG nr_Reserved[4]; /* leave 0 for now */
-
- /* internal use by handlers */
- ULONG nr_MsgCount; /* # of outstanding msgs */
- struct MsgPort *nr_Handler; /* handler sent to (for EndNotify) */
- };
-
- /* --- NotifyRequest Flags ------------------------------------------------ */
- #define NRF_SEND_MESSAGE 1
- #define NRF_SEND_SIGNAL 2
- #define NRF_WAIT_REPLY 8
- #define NRF_NOTIFY_INITIAL 16
-
- /* do NOT set or remove NRF_MAGIC! Only for use by handlers! */
- #define NRF_MAGIC 0x80000000
-
- /* bit numbers */
- #define NRB_SEND_MESSAGE 0
- #define NRB_SEND_SIGNAL 1
- #define NRB_WAIT_REPLY 3
- #define NRB_NOTIFY_INITIAL 4
-
- #define NRB_MAGIC 31
-
- /* Flags reserved for private use by the handler: */
- #define NR_HANDLER_FLAGS 0xffff0000
-
- #endif /* DOS_NOTIFY_H */
-