1 /* $NetBSD: tweio.h,v 1.1 2002/12/13 23:31:33 christos Exp $ */ 2 /*- 3 * Copyright (c) 2000 Michael Smith 4 * Copyright (c) 2000 BSDi 5 * All rights reserved. 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions 9 * are met: 10 * 1. Redistributions of source code must retain the above copyright 11 * notice, this list of conditions and the following disclaimer. 12 * 2. Redistributions in binary form must reproduce the above copyright 13 * notice, this list of conditions and the following disclaimer in the 14 * documentation and/or other materials provided with the distribution. 15 * 16 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 17 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 20 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 22 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 23 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 24 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 25 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 26 * SUCH DAMAGE. 27 * 28 * from FreeBSD: tweio.h,v 1.1 2000/10/25 06:59:05 msmith Exp 29 */ 30 31 #include <sys/ioccom.h> 32 33 /* 34 * User-space command 35 * 36 * Note that the command's scatter/gather list will be computed by the 37 * driver, and cannot be filled in by the consumer. 38 */ 39 struct twe_usercommand { 40 struct twe_cmd tu_cmd; /* command ready for the controller */ 41 void *tu_data; /* pointer to data in userspace */ 42 size_t tu_size; /* userspace data length */ 43 }; 44 45 #define TWEIO_COMMAND _IOWR('T', 100, struct twe_usercommand) 46 47 /* 48 * Command queue statistics 49 */ 50 #define TWEQ_FREE 0 51 #define TWEQ_BIO 1 52 #define TWEQ_READY 2 53 #define TWEQ_BUSY 3 54 #define TWEQ_COMPLETE 4 55 #define TWEQ_COUNT 5 /* total number of queues */ 56 57 struct twe_qstat { 58 u_int32_t q_length; 59 u_int32_t q_max; 60 }; 61 62 /* 63 * Statistics request 64 */ 65 union twe_statrequest { 66 u_int32_t ts_item; 67 struct twe_qstat ts_qstat; 68 }; 69 70 #define TWEIO_STATS _IOWR('T', 101, union twe_statrequest) 71 72 /* 73 * AEN listen 74 */ 75 #define TWEIO_AEN_POLL _IOR('T', 102, int) 76 #define TWEIO_AEN_WAIT _IOR('T', 103, int) 77 78 /* 79 * Controller parameter access 80 */ 81 struct twe_paramcommand { 82 u_int16_t tp_table_id; 83 u_int8_t tp_param_id; 84 void *tp_data; 85 u_int8_t tp_size; 86 }; 87 88 #define TWEIO_SET_PARAM _IOW('T', 104, struct twe_paramcommand) 89 #define TWEIO_GET_PARAM _IOW('T', 105, struct twe_paramcommand) 90 91 /* 92 * Request a controller soft-reset 93 */ 94 #define TWEIO_RESET _IO('T', 106) 95