#include "inputstr.h"
#include "dmxinputinit.h"
#include "dmxsigio.h"
#include "dmxevents.h"
#include <signal.h>
#include <unistd.h>
#include <fcntl.h>
Defines | |
#define | O_ASYNC 0 |
#define | O_NONBLOCK FNONBLK |
Functions | |
static void | dmxSigioHandler (int sig) |
void | dmxSigioBlock (void) |
void | dmxSigioUnblock (void) |
static void | dmxSigioHook (void) |
static void | dmxSigioUnhook (void) |
static void | dmxSigioAdd (DMXInputInfo *dmxInput) |
static void | dmxSigioRemove (DMXInputInfo *dmxInput) |
void | dmxSigioEnableInput (void) |
void | dmxSigioDisableInput (void) |
void | dmxSigioRegister (DMXInputInfo *dmxInput, int fd) |
void | dmxSigioUnregister (DMXInputInfo *dmxInput) |
Variables | |
static int | dmxFdCount = 0 |
static Bool | dmxInputEnabled = TRUE |
Provides an interface for handling SIGIO signals for input devices.
#define O_ASYNC 0 |
Referenced by dmxSigioAdd(), and dmxSigioRemove().
#define O_NONBLOCK FNONBLK |
Referenced by dmxSigioAdd(), dmxSigioRemove(), kbdLinuxOpenVT(), msLinuxInit(), ps2LinuxInit(), and usbInit().
static void dmxSigioAdd | ( | DMXInputInfo * | dmxInput | ) | [static] |
References DMX_ACTIVESIGIO, DMX_NOSIGIO, DMX_USESIGIO, dmxFdCount, dmxSigioHook(), O_ASYNC, O_NONBLOCK, _DMXInputInfo::sigioAdded, _DMXInputInfo::sigioFd, _DMXInputInfo::sigioFdCount, and _DMXInputInfo::sigioState.
Referenced by dmxSigioEnableInput(), and dmxSigioRegister().
void dmxSigioBlock | ( | void | ) |
Block SIGIO handling.
Referenced by dmxCoreMotion(), dmxExtMotion(), and dmxTranslateAndEnqueueExtEvent().
void dmxSigioDisableInput | ( | void | ) |
Disable SIGIO handling. This removes the hanlder from the OS.
References dmxInputEnabled, dmxInputs, dmxNumInputs, and dmxSigioRemove().
Referenced by dmxWakeupHandler().
void dmxSigioEnableInput | ( | void | ) |
Enable SIGIO handling. This instantiates the handler with the OS.
References dmxInputEnabled, dmxInputs, dmxNumInputs, and dmxSigioAdd().
Referenced by dmxSwitchReturn().
static void dmxSigioHandler | ( | int | sig | ) | [static] |
static void dmxSigioHook | ( | void | ) | [static] |
References dmxSigioHandler().
Referenced by dmxSigioAdd().
void dmxSigioRegister | ( | DMXInputInfo * | dmxInput, | |
int | fd | |||
) |
Make a note that the input device described in dmxInput will be using the file descriptor fd for SIGIO signals. Calls AddEnabledDevice ifi SIGIO handling has been enabled with dmxSigioEnableInput().
References DMX_MAX_SIGIO_FDS, DMX_USESIGIO, dmxFatal, dmxInputEnabled, dmxLog(), dmxSigioAdd(), _DMXInputInfo::sigioFd, _DMXInputInfo::sigioFdCount, and _DMXInputInfo::sigioState.
Referenced by dmxDeviceOnOff().
static void dmxSigioRemove | ( | DMXInputInfo * | dmxInput | ) | [static] |
References DMX_ACTIVESIGIO, DMX_NOSIGIO, DMX_USESIGIO, dmxFdCount, dmxSigioUnhook(), O_ASYNC, O_NONBLOCK, _DMXInputInfo::sigioAdded, _DMXInputInfo::sigioFd, _DMXInputInfo::sigioFdCount, and _DMXInputInfo::sigioState.
Referenced by dmxSigioDisableInput(), and dmxSigioUnregister().
void dmxSigioUnblock | ( | void | ) |
Unblock SIGIO handling.
Referenced by dmxCoreMotion(), dmxExtMotion(), and dmxTranslateAndEnqueueExtEvent().
static void dmxSigioUnhook | ( | void | ) | [static] |
Referenced by dmxSigioRemove().
void dmxSigioUnregister | ( | DMXInputInfo * | dmxInput | ) |
Remove the notes that dmxInput is using any file descriptors for SIGIO signals. Calls RemoveEnabledDevice.
References DMX_NOSIGIO, dmxSigioRemove(), _DMXInputInfo::sigioFdCount, and _DMXInputInfo::sigioState.
Referenced by dmxDeviceOnOff().
int dmxFdCount = 0 [static] |
Referenced by dmxSigioAdd(), and dmxSigioRemove().
Bool dmxInputEnabled = TRUE [static] |
Referenced by dmxSigioDisableInput(), dmxSigioEnableInput(), and dmxSigioRegister().