tdfx_vars.h revision 61912
1/* tdfx_vars.h -- constants and structs used in the tdfx driver
2	Copyright (C) 2000 by Coleman Kane <cokane@pohl.ececs.uc.edu>
3*/
4#ifndef	TDFX_VARS_H
5#define	TDFX_VARS_H
6
7#include <sys/memrange.h>
8
9#define	CDEV_MAJOR	107
10#define  PCI_DEVICE_ALLIANCE_AT3D	0x643d1142
11#define	PCI_DEVICE_3DFX_VOODOO1		0x0000121a
12#define	PCI_DEVICE_3DFX_VOODOO2		0x0002121a
13#define	PCI_DEVICE_3DFX_BANSHEE		0x0003121a
14#define	PCI_DEVICE_3DFX_VOODOO3		0x0005121a
15
16#define PCI_VENDOR_ID_FREEBSD 0x0
17#define PCI_DEVICE_ID_FREEBSD 0x2
18#define PCI_COMMAND_FREEBSD 0x4
19#define PCI_REVISION_ID_FREEBSD 0x8
20#define PCI_BASE_ADDRESS_0_FREEBSD 0x10
21#define SST1_PCI_SPECIAL1_FREEBSD 0x40
22#define SST1_PCI_SPECIAL2_FREEBSD 0x44
23#define SST1_PCI_SPECIAL3_FREEBSD 0x48
24#define SST1_PCI_SPECIAL4_FREEBSD 0x54
25
26#define VGA_INPUT_STATUS_1C 0x3DA
27#define VGA_MISC_OUTPUT_READ 0x3cc
28#define VGA_MISC_OUTPUT_WRITE 0x3c2
29#define SC_INDEX 0x3c4
30#define SC_DATA  0x3c5
31
32#define PCI_MAP_REG_START 0x10
33#define UNIT(m)	(m & 0xf)
34
35/* IOCTL Calls */
36#define	TDFX_IOC_TYPE_PIO		0
37#define	TDFX_IOC_TYPE_QUERY	'3'
38#define	TDFX_IOC_QRY_BOARDS	2
39#define	TDFX_IOC_QRY_FETCH	3
40#define	TDFX_IOC_QRY_UPDATE	4
41#include <sys/param.h>
42#include <sys/bus_private.h>
43#include <sys/bus.h>
44#include <sys/cdefs.h>
45
46struct tdfx_softc {
47	int cardno;
48	vm_offset_t addr;
49	struct resource *memrange, *piorange;
50	int memrid, piorid;
51	long range;
52	int vendor;
53	int type;
54	int addr0;
55	unsigned char bus;
56	unsigned char dv;
57	struct file *curFile;
58	device_t dev;
59	struct mem_range_desc mrdesc;
60	int busy;
61};
62
63struct tdfx_pio_data {
64	short port;
65	short size;
66	int device;
67	void *value;
68};
69
70#endif /* TDFX_VARS_H */
71