2 * Copyright (c) 2005 Poul-Henning Kamp <phk@FreeBSD.org>
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution.
14 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30 #ifndef _DEV_IEEE488_UGPIB_H_
31 #define _DEV_IEEE488_UGPIB_H_
33 /* ibfoo() return values */
34 #define EDVR 0 /* System error */
35 #define ECIC 1 /* Not Active Controller */
36 #define ENOL 2 /* Nobody listening */
37 #define EADR 3 /* Controller not addressed */
38 #define EARG 4 /* Invalid argument */
39 #define ESAC 5 /* Not System Controller */
40 #define EABO 6 /* I/O Aborted/Time out */
41 #define ENEB 7 /* No such controller */
42 #define EOIP 10 /* Async I/O in progress */
43 #define ECAP 11 /* No such capability */
44 #define EFSO 12 /* File system error */
45 #define EBUS 14 /* Command byte xfer error */
46 #define ESTB 15 /* Serial poll status byte lost */
47 #define ESRQ 16 /* SRQ line stuck */
48 #define ETAB 20 /* Table problem */
51 #define ERR (1<<15) /* Error */
52 #define TIMO (1<<14) /* Timeout */
53 #define END (1<<13) /* EOI/EOS */
54 #define SRQI (1<<12) /* SRQ */
55 #define RQS (1<<11) /* Device requests service */
56 #define SPOLL (1<<10) /* Serial Poll */
57 #define EVENT (1<<9) /* Event occured */
58 #define CMPL (1<<8) /* I/O complete */
59 #define LOK (1<<7) /* Lockout */
60 #define REM (1<<6) /* Remote */
61 #define CIC (1<<5) /* CIC */
62 #define ATN (1<<4) /* ATN */
63 #define TACS (1<<3) /* Talker */
64 #define LACS (1<<2) /* Listener */
65 #define DTAS (1<<1) /* Device trigger status */
66 #define DCAS (1<<0) /* Device clear state */
89 #define REOS (1 << 10)
90 #define XEOS (1 << 11)
94 #define GTL 0x01 /* Go To Local */
95 #define SDC 0x04 /* Selected Device Clear */
96 #define GET 0x08 /* Group Execute Trigger */
97 #define LAD 0x20 /* Listen address */
98 #define UNL 0x3F /* Unlisten */
99 #define TAD 0x40 /* Talk address */
100 #define UNT 0x5F /* Untalk */
104 extern int ibcnt, iberr, ibsta;
106 int ibask(int handle, int option, int *retval);
107 int ibbna(int handle, char *bdname);
108 int ibcac(int handle, int v);
109 int ibclr(int handle);
110 int ibcmd(int handle, void *buffer, long cnt);
111 int ibcmda(int handle, void *buffer, long cnt);
112 int ibconfig(int handle, int option, int value);
113 int ibdev(int boardID, int pad, int sad, int tmo, int eot, int eos);
114 int ibdiag(int handle, void *buffer, long cnt);
115 int ibdma(int handle, int v);
116 int ibeos(int handle, int eos);
117 int ibeot(int handle, int eot);
118 int ibevent(int handle, short *event);
119 int ibfind(char *bdname);
120 int ibgts(int handle, int v);
121 int ibist(int handle, int v);
122 int iblines(int handle, short *lines);
123 int ibllo(int handle);
124 int ibln(int handle, int padval, int sadval, short *listenflag);
125 int ibloc(int handle);
126 int ibonl(int handle, int v);
127 int ibpad(int handle, int pad);
128 int ibpct(int handle);
129 int ibpoke(int handle, int option, int value);
130 int ibppc(int handle, int v);
131 int ibrd(int handle, void *buffer, long cnt);
132 int ibrda(int handle, void *buffer, long cnt);
133 int ibrdf(int handle, char *flname);
134 int ibrdkey(int handle, void *buffer, int cnt);
135 int ibrpp(int handle, char *ppr);
136 int ibrsc(int handle, int v);
137 int ibrsp(int handle, char *spr);
138 int ibrsv(int handle, int v);
139 int ibsad(int handle, int sad);
140 int ibsgnl(int handle, int v);
141 int ibsic(int handle);
142 int ibsre(int handle, int v);
143 int ibsrq(void (*func)(void));
144 int ibstop(int handle);
145 int ibtmo(int handle, int tmo);
146 int ibtrap(int mask, int mode);
147 int ibtrg(int handle);
148 int ibwait(int handle, int mask);
149 int ibwrt(int handle, const void *buffer, long cnt);
150 int ibwrta(int handle, const void *buffer, long cnt);
151 int ibwrtf(int handle, const char *flname);
152 int ibwrtkey(int handle, const void *buffer, int cnt);
153 int ibxtrc(int handle, void *buffer, long cnt);
155 #endif /* _DEV_IEEE488_UGPIB_H_ */