tdfx_vars.h revision 61931
165123Speter/*
265123Speter * Copyright (c) 2000 by Coleman Kane <cokane@FreeBSD.org>
365123Speter * All rights reserved.
465123Speter *
565123Speter * Redistribution and use in source and binary forms, with or without
665123Speter * modification, are permitted provided that the following conditions
765123Speter * are met:
865123Speter * 1. Redistributions of source code must retain the above copyright
965123Speter *    notice, this list of conditions and the following disclaimer.
1065123Speter * 2. Redistributions in binary form must reproduce the above copyright
1165123Speter *    notice, this list of conditions and the following disclaimer in the
1265123Speter *    documentation and/or other materials provided with the distribution.
1365123Speter * 3. All advertising materials mentioning features or use of this software
1465123Speter *    must display the following acknowledgement:
1565123Speter *      This product includes software developed by Gardner Buchanan.
1665123Speter * 4. The name of Gardner Buchanan may not be used to endorse or promote
1765123Speter *    products derived from this software without specific prior written
1865123Speter *    permission.
1965123Speter *
2065123Speter * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
2165123Speter * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
2265123Speter * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
2365123Speter * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
2465123Speter * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
2565123Speter * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
2665123Speter * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
2765123Speter * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
2865123Speter * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
2965123Speter * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3065177Speter *
3165123Speter *   $FreeBSD: head/sys/dev/tdfx/tdfx_vars.h 61931 2000-06-22 05:37:17Z cokane $
3265123Speter */
3365123Speter
3465123Speter/* tdfx_vars.h -- constants and structs used in the tdfx driver
3565123Speter	Copyright (C) 2000 by Coleman Kane <cokane@FreeBSD.org>
3665123Speter*/
3765123Speter#ifndef	TDFX_VARS_H
3865123Speter#define	TDFX_VARS_H
3965123Speter
4065123Speter#include <sys/memrange.h>
4165123Speter#include <sys/param.h>
4265123Speter#include <sys/bus_private.h>
4365123Speter#include <sys/bus.h>
4465123Speter#include <sys/cdefs.h>
4565123Speter
4665123Speter#define	CDEV_MAJOR	107
4765123Speter#define  PCI_DEVICE_ALLIANCE_AT3D	0x643d1142
4865123Speter#define	PCI_DEVICE_3DFX_VOODOO1		0x0000121a
4965123Speter#define	PCI_DEVICE_3DFX_VOODOO2		0x0002121a
5065177Speter#define	PCI_DEVICE_3DFX_BANSHEE		0x0003121a
5165123Speter#define	PCI_DEVICE_3DFX_VOODOO3		0x0005121a
5265123Speter
5365123Speter#define PCI_VENDOR_ID_FREEBSD 0x0
5465123Speter#define PCI_DEVICE_ID_FREEBSD 0x2
5565123Speter#define PCI_COMMAND_FREEBSD 0x4
5665123Speter#define PCI_REVISION_ID_FREEBSD 0x8
5765123Speter#define PCI_BASE_ADDRESS_0_FREEBSD 0x10
5865123Speter#define SST1_PCI_SPECIAL1_FREEBSD 0x40
5965123Speter#define SST1_PCI_SPECIAL2_FREEBSD 0x44
6065123Speter#define SST1_PCI_SPECIAL3_FREEBSD 0x48
6165123Speter#define SST1_PCI_SPECIAL4_FREEBSD 0x54
6265123Speter
6365123Speter#define VGA_INPUT_STATUS_1C 0x3DA
6465123Speter#define VGA_MISC_OUTPUT_READ 0x3cc
6565123Speter#define VGA_MISC_OUTPUT_WRITE 0x3c2
6665123Speter#define SC_INDEX 0x3c4
6765126Speter#define SC_DATA  0x3c5
6865123Speter
6965123Speter#define PCI_MAP_REG_START 0x10
7065123Speter#define UNIT(m)	(m & 0xf)
7165123Speter
7265123Speter/* IOCTL Calls */
7365123Speter#define	TDFX_IOC_TYPE_PIO		0
7465123Speter#define	TDFX_IOC_TYPE_QUERY	'3'
7565123Speter#define	TDFX_IOC_QRY_BOARDS	2
7665123Speter#define	TDFX_IOC_QRY_FETCH	3
7765123Speter#define	TDFX_IOC_QRY_UPDATE	4
7865123Speter
7965123Speterstruct tdfx_softc {
8065123Speter	int cardno;
8165123Speter	vm_offset_t addr;
8265123Speter	struct resource *memrange, *piorange;
8365123Speter	int memrid, piorid;
8465123Speter	long range;
8565123Speter	int vendor;
8665123Speter	int type;
8765123Speter	int addr0;
8865123Speter	unsigned char bus;
8965123Speter	unsigned char dv;
9065123Speter	struct file *curFile;
9165123Speter	device_t dev;
9265123Speter	struct mem_range_desc mrdesc;
9365123Speter	int busy;
9465123Speter};
9565123Speter
9665123Speterstruct tdfx_pio_data {
9765123Speter	short port;
9865123Speter	short size;
9965123Speter	int device;
10065123Speter	void *value;
10165123Speter};
10265123Speter
10365123Speter#endif /* TDFX_VARS_H */
10465127Speter