1141398Sphk/*- 2141398Sphk * Copyright (c) 2005 Poul-Henning Kamp 3141398Sphk * All rights reserved. 4141398Sphk * 5141398Sphk * Redistribution and use in source and binary forms, with or without 6141398Sphk * modification, are permitted provided that the following conditions 7141398Sphk * are met: 8141398Sphk * 1. Redistributions of source code must retain the above copyright 9141398Sphk * notice, this list of conditions and the following disclaimer. 10141398Sphk * 2. Redistributions in binary form must reproduce the above copyright 11141398Sphk * notice, this list of conditions and the following disclaimer in the 12141398Sphk * documentation and/or other materials provided with the distribution. 13141398Sphk * 14141398Sphk * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 15141398Sphk * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16141398Sphk * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17141398Sphk * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18141398Sphk * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19141398Sphk * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20141398Sphk * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21141398Sphk * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22141398Sphk * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23141398Sphk * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24141398Sphk * SUCH DAMAGE. 25141398Sphk * 26141398Sphk * This file defines the ABI between the userland gpib library and the 27141398Sphk * kernel. This file should not be used anywhere else. 28141398Sphk * 29141398Sphk * $FreeBSD$ 30141398Sphk */ 31141398Sphk 32141398Sphk#include <sys/ioccom.h> 33141398Sphk 34141398Sphktypedef void ibsrq_t(void); 35141398Sphkenum ibfoo_id { 36141398Sphk __ID_INVALID = 0, 37141398Sphk __ID_IBASK, 38141398Sphk __ID_IBBNA, 39141398Sphk __ID_IBCAC, 40141398Sphk __ID_IBCLR, 41141398Sphk __ID_IBCMD, 42141398Sphk __ID_IBCMDA, 43141398Sphk __ID_IBCONFIG, 44141398Sphk __ID_IBDEV, 45141398Sphk __ID_IBDIAG, 46141398Sphk __ID_IBDMA, 47141398Sphk __ID_IBEOS, 48141398Sphk __ID_IBEOT, 49141398Sphk __ID_IBEVENT, 50141398Sphk __ID_IBFIND, 51141398Sphk __ID_IBGTS, 52141398Sphk __ID_IBIST, 53141398Sphk __ID_IBLINES, 54141398Sphk __ID_IBLLO, 55141398Sphk __ID_IBLN, 56141398Sphk __ID_IBLOC, 57141398Sphk __ID_IBONL, 58141398Sphk __ID_IBPAD, 59141398Sphk __ID_IBPCT, 60141398Sphk __ID_IBPOKE, 61141398Sphk __ID_IBPPC, 62141398Sphk __ID_IBRD, 63141398Sphk __ID_IBRDA, 64141398Sphk __ID_IBRDF, 65141398Sphk __ID_IBRDKEY, 66141398Sphk __ID_IBRPP, 67141398Sphk __ID_IBRSC, 68141398Sphk __ID_IBRSP, 69141398Sphk __ID_IBRSV, 70141398Sphk __ID_IBSAD, 71141398Sphk __ID_IBSGNL, 72141398Sphk __ID_IBSIC, 73141398Sphk __ID_IBSRE, 74141398Sphk __ID_IBSRQ, 75141398Sphk __ID_IBSTOP, 76141398Sphk __ID_IBTMO, 77141398Sphk __ID_IBTRAP, 78141398Sphk __ID_IBTRG, 79141398Sphk __ID_IBWAIT, 80141398Sphk __ID_IBWRT, 81141398Sphk __ID_IBWRTA, 82141398Sphk __ID_IBWRTF, 83141398Sphk __ID_IBWRTKEY, 84141398Sphk __ID_IBXTRC 85141398Sphk}; 86141398Sphk 87141398Sphk#define __F_HANDLE (1 << 0) 88141398Sphk#define __F_SPR (1 << 1) 89141398Sphk#define __F_BUFFER (1 << 2) 90141398Sphk#define __F_RETVAL (1 << 3) 91141398Sphk#define __F_BDNAME (1 << 4) 92141398Sphk#define __F_MASK (1 << 5) 93141398Sphk#define __F_PADVAL (1 << 6) 94141398Sphk#define __F_SADVAL (1 << 7) 95141398Sphk#define __F_CNT (1 << 8) 96141398Sphk#define __F_TMO (1 << 9) 97141398Sphk#define __F_EOS (1 << 10) 98141398Sphk#define __F_PPR (1 << 11) 99141398Sphk#define __F_EOT (1 << 12) 100141398Sphk#define __F_V (1 << 13) 101141398Sphk#define __F_VALUE (1 << 14) 102141398Sphk#define __F_SAD (1 << 15) 103141398Sphk#define __F_BOARDID (1 << 16) 104141398Sphk#define __F_OPTION (1 << 17) 105141398Sphk#define __F_FLNAME (1 << 18) 106141398Sphk#define __F_FUNC (1 << 19) 107141398Sphk#define __F_LINES (1 << 20) 108141398Sphk#define __F_PAD (1 << 21) 109141398Sphk#define __F_MODE (1 << 22) 110141398Sphk#define __F_LISTENFLAG (1 << 23) 111141398Sphk#define __F_EVENT (1 << 24) 112141398Sphk 113141768Sphkstruct ibarg { 114141398Sphk enum ibfoo_id __ident; 115141398Sphk unsigned int __field; 116141398Sphk int __retval; 117141768Sphk int __ibsta; 118141398Sphk int __iberr; 119141398Sphk int __ibcnt; 120141398Sphk int handle; 121141398Sphk char * spr; 122141398Sphk void * buffer; 123141398Sphk int * retval; 124141398Sphk char * bdname; 125141398Sphk int mask; 126141398Sphk int padval; 127141398Sphk int sadval; 128141398Sphk long cnt; 129141398Sphk int tmo; 130141398Sphk int eos; 131141398Sphk char * ppr; 132141398Sphk int eot; 133141398Sphk int v; 134141398Sphk int value; 135141398Sphk int sad; 136141398Sphk int boardID; 137141398Sphk int option; 138141398Sphk char * flname; 139141398Sphk ibsrq_t * func; 140141398Sphk short * lines; 141141398Sphk int pad; 142141398Sphk int mode; 143141398Sphk short * listenflag; 144141398Sphk short * event; 145141398Sphk}; 146141398Sphk 147141768Sphk#define GPIB_IBFOO _IOWR(4, 0, struct ibarg) 148