1/* 2 * Copyright (C) 1995 Advanced RISC Machines Limited. All rights reserved. 3 * 4 * This software may be freely used, copied, modified, and distributed 5 * provided that the above copyright notice is preserved in all copies of the 6 * software. 7 */ 8 9/* -*-C-*- 10 * 11 * $Revision: 1.2 $ 12 * $Date: 1998/01/08 11:12:39 $ 13 * 14 */ 15#ifndef angsd_unixcomm_h 16#define angsd_unixcomm_h 17 18#include <errno.h> 19 20#if defined(BSD) 21# define ERRNO_FOR_BLOCKED_IO EWOULDBLOCK 22#else 23# define ERRNO_FOR_BLOCKED_IO EAGAIN 24#endif 25 26/* 27 * Function: Unix_MatchValidSerialDevice 28 * Purpose: check that the serial driver/port name is valid 29 * and return the actual device name if it is. 30 * 31 * Params: 32 * Input: name Name of device going to be used 33 * 34 * Returns: 35 * OK: Pointer to name of the device matched 36 * Error or unrecognised deivce: 0 37 */ 38extern const char *Unix_MatchValidSerialDevice(const char *name); 39 40/* 41 * Function: Unix_IsSerialInUse 42 * Purpose: check whether the serial port is in use 43 * 44 * Params: 45 * Input: Nothing 46 * 47 * Returns: 48 * OK: 0 Serial device not in use 49 * Error: -1 Serial device in use 50 */ 51extern int Unix_IsSerialInUse(void); 52 53/* 54 * Function: Unix_OpenSerial 55 * Purpose: open the serial port 56 * 57 * Params: 58 * Input: name Name of device to open 59 * 60 * Returns: Unix 'open' returns 61 */ 62extern int Unix_OpenSerial(const char *name); 63 64/* 65 * Function: Unix_CloseSerial 66 * Purpose: close the serial port 67 * 68 * Params: 69 * Input: Nothing 70 * 71 * Returns: Nothing 72 */ 73extern void Unix_CloseSerial(void); 74 75/* 76 * Function: Unix_ReadSerial 77 * Purpose: reads a specified number of bytes (or less) from the serial port 78 * 79 * Params: 80 * Input: buf Buffer to store read bytes 81 * n Maximum number of bytes to read 82 * 83 * Returns: Unix 'read' returns 84 */ 85extern int Unix_ReadSerial(unsigned char *buf, int n, bool block); 86 87/* 88 * Function: Unix_WriteSerial 89 * Purpose: writes a specified number of bytes (or less) to the serial port 90 * 91 * Params: 92 * Input: buf Buffer to write bytes from 93 * n Maximum number of bytes to write 94 * 95 * Returns: Unix 'write' returns 96 */ 97extern int Unix_WriteSerial(unsigned char *buf, int n); 98 99/* 100 * Function: Unix_ResetSerial 101 * Purpose: resets the serial port for another operation 102 * 103 * Params: 104 * Input: Nothing 105 * 106 * Returns: Nothing 107 */ 108extern void Unix_ResetSerial(void); 109 110/* 111 * Function: Unix_SetSerialBaudRate 112 * Purpose: check that the serial driver/port name is valid 113 * 114 * Params: 115 * Input: baudrate termios value for baud rate 116 * 117 * Returns: Nothing 118 */ 119extern void Unix_SetSerialBaudRate(int baudrate); 120 121/* 122 * Function: Unix_ioctlNonBlocking 123 * Purpose: sets the serial port to non-blocking IO 124 * 125 * Params: 126 * Input: Nothing 127 * 128 * Returns: Nothing 129 */ 130extern void Unix_ioctlNonBlocking(void); 131 132/* 133 * Function: Unix_IsValidParallelDevice 134 * Purpose: check whether the combined serial and parallel device specification 135 * is ok, and return the ports selected 136 * 137 * Params: 138 * Input: portstring - is a string which specifies which serial 139 * and parallel ports are to be used. Can 140 * include s=<val> and p=<val> separated by a 141 * comma. 142 * 143 * Returns: 144 * Output: *sername - returns the device name of the chosen serial port 145 * *parname - returns the device name of the chosen parallel port 146 * If either of these is NULL on return then the match failed. 147 */ 148extern void Unix_IsValidParallelDevice( 149 const char *portstring, char **sername, char **parname 150); 151 152/* 153 * Function: Unix_IsParallelInUse 154 * Purpose: check whether the parallel port is in use 155 * 156 * Params: 157 * Input: Nothing 158 * 159 * Returns: 160 * OK: 0 Parallel device not in use 161 * Error: -1 Parallel device in use 162 */ 163extern int Unix_IsParallelInUse(void); 164 165/* 166 * Function: Unix_OpenParallel 167 * Purpose: open the parallel port 168 * 169 * Params: 170 * Input: name Name of device to open 171 * 172 * Returns: Unix 'open' returns 173 */ 174extern int Unix_OpenParallel(const char *name); 175 176/* 177 * Function: Unix_CloseParallel 178 * Purpose: close the parallel port 179 * 180 * Params: 181 * Input: Nothing 182 * 183 * Returns: Nothing 184 */ 185extern void Unix_CloseParallel(void); 186 187/* 188 * Function: Unix_WriteParallel 189 * Purpose: writes a specified number of bytes (or less) to the parallel port 190 * 191 * Params: 192 * Input: buf Buffer to write bytes from 193 * n Maximum number of bytes to write 194 * 195 * Returns: Unix 'write' returns 196 */ 197extern unsigned int Unix_WriteParallel(unsigned char *buf, int n); 198 199/* 200 * Function: Unix_ResetParallel 201 * Purpose: resets the parallel port for another operation 202 * 203 * Params: 204 * Input: Nothing 205 * 206 * Returns: Nothing 207 */ 208extern void Unix_ResetParallel(void); 209 210#endif /* ndef angsd_unixcomm_h */ 211 212/* EOF unixcomm.h */ 213