[BACK]Return to vga_pcivar.h CVS log [TXT][DIR] Up to [local] / sys / dev / pci

Annotation of sys/dev/pci/vga_pcivar.h, Revision 1.1.1.1

1.1       nbrk        1: /* $OpenBSD: vga_pcivar.h,v 1.7 2006/11/27 18:04:28 gwk Exp $ */
                      2: /* $NetBSD: vga_pcivar.h,v 1.1 1998/03/22 15:16:19 drochner Exp $ */
                      3:
                      4: /*
                      5:  * Copyright (c) 1995, 1996 Carnegie-Mellon University.
                      6:  * All rights reserved.
                      7:  *
                      8:  * Author: Chris G. Demetriou
                      9:  *
                     10:  * Permission to use, copy, modify and distribute this software and
                     11:  * its documentation is hereby granted, provided that both the copyright
                     12:  * notice and this permission notice appear in all copies of the
                     13:  * software, derivative works or modified versions, and any portions
                     14:  * thereof, and that both notices appear in supporting documentation.
                     15:  *
                     16:  * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
                     17:  * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND
                     18:  * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
                     19:  *
                     20:  * Carnegie Mellon requests users of this software to return to
                     21:  *
                     22:  *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
                     23:  *  School of Computer Science
                     24:  *  Carnegie Mellon University
                     25:  *  Pittsburgh PA 15213-3890
                     26:  *
                     27:  * any improvements or extensions that they make and grant Carnegie the
                     28:  * rights to redistribute these changes.
                     29:  */
                     30:
                     31: #ifndef _PCI_VGA_PCIVAR_H_
                     32: #define _PCI_VGA_PCIVAR_H_
                     33:
                     34: #define        DEVICE_IS_VGA_PCI(class, id)                                    \
                     35:            (((PCI_CLASS(class) == PCI_CLASS_DISPLAY &&                 \
                     36:              PCI_SUBCLASS(class) == PCI_SUBCLASS_DISPLAY_VGA) ||       \
                     37:             (PCI_CLASS(class) == PCI_CLASS_PREHISTORIC &&              \
                     38:              PCI_SUBCLASS(class) == PCI_SUBCLASS_PREHISTORIC_VGA)) ? 1 : 0)
                     39:
                     40: enum agp_acquire_state {
                     41:        AGP_ACQUIRE_FREE,
                     42:        AGP_ACQUIRE_USER,
                     43:        AGP_ACQUIRE_KERNEL
                     44: };
                     45:
                     46: /*
                     47:  * Data structure to describe an AGP memory allocation.
                     48:  */
                     49: TAILQ_HEAD(agp_memory_list, agp_memory);
                     50: struct agp_memory {
                     51:        TAILQ_ENTRY(agp_memory) am_link;        /* wiring for the tailq */
                     52:        int             am_id;                  /* unique id for block */
                     53:        vsize_t         am_size;                /* number of bytes allocated */
                     54:        int             am_type;                /* chipset specific type */
                     55:        off_t           am_offset;              /* page offset if bound */
                     56:        int             am_is_bound;            /* non-zero if bound */
                     57:        bus_addr_t      am_physical;
                     58:        caddr_t         am_virtual;
                     59:        bus_dmamap_t    am_dmamap;
                     60:        int             am_nseg;
                     61:        bus_dma_segment_t *am_dmaseg;
                     62: };
                     63:
                     64: struct vga_pci_softc {
                     65:        struct device sc_dev;
                     66:
                     67: #if 0
                     68:        struct vga_config *sc_vc;       /* VGA configuration */
                     69: #endif
                     70: #ifdef VESAFB
                     71:        int sc_width;
                     72:        int sc_height;
                     73:        int sc_depth;
                     74:        int sc_linebytes;
                     75:        u_int32_t sc_base;
                     76:        int sc_mode;                    /* WSDISPLAY_MODE_EMUL or _DUMBFB */
                     77:        int sc_textmode;                /* original VESA text mode */
                     78:        int sc_gfxmode;                 /* VESA graphics mode */
                     79:        u_char sc_cmap_red[256];        /* saved color map */
                     80:        u_char sc_cmap_green[256];
                     81:        u_char sc_cmap_blue[256];
                     82:
                     83: #endif
                     84: #ifdef PCIAGP
                     85:        /* agp stuff */
                     86:        bus_space_tag_t sc_bt, sc_memt;
                     87:        bus_space_handle_t sc_bh;
                     88:        bus_addr_t sc_apaddr;
                     89:        bus_size_t sc_apsize;
                     90:        bus_dma_tag_t sc_dmat;
                     91:        struct lock sc_lock;            /* lock for access to GATT */
                     92:        pcitag_t sc_pcitag;             /* PCI tag, in case we need it. */
                     93:        pcireg_t sc_id;
                     94:        pci_chipset_tag_t sc_pc;
                     95:
                     96:        struct agp_methods *sc_methods;
                     97:        void    *sc_chipc;              /* chipset-dependent state */
                     98:
                     99:        int sc_opened;
                    100:        int sc_capoff;
                    101:        int sc_apflags;
                    102:        int sc_nextid;  /* next memory block id */
                    103:
                    104:        u_int32_t               sc_maxmem;      /* allocation upper bound */
                    105:        u_int32_t               sc_allocated;   /* amount allocated */
                    106:        enum agp_acquire_state  sc_state;
                    107:        struct agp_memory_list  sc_memory;      /* list of allocated memory */
                    108: #endif
                    109: };
                    110:
                    111: #ifdef PCIAGP
                    112: struct agp_product {
                    113:        int     ap_vendor;
                    114:        int     ap_product;
                    115:        int     (*ap_attach)(struct vga_pci_softc *,
                    116:                     struct pci_attach_args *, struct pci_attach_args *);
                    117: };
                    118: /* MD-defined */
                    119: extern const struct agp_product agp_products[];
                    120:
                    121: void agp_attach(struct device *, struct device *, void *);
                    122: paddr_t agp_mmap(void *, off_t, int);
                    123: int agp_ioctl(void *, u_long, caddr_t, int, struct proc *);
                    124: #endif /* PCIAGP */
                    125:
                    126: int vga_pci_cnattach(bus_space_tag_t, bus_space_tag_t,
                    127:                          pci_chipset_tag_t, int, int, int);
                    128:
                    129: #ifdef VESAFB
                    130: int vesafb_find_mode(struct vga_pci_softc *, int, int, int);
                    131: void vesafb_set_mode(struct vga_pci_softc *, int);
                    132: int vesafb_get_mode(struct vga_pci_softc *);
                    133: int vesafb_get_supported_depth(struct vga_pci_softc *);
                    134: #endif
                    135:
                    136: #endif /* _PCI_VGA_PCIVAR_H_ */

CVSweb