brintos

brintos / linux-shallow public Read only

0
0
Text · 3.8 KiB · 401827b Raw
178 lines · c
1/*2 * Copyright (c) 2003-2008 Chelsio, Inc. All rights reserved.3 *4 * This software is available to you under a choice of one of two5 * licenses.  You may choose to be licensed under the terms of the GNU6 * General Public License (GPL) Version 2, available from the file7 * COPYING in the main directory of this source tree, or the8 * OpenIB.org BSD license below:9 *10 *     Redistribution and use in source and binary forms, with or11 *     without modification, are permitted provided that the following12 *     conditions are met:13 *14 *      - Redistributions of source code must retain the above15 *        copyright notice, this list of conditions and the following16 *        disclaimer.17 *18 *      - Redistributions in binary form must reproduce the above19 *        copyright notice, this list of conditions and the following20 *        disclaimer in the documentation and/or other materials21 *        provided with the distribution.22 *23 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,24 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF25 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND26 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS27 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN28 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN29 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE30 * SOFTWARE.31 */32#ifndef __CHIOCTL_H__33#define __CHIOCTL_H__34 35/*36 * Ioctl commands specific to this driver.37 */38enum {39	CHELSIO_GETMTUTAB 		= 1029,40	CHELSIO_SETMTUTAB 		= 1030,41	CHELSIO_SET_PM 			= 1032,42	CHELSIO_GET_PM			= 1033,43	CHELSIO_GET_MEM			= 1038,44	CHELSIO_LOAD_FW			= 1041,45	CHELSIO_SET_TRACE_FILTER	= 1044,46	CHELSIO_SET_QSET_PARAMS		= 1045,47	CHELSIO_GET_QSET_PARAMS		= 1046,48	CHELSIO_SET_QSET_NUM		= 1047,49	CHELSIO_GET_QSET_NUM		= 1048,50};51 52struct ch_reg {53	uint32_t cmd;54	uint32_t addr;55	uint32_t val;56};57 58struct ch_cntxt {59	uint32_t cmd;60	uint32_t cntxt_type;61	uint32_t cntxt_id;62	uint32_t data[4];63};64 65/* context types */66enum { CNTXT_TYPE_EGRESS, CNTXT_TYPE_FL, CNTXT_TYPE_RSP, CNTXT_TYPE_CQ };67 68struct ch_desc {69	uint32_t cmd;70	uint32_t queue_num;71	uint32_t idx;72	uint32_t size;73	uint8_t data[128];74};75 76struct ch_mem_range {77	uint32_t cmd;78	uint32_t mem_id;79	uint32_t addr;80	uint32_t len;81	uint32_t version;82	uint8_t buf[];83};84 85struct ch_qset_params {86	uint32_t cmd;87	uint32_t qset_idx;88	int32_t txq_size[3];89	int32_t rspq_size;90	int32_t fl_size[2];91	int32_t intr_lat;92	int32_t polling;93	int32_t lro;94	int32_t cong_thres;95	int32_t  vector;96	int32_t  qnum;97};98 99struct ch_pktsched_params {100	uint32_t cmd;101	uint8_t sched;102	uint8_t idx;103	uint8_t min;104	uint8_t max;105	uint8_t binding;106};107 108#ifndef TCB_SIZE109# define TCB_SIZE   128110#endif111 112/* TCB size in 32-bit words */113#define TCB_WORDS (TCB_SIZE / 4)114 115enum { MEM_CM, MEM_PMRX, MEM_PMTX };	/* ch_mem_range.mem_id values */116 117struct ch_mtus {118	uint32_t cmd;119	uint32_t nmtus;120	uint16_t mtus[NMTUS];121};122 123struct ch_pm {124	uint32_t cmd;125	uint32_t tx_pg_sz;126	uint32_t tx_num_pg;127	uint32_t rx_pg_sz;128	uint32_t rx_num_pg;129	uint32_t pm_total;130};131 132struct ch_tcam {133	uint32_t cmd;134	uint32_t tcam_size;135	uint32_t nservers;136	uint32_t nroutes;137	uint32_t nfilters;138};139 140struct ch_tcb {141	uint32_t cmd;142	uint32_t tcb_index;143	uint32_t tcb_data[TCB_WORDS];144};145 146struct ch_tcam_word {147	uint32_t cmd;148	uint32_t addr;149	uint32_t buf[3];150};151 152struct ch_trace {153	uint32_t cmd;154	uint32_t sip;155	uint32_t sip_mask;156	uint32_t dip;157	uint32_t dip_mask;158	uint16_t sport;159	uint16_t sport_mask;160	uint16_t dport;161	uint16_t dport_mask;162	uint32_t vlan:12;163	uint32_t vlan_mask:12;164	uint32_t intf:4;165	uint32_t intf_mask:4;166	uint8_t proto;167	uint8_t proto_mask;168	uint8_t invert_match:1;169	uint8_t config_tx:1;170	uint8_t config_rx:1;171	uint8_t trace_tx:1;172	uint8_t trace_rx:1;173};174 175#define SIOCCHIOCTL SIOCDEVPRIVATE176 177#endif178