50 lines
1.3 KiB
C
50 lines
1.3 KiB
C
/*----------------------------------------------------------------------------
|
|
|
|
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
|