Something went wrong. Try again.
Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
/*************************************************************************** * copyright : (C) 2002 by Frank Mori Hess ***************************************************************************/
#ifndef _GPIB_H#define _GPIB_H
#define GPIB_MAX_NUM_BOARDS 16#define GPIB_MAX_NUM_DESCRIPTORS 0x1000
enum ibsta_bit_numbers { DCAS_NUM = 0, DTAS_NUM = 1, LACS_NUM = 2, TACS_NUM = 3, ATN_NUM = 4, CIC_NUM = 5, REM_NUM = 6, LOK_NUM = 7, CMPL_NUM = 8, EVENT_NUM = 9, SPOLL_NUM = 10, RQS_NUM = 11, SRQI_NUM = 12, END_NUM = 13, TIMO_NUM = 14, ERR_NUM = 15};
/* IBSTA status bits (returned by all functions) */enum ibsta_bits { DCAS = (1 << DCAS_NUM), /* device clear state */ DTAS = (1 << DTAS_NUM), /* device trigger state */ LACS = (1 << LACS_NUM), /* GPIB interface is addressed as Listener */ TACS = (1 << TACS_NUM), /* GPIB interface is addressed as Talker */ ATN = (1 << ATN_NUM), /* Attention is asserted */ CIC = (1 << CIC_NUM), /* GPIB interface is Controller-in-Charge */ REM = (1 << REM_NUM), /* remote state */ LOK = (1 << LOK_NUM), /* lockout state */ CMPL = (1 << CMPL_NUM), /* I/O is complete */ EVENT = (1 << EVENT_NUM), /* DCAS, DTAS, or IFC has occurred */ SPOLL = (1 << SPOLL_NUM), /* board serial polled by busmaster */ RQS = (1 << RQS_NUM), /* Device requesting service */ SRQI = (1 << SRQI_NUM), /* SRQ is asserted */ END = (1 << END_NUM), /* EOI or EOS encountered */ TIMO = (1 << TIMO_NUM), /* Time limit on I/O or wait function exceeded */ ERR = (1 << ERR_NUM), /* Function call terminated on error */
device_status_mask = ERR | TIMO | END | CMPL | RQS, board_status_mask = ERR | TIMO | END | CMPL | SPOLL | EVENT | LOK | REM | CIC | ATN | TACS | LACS | DTAS | DCAS | SRQI,};
/* End-of-string (EOS) modes for use with ibeos */
enum eos_flags { EOS_MASK = 0x1c00, REOS = 0x0400, /* Terminate reads on EOS */ XEOS = 0x800, /* assert EOI when EOS char is sent */ BIN = 0x1000 /* Do 8-bit compare on EOS */};
/* GPIB Bus Control Lines bit vector */enum bus_control_line { VALID_DAV = 0x01, VALID_NDAC = 0x02, VALID_NRFD = 0x04, VALID_IFC = 0x08, VALID_REN = 0x10, VALID_SRQ = 0x20, VALID_ATN = 0x40, VALID_EOI = 0x80, VALID_ALL = 0xff, BUS_DAV = 0x0100, /* DAV line status bit */ BUS_NDAC = 0x0200, /* NDAC line status bit */ BUS_NRFD = 0x0400, /* NRFD line status bit */ BUS_IFC = 0x0800, /* IFC line status bit */ BUS_REN = 0x1000, /* REN line status bit */ BUS_SRQ = 0x2000, /* SRQ line status bit */ BUS_ATN = 0x4000, /* ATN line status bit */ BUS_EOI = 0x8000 /* EOI line status bit */};
enum ppe_bits { PPC_DISABLE = 0x10, PPC_SENSE = 0x8, /* parallel poll sense bit */ PPC_DIO_MASK = 0x7};
enum { request_service_bit = 0x40,};
enum gpib_events { EVENT_NONE = 0, EVENT_DEV_TRG = 1, EVENT_DEV_CLR = 2, EVENT_IFC = 3};
#endif /* _GPIB_H */