ugpib.h revision 141737
1274016Sngie/*- 2274016Sngie * Copyright (c) 2005 Poul-Henning Kamp <phk@FreeBSD.org> 3274016Sngie * All rights reserved. 4274016Sngie * 5274016Sngie * Redistribution and use in source and binary forms, with or without 6274016Sngie * modification, are permitted provided that the following conditions 7274016Sngie * are met: 8274016Sngie * 1. Redistributions of source code must retain the above copyright 9274016Sngie * notice, this list of conditions and the following disclaimer. 10274016Sngie * 2. Redistributions in binary form must reproduce the above copyright 11274016Sngie * notice, this list of conditions and the following disclaimer in the 12274016Sngie * documentation and/or other materials provided with the distribution. 13274016Sngie * 14274016Sngie * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 15274016Sngie * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16274016Sngie * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17274016Sngie * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18274016Sngie * 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 24 * SUCH DAMAGE. 25 * 26 * $FreeBSD: head/sys/dev/ieee488/ugpib.h 141737 2005-02-12 15:49:50Z phk $ 27 * 28 */ 29 30#ifndef _DEV_IEEE488_UGPIB_H_ 31#define _DEV_IEEE488_UGPIB_H_ 32 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 */ 49 50/* ibsta bits */ 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 */ 67 68/* Timeouts */ 69#define TNONE 0 70#define T10us 1 71#define T30us 2 72#define T100us 3 73#define T300us 4 74#define T1ms 5 75#define T3ms 6 76#define T10ms 7 77#define T30ms 8 78#define T100ms 9 79#define T300ms 10 80#define T1s 11 81#define T3s 12 82#define T10s 13 83#define T30s 14 84#define T100s 15 85#define T300s 16 86#define T1000s 17 87 88/* EOS bits */ 89#define REOS (1 << 10) 90#define XEOS (1 << 11) 91#define BIN (1 << 12) 92 93/* Bus commands */ 94#define LAD 0x20 /* Listen address */ 95#define UNL 0x3F /* Unlisten */ 96#define TAD 0x40 /* Talk address */ 97#define UNT 0x5F /* Untalk */ 98 99#ifndef _KERNEL 100 101extern int ibcnt, iberr; 102 103int ibask(int handle, int option, int *retval); 104int ibbna(int handle, char *bdname); 105int ibcac(int handle, int v); 106int ibclr(int handle); 107int ibcmd(int handle, void *buffer, long cnt); 108int ibcmda(int handle, void *buffer, long cnt); 109int ibconfig(int handle, int option, int value); 110int ibdev(int boardID, int pad, int sad, int tmo, int eot, int eos); 111int ibdiag(int handle, void *buffer, long cnt); 112int ibdma(int handle, int v); 113int ibeos(int handle, int eos); 114int ibeot(int handle, int eot); 115int ibevent(int handle, short *event); 116int ibfind(char *bdname); 117int ibgts(int handle, int v); 118int ibist(int handle, int v); 119int iblines(int handle, short *lines); 120int ibllo(int handle); 121int ibln(int handle, int padval, int sadval, short *listenflag); 122int ibloc(int handle); 123int ibonl(int handle, int v); 124int ibpad(int handle, int v); 125int ibpct(int handle); 126int ibpoke(int handle, int option, int value); 127int ibppc(int handle, int v); 128int ibrd(int handle, void *buffer, long cnt); 129int ibrda(int handle, void *buffer, long cnt); 130int ibrdf(int handle, char *flname); 131int ibrdkey(int handle, void *buffer, int cnt); 132int ibrpp(int handle, char *ppr); 133int ibrsc(int handle, int v); 134int ibrsp(int handle, char *spr); 135int ibrsv(int handle, int v); 136int ibsad(int handle, int v); 137int ibsgnl(int handle, int v); 138int ibsic(int handle); 139int ibsre(int handle, int v); 140int ibsrq(void (*func)(void)); 141int ibstop(int handle); 142int ibtmo(int handle, int tmo); 143int ibtrap(int mask, int mode); 144int ibtrg(int handle); 145int ibwait(int handle, int mask); 146int ibwrt(int handle, const void *buffer, long cnt); 147int ibwrta(int handle, const void *buffer, long cnt); 148int ibwrtf(int handle, const char *flname); 149int ibwrtkey(int handle, const void *buffer, int cnt); 150int ibxtrc(int handle, void *buffer, long cnt); 151#endif /* _KERNEL */ 152#endif /* _DEV_IEEE488_UGPIB_H_ */ 153