Annotation of freem/src/events.h, revision 1.1

1.1     ! snw         1: /*
        !             2:  *                            *
        !             3:  *                           * *
        !             4:  *                          *   *
        !             5:  *                     ***************
        !             6:  *                      * *       * *
        !             7:  *                       *  MUMPS  *
        !             8:  *                      * *       * *
        !             9:  *                     ***************
        !            10:  *                          *   *
        !            11:  *                           * *
        !            12:  *                            *
        !            13:  *
        !            14:  *   events.h
        !            15:  *    event framework
        !            16:  *
        !            17:  *  
        !            18:  *   Author: Serena Willis <jpw@coherent-logic.com>
        !            19:  *    Copyright (C) 1998 MUG Deutschland
        !            20:  *    Copyright (C) 2020 Coherent Logic Development LLC
        !            21:  *
        !            22:  *
        !            23:  *   This file is part of FreeM.
        !            24:  *
        !            25:  *   FreeM is free software: you can redistribute it and/or modify
        !            26:  *   it under the terms of the GNU Affero Public License as published by
        !            27:  *   the Free Software Foundation, either version 3 of the License, or
        !            28:  *   (at your option) any later version.
        !            29:  *
        !            30:  *   FreeM is distributed in the hope that it will be useful,
        !            31:  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
        !            32:  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        !            33:  *   GNU Affero Public License for more details.
        !            34:  *
        !            35:  *   You should have received a copy of the GNU Affero Public License
        !            36:  *   along with FreeM.  If not, see <https://www.gnu.org/licenses/>.
        !            37:  *
        !            38:  **/
        !            39: 
        !            40: #if !defined(_EVENTS_H)
        !            41: #define _EVENTS_H
        !            42: 
        !            43: #include "freem.h"
        !            44: #include "mref.h"
        !            45: 
        !            46: #define EVT_QLENGTH 255
        !            47: #define EVT_MAX 9
        !            48: 
        !            49: #define EVT_CLS_COMM 0                          /* Device events */
        !            50: #define EVT_CLS_HALT 1                          /* Process halted */
        !            51: #define EVT_CLS_IPC 2                           /* IPC received */
        !            52: #define EVT_CLS_INTERRUPT 3                     /* Interrupt received */
        !            53: #define EVT_CLS_POWER 4                         /* Power fail eminent */
        !            54: #define EVT_CLS_TIMER 5                         /* Timer interval expired */
        !            55: #define EVT_CLS_USER 6                          /* User-defined (ETRIGGER) events */
        !            56: #define EVT_CLS_WAPI 7                          /* MWAPI (synchronous only) */
        !            57: #define EVT_CLS_TRIGGER 8                       /* Database triggers */
        !            58: 
        !            59: #define EVT_S_NOMODIFY -1
        !            60: #define EVT_S_DISABLED 0
        !            61: #define EVT_S_ASYNC 1
        !            62: #define EVT_S_SYNC 2
        !            63: 
        !            64: typedef struct evt_entry {
        !            65: 
        !            66:     char event_id[256];                         /* Event identifier */
        !            67:     short evt_class;                            /* EVT_CLS_* */
        !            68: 
        !            69: } evt_entry;
        !            70: 
        !            71: typedef struct evt_status_t {
        !            72: 
        !            73:     short comm;
        !            74:     short halt;
        !            75:     short ipc;
        !            76:     short interrupt;
        !            77:     short power;
        !            78:     short timer;
        !            79:     short user;
        !            80:     short wapi;
        !            81:     short trigger;
        !            82:     
        !            83: } evt_status_t;
        !            84: 
        !            85: extern short evt_async_enabled;
        !            86: extern short evt_async_restore;
        !            87: extern short evt_async_initial;
        !            88: 
        !            89: extern short evt_queue_rear;
        !            90: extern short evt_queue_front;
        !            91: extern evt_entry *evt_queue[];
        !            92: extern short evt_status[]; 
        !            93: extern int evt_blocks[EVT_MAX];
        !            94: extern int evt_depth;
        !            95: 
        !            96: extern int pending_signal_type;
        !            97: 
        !            98: /* evt_init(): initialize event framework */
        !            99: extern void evt_init (void);
        !           100: 
        !           101: extern int evt_ablock (short evt_class);
        !           102: extern int evt_aunblock (short evt_class);
        !           103: 
        !           104: /* evt_enqueue(): enqueue an event. interrupt should be non-zero if you wish to immediately interrupt the interpreter */
        !           105: extern int evt_enqueue (char *event_id, short evt_class, short interrupt);
        !           106: extern evt_entry *evt_dequeue (void);
        !           107: extern char *evt_class_name (evt_entry *e);
        !           108: extern char *evt_class_name_c (int c);
        !           109: extern int evt_get_handlers (char *buf);
        !           110: extern short evt_registered(char *event_id, short evt_class);
        !           111: 
        !           112: #endif

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>