1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242
|
#include "EXTERN.h"
#include "perl.h"
#include "XSUB.h"
/* include our configure-created config file */
#include "config.h"
/* First step: include all the files we think we may need to
get all the silly serial and modem bits defined. This should
be exactly the same as what's in the autoconf scripts. */
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif
#ifdef HAVE_SYS_IOCTL_H
# include <sys/ioctl.h>
#endif
#ifdef HAVE_TERMIOS_H
# include <termios.h>
#endif
#ifdef HAVE_SYS_TERMIOX_H
# include <sys/termiox.h>
#endif
#ifdef HAVE_SYS_TERMIOS_H
# include <sys/termios.h>
#endif
#ifdef HAVE_SYS_TTYCOM_H
# include <sys/ttycom.h>
#endif
#ifdef HAVE_SYS_MODEM_H
# include <sys/modem.h>
#endif
#ifdef HAVE_IOKIT_SERIAL_IOSS_H
# include <IOKit/serial/ioss.h>
#endif
#define ADD_TO_HASH(v) { \
key = #v; \
value = newSViv(v); \
hv_store(hv, key, strlen(key), value, 0); \
}
/* Hide this junk in the "Bits" namespace */
MODULE = Device::SerialPort PACKAGE = Device::SerialPort::Bits
SV *
get_hash()
PREINIT:
HV * hv;
char * key;
SV * value;
PROTOTYPE:
CODE:
/* initialize the hash */
hv = newHV();
#ifdef _SC_CLK_TCK
ADD_TO_HASH(_SC_CLK_TCK)
#endif
#ifdef TIOCMBIS
ADD_TO_HASH(TIOCMBIS)
#endif
#ifdef TIOCMBIC
ADD_TO_HASH(TIOCMBIC)
#endif
#ifdef TIOCMGET
ADD_TO_HASH(TIOCMGET)
#endif
#ifdef CRTSCTS
ADD_TO_HASH(CRTSCTS)
#endif
#ifdef OCRNL
ADD_TO_HASH(OCRNL)
#endif
#ifdef ONLCR
ADD_TO_HASH(ONLCR)
#endif
#ifdef ECHOKE
ADD_TO_HASH(ECHOKE)
#endif
#ifdef ECHOCTL
ADD_TO_HASH(ECHOCTL)
#endif
#ifdef TIOCM_CAR
ADD_TO_HASH(TIOCM_CAR)
#endif
#ifdef TIOCM_CD
ADD_TO_HASH(TIOCM_CD)
#endif
#ifdef TIOCM_RNG
ADD_TO_HASH(TIOCM_RNG)
#endif
#ifdef TIOCM_RI
ADD_TO_HASH(TIOCM_RI)
#endif
#ifdef TIOCM_CTS
ADD_TO_HASH(TIOCM_CTS)
#endif
#ifdef TIOCM_DSR
ADD_TO_HASH(TIOCM_DSR)
#endif
#ifdef TIOCINQ
ADD_TO_HASH(TIOCINQ)
#endif
#ifdef TIOCOUTQ
ADD_TO_HASH(TIOCOUTQ)
#endif
#ifdef TIOCSER_TEMT
ADD_TO_HASH(TIOCSER_TEMT)
#endif
#ifdef TIOCM_LE
ADD_TO_HASH(TIOCM_LE)
#endif
#ifdef TIOCSERGETLSR
ADD_TO_HASH(TIOCSERGETLSR)
#endif
#ifdef TIOCSDTR
ADD_TO_HASH(TIOCSDTR)
#endif
#ifdef TIOCCDTR
ADD_TO_HASH(TIOCCDTR)
#endif
#ifdef TIOCM_RTS
ADD_TO_HASH(TIOCM_RTS)
#endif
#ifdef TIOCM_DTR
ADD_TO_HASH(TIOCM_DTR)
#endif
#ifdef TIOCMIWAIT
ADD_TO_HASH(TIOCMIWAIT)
#endif
#ifdef TIOCGICOUNT
ADD_TO_HASH(TIOCGICOUNT)
#endif
#ifdef CTSXON
ADD_TO_HASH(CTSXON)
#endif
#ifdef RTSXOFF
ADD_TO_HASH(RTSXOFF)
#endif
#ifdef TCGETX
ADD_TO_HASH(TCGETX)
#endif
#ifdef TCSETX
ADD_TO_HASH(TCSETX)
#endif
/* Baud rates */
#ifdef IOSSIOSPEED
ADD_TO_HASH(IOSSIOSPEED)
#endif
#ifdef B0
ADD_TO_HASH(B0)
#endif
#ifdef B50
ADD_TO_HASH(B50)
#endif
#ifdef B75
ADD_TO_HASH(B75)
#endif
#ifdef B110
ADD_TO_HASH(B110)
#endif
#ifdef B134
ADD_TO_HASH(B134)
#endif
#ifdef B150
ADD_TO_HASH(B150)
#endif
#ifdef B200
ADD_TO_HASH(B200)
#endif
#ifdef B300
ADD_TO_HASH(B300)
#endif
#ifdef B600
ADD_TO_HASH(B600)
#endif
#ifdef B1200
ADD_TO_HASH(B1200)
#endif
#ifdef B1800
ADD_TO_HASH(B1800)
#endif
#ifdef B2400
ADD_TO_HASH(B2400)
#endif
#ifdef B4800
ADD_TO_HASH(B4800)
#endif
#ifdef B9600
ADD_TO_HASH(B9600)
#endif
#ifdef B19200
ADD_TO_HASH(B19200)
#endif
#ifdef B38400
ADD_TO_HASH(B38400)
#endif
#ifdef B57600
ADD_TO_HASH(B57600)
#endif
#ifdef B115200
ADD_TO_HASH(B115200)
#endif
#ifdef B230400
ADD_TO_HASH(B230400)
#endif
#ifdef B460800
ADD_TO_HASH(B460800)
#endif
#ifdef B500000
ADD_TO_HASH(B500000)
#endif
#ifdef B576000
ADD_TO_HASH(B576000)
#endif
#ifdef B921600
ADD_TO_HASH(B921600)
#endif
#ifdef B1000000
ADD_TO_HASH(B1000000)
#endif
#ifdef B1152000
ADD_TO_HASH(B1152000)
#endif
#ifdef B2000000
ADD_TO_HASH(B2000000)
#endif
#ifdef B2500000
ADD_TO_HASH(B2500000)
#endif
#ifdef B3000000
ADD_TO_HASH(B3000000)
#endif
#ifdef B3500000
ADD_TO_HASH(B3500000)
#endif
#ifdef B4000000
ADD_TO_HASH(B4000000)
#endif
RETVAL = newRV_noinc((SV*)hv);
OUTPUT:
RETVAL
|