/*---------------------------------------------------------------------------- SICS needs a way to interrupt server processsing. This is done with this module. Interrupts may come in through two ways: They may be created internally or they may be user requested. For the last ones the main loop will poll an additional special interrupt port. Mark Koennecke, December 1996 copyrights: see implementation file -----------------------------------------------------------------------------*/ #ifndef SICSINTERRUPT #define SICSINTERRUPT /* Interrupt codes */ #define eContinue 0 #define eAbortOperation 1 #define eAbortScan 2 #define eAbortBatch 3 #define eHaltSystem 4 #define eFreeSystem 5 #define eEndServer 6 /* ---------------- server side functions ---------------------------------*/ void ServerStopInterrupt(void); /* stops interrupt processing. */ void SetInterrupt(int iCode); /* send an interrupt to everybody */ /*------------------------------ utility ----------------------------------*/ int Interrupt2Text(int iInterrupt, char *text, int iTextLen); int Text2Interrupt(char *text); /* --------------------- client side functions ----------------------------*/ int ClientSetupInterrupt(char *host, int iPort); void ClientStopInterrupt(void); void SendInterrupt(int iCode); #endif