| /* |
| * Copyright (C) 1995 Advanced RISC Machines Limited. All rights reserved. |
| * |
| * This software may be freely used, copied, modified, and distributed |
| * provided that the above copyright notice is preserved in all copies of the |
| * software. |
| */ |
| |
| /* -*-C-*- |
| * |
| * $Revision$ |
| * $Date$ |
| * |
| */ |
| #ifndef angsd_unixcomm_h |
| #define angsd_unixcomm_h |
| |
| #include <errno.h> |
| |
| #if defined(BSD) |
| # define ERRNO_FOR_BLOCKED_IO EWOULDBLOCK |
| #else |
| # define ERRNO_FOR_BLOCKED_IO EAGAIN |
| #endif |
| |
| /* |
| * Function: Unix_MatchValidSerialDevice |
| * Purpose: check that the serial driver/port name is valid |
| * and return the actual device name if it is. |
| * |
| * Params: |
| * Input: name Name of device going to be used |
| * |
| * Returns: |
| * OK: Pointer to name of the device matched |
| * Error or unrecognised deivce: 0 |
| */ |
| extern const char *Unix_MatchValidSerialDevice(const char *name); |
| |
| /* |
| * Function: Unix_IsSerialInUse |
| * Purpose: check whether the serial port is in use |
| * |
| * Params: |
| * Input: Nothing |
| * |
| * Returns: |
| * OK: 0 Serial device not in use |
| * Error: -1 Serial device in use |
| */ |
| extern int Unix_IsSerialInUse(void); |
| |
| /* |
| * Function: Unix_OpenSerial |
| * Purpose: open the serial port |
| * |
| * Params: |
| * Input: name Name of device to open |
| * |
| * Returns: Unix 'open' returns |
| */ |
| extern int Unix_OpenSerial(const char *name); |
| |
| /* |
| * Function: Unix_CloseSerial |
| * Purpose: close the serial port |
| * |
| * Params: |
| * Input: Nothing |
| * |
| * Returns: Nothing |
| */ |
| extern void Unix_CloseSerial(void); |
| |
| /* |
| * Function: Unix_ReadSerial |
| * Purpose: reads a specified number of bytes (or less) from the serial port |
| * |
| * Params: |
| * Input: buf Buffer to store read bytes |
| * n Maximum number of bytes to read |
| * |
| * Returns: Unix 'read' returns |
| */ |
| extern int Unix_ReadSerial(unsigned char *buf, int n, bool block); |
| |
| /* |
| * Function: Unix_WriteSerial |
| * Purpose: writes a specified number of bytes (or less) to the serial port |
| * |
| * Params: |
| * Input: buf Buffer to write bytes from |
| * n Maximum number of bytes to write |
| * |
| * Returns: Unix 'write' returns |
| */ |
| extern int Unix_WriteSerial(unsigned char *buf, int n); |
| |
| /* |
| * Function: Unix_ResetSerial |
| * Purpose: resets the serial port for another operation |
| * |
| * Params: |
| * Input: Nothing |
| * |
| * Returns: Nothing |
| */ |
| extern void Unix_ResetSerial(void); |
| |
| /* |
| * Function: Unix_SetSerialBaudRate |
| * Purpose: check that the serial driver/port name is valid |
| * |
| * Params: |
| * Input: baudrate termios value for baud rate |
| * |
| * Returns: Nothing |
| */ |
| extern void Unix_SetSerialBaudRate(int baudrate); |
| |
| /* |
| * Function: Unix_ioctlNonBlocking |
| * Purpose: sets the serial port to non-blocking IO |
| * |
| * Params: |
| * Input: Nothing |
| * |
| * Returns: Nothing |
| */ |
| extern void Unix_ioctlNonBlocking(void); |
| |
| /* |
| * Function: Unix_IsValidParallelDevice |
| * Purpose: check whether the combined serial and parallel device specification |
| * is ok, and return the ports selected |
| * |
| * Params: |
| * Input: portstring - is a string which specifies which serial |
| * and parallel ports are to be used. Can |
| * include s=<val> and p=<val> separated by a |
| * comma. |
| * |
| * Returns: |
| * Output: *sername - returns the device name of the chosen serial port |
| * *parname - returns the device name of the chosen parallel port |
| * If either of these is NULL on return then the match failed. |
| */ |
| extern void Unix_IsValidParallelDevice( |
| const char *portstring, char **sername, char **parname |
| ); |
| |
| /* |
| * Function: Unix_IsParallelInUse |
| * Purpose: check whether the parallel port is in use |
| * |
| * Params: |
| * Input: Nothing |
| * |
| * Returns: |
| * OK: 0 Parallel device not in use |
| * Error: -1 Parallel device in use |
| */ |
| extern int Unix_IsParallelInUse(void); |
| |
| /* |
| * Function: Unix_OpenParallel |
| * Purpose: open the parallel port |
| * |
| * Params: |
| * Input: name Name of device to open |
| * |
| * Returns: Unix 'open' returns |
| */ |
| extern int Unix_OpenParallel(const char *name); |
| |
| /* |
| * Function: Unix_CloseParallel |
| * Purpose: close the parallel port |
| * |
| * Params: |
| * Input: Nothing |
| * |
| * Returns: Nothing |
| */ |
| extern void Unix_CloseParallel(void); |
| |
| /* |
| * Function: Unix_WriteParallel |
| * Purpose: writes a specified number of bytes (or less) to the parallel port |
| * |
| * Params: |
| * Input: buf Buffer to write bytes from |
| * n Maximum number of bytes to write |
| * |
| * Returns: Unix 'write' returns |
| */ |
| extern unsigned int Unix_WriteParallel(unsigned char *buf, int n); |
| |
| /* |
| * Function: Unix_ResetParallel |
| * Purpose: resets the parallel port for another operation |
| * |
| * Params: |
| * Input: Nothing |
| * |
| * Returns: Nothing |
| */ |
| extern void Unix_ResetParallel(void); |
| |
| #endif /* ndef angsd_unixcomm_h */ |
| |
| /* EOF unixcomm.h */ |