File Index
Files and directories
Sign in
FILE

gpib_ioctl.h

File preview with syntax highlighting.

linux-6.19.14/include/uapi/linux/gpib_ioctl.h C
  1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
  2
  3/***************************************************************************
  4 *    copyright            : (C) 2002 by Frank Mori Hess
  5 ***************************************************************************/
  6
  7#ifndef _GPIB_IOCTL_H
  8#define _GPIB_IOCTL_H
  9
 10#include <asm/ioctl.h>
 11#include <linux/types.h>
 12
 13#define GPIB_CODE 160
 14
 15struct gpib_board_type_ioctl {
 16	char name[100];
 17};
 18
 19/* argument for read/write/command ioctls */
 20struct gpib_read_write_ioctl {
 21	__u64 buffer_ptr;
 22	__u32 requested_transfer_count;
 23	__u32 completed_transfer_count;
 24	__s32 end; /* end flag return for reads, end io suppression request for cmd*/
 25	__s32 handle;
 26};
 27
 28struct gpib_open_dev_ioctl {
 29	__u32 handle;
 30	__u32 pad;
 31	__s32 sad;
 32	__u32 is_board;
 33};
 34
 35struct gpib_close_dev_ioctl {
 36	__u32 handle;
 37};
 38
 39struct gpib_serial_poll_ioctl {
 40	__u32 pad;
 41	__s32 sad;
 42	__u8 status_byte;
 43	__u8 padding[3];   /* align to 32 bit boundary */
 44};
 45
 46struct gpib_eos_ioctl {
 47	__s32 eos;
 48	__s32 eos_flags;
 49};
 50
 51struct gpib_wait_ioctl {
 52	__s32 handle;
 53	__s32 wait_mask;
 54	__s32 clear_mask;
 55	__s32 set_mask;
 56	__s32 ibsta;
 57	__s32 pad;
 58	__s32 sad;
 59	__u32 usec_timeout;
 60};
 61
 62struct gpib_online_ioctl {
 63	__u64 init_data_ptr;
 64	__s32 init_data_length;
 65	__s32 online;
 66};
 67
 68struct gpib_spoll_bytes_ioctl {
 69	__u32 num_bytes;
 70	__u32 pad;
 71	__s32 sad;
 72};
 73
 74struct gpib_board_info_ioctl {
 75	__u32 pad;
 76	__s32 sad;
 77	__s32 parallel_poll_configuration;
 78	__s32 autopolling;
 79	__s32 is_system_controller;
 80	__u32 t1_delay;
 81	unsigned ist : 1;
 82	unsigned no_7_bit_eos : 1;
 83	unsigned padding :30; /* align to 32 bit boundary */
 84};
 85
 86struct gpib_select_pci_ioctl {
 87	__s32 pci_bus;
 88	__s32 pci_slot;
 89};
 90
 91struct gpib_ppoll_config_ioctl {
 92	__u8 config;
 93	unsigned set_ist : 1;
 94	unsigned clear_ist : 1;
 95	unsigned padding :22; /* align to 32 bit boundary */
 96};
 97
 98struct gpib_pad_ioctl {
 99	__u32 handle;
100	__u32 pad;
101};
102
103struct gpib_sad_ioctl {
104	__u32 handle;
105	__s32 sad;
106};
107
108/* select a piece of hardware to attach by its sysfs device path */
109struct gpib_select_device_path_ioctl {
110	char device_path[0x1000];
111};
112
113/* update status byte and request service */
114struct gpib_request_service2 {
115	__u8 status_byte;
116	__u8 padding[3]; /* align to 32 bit boundary */
117	__s32 new_reason_for_service;
118};
119
120/* Standard functions. */
121enum gpib_ioctl {
122	IBRD = _IOWR(GPIB_CODE, 100, struct gpib_read_write_ioctl),
123	IBWRT = _IOWR(GPIB_CODE, 101, struct gpib_read_write_ioctl),
124	IBCMD = _IOWR(GPIB_CODE, 102, struct gpib_read_write_ioctl),
125	IBOPENDEV = _IOWR(GPIB_CODE, 3, struct gpib_open_dev_ioctl),
126	IBCLOSEDEV = _IOW(GPIB_CODE, 4, struct gpib_close_dev_ioctl),
127	IBWAIT = _IOWR(GPIB_CODE, 5, struct gpib_wait_ioctl),
128	IBRPP = _IOWR(GPIB_CODE, 6, __u8),
129
130	IBSIC = _IOW(GPIB_CODE, 9, __u32),
131	IBSRE = _IOW(GPIB_CODE, 10, __s32),
132	IBGTS = _IO(GPIB_CODE, 11),
133	IBCAC = _IOW(GPIB_CODE, 12, __s32),
134	IBLINES = _IOR(GPIB_CODE, 14, __s16),
135	IBPAD = _IOW(GPIB_CODE, 15, struct gpib_pad_ioctl),
136	IBSAD = _IOW(GPIB_CODE, 16, struct gpib_sad_ioctl),
137	IBTMO = _IOW(GPIB_CODE, 17, __u32),
138	IBRSP = _IOWR(GPIB_CODE, 18, struct gpib_serial_poll_ioctl),
139	IBEOS = _IOW(GPIB_CODE, 19, struct gpib_eos_ioctl),
140	IBRSV = _IOW(GPIB_CODE, 20, __u8),
141	CFCBASE = _IOW(GPIB_CODE, 21, __u64),
142	CFCIRQ = _IOW(GPIB_CODE, 22, __u32),
143	CFCDMA = _IOW(GPIB_CODE, 23, __u32),
144	CFCBOARDTYPE = _IOW(GPIB_CODE, 24, struct gpib_board_type_ioctl),
145
146	IBMUTEX = _IOW(GPIB_CODE, 26, __s32),
147	IBSPOLL_BYTES = _IOWR(GPIB_CODE, 27, struct gpib_spoll_bytes_ioctl),
148	IBPPC = _IOW(GPIB_CODE, 28, struct gpib_ppoll_config_ioctl),
149	IBBOARD_INFO = _IOR(GPIB_CODE, 29, struct gpib_board_info_ioctl),
150
151	IBQUERY_BOARD_RSV = _IOR(GPIB_CODE, 31, __s32),
152	IBSELECT_PCI = _IOWR(GPIB_CODE, 32, struct gpib_select_pci_ioctl),
153	IBEVENT = _IOR(GPIB_CODE, 33, __s16),
154	IBRSC = _IOW(GPIB_CODE, 34, __s32),
155	IB_T1_DELAY = _IOW(GPIB_CODE, 35, __u32),
156	IBLOC = _IO(GPIB_CODE, 36),
157
158	IBAUTOSPOLL = _IOW(GPIB_CODE, 38, __s16),
159	IBONL = _IOW(GPIB_CODE, 39, struct gpib_online_ioctl),
160	IBPP2_SET = _IOW(GPIB_CODE, 40, __s16),
161	IBPP2_GET = _IOR(GPIB_CODE, 41, __s16),
162	IBSELECT_DEVICE_PATH = _IOW(GPIB_CODE, 43, struct gpib_select_device_path_ioctl),
163	/* 44 was IBSELECT_SERIAL_NUMBER */
164	IBRSV2 = _IOW(GPIB_CODE, 45, struct gpib_request_service2)
165};
166
167#endif	/* _GPIB_IOCTL_H */
~/ Read-only file preview.