/[gxemul]/upstream/0.3.6.1/src/include/bus_pci.h
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Annotation of /upstream/0.3.6.1/src/include/bus_pci.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 17 - (hide annotations)
Mon Oct 8 16:19:05 2007 UTC (16 years, 9 months ago) by dpavlin
File MIME type: text/plain
File size: 3788 byte(s)
0.3.6.1
1 dpavlin 4 #ifndef PCI_BUS_H
2     #define PCI_BUS_H
3    
4     /*
5     * Copyright (C) 2004-2005 Anders Gavare. 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 are met:
9     *
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     * 3. The name of the author may not be used to endorse or promote products
16     * derived from this software without specific prior written permission.
17     *
18     * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
19     * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20     * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21     * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
22     * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23     * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24     * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25     * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26     * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27     * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28     * SUCH DAMAGE.
29     *
30     *
31 dpavlin 14 * $Id: bus_pci.h,v 1.17 2005/10/03 01:07:48 debug Exp $
32 dpavlin 4 */
33    
34     #include "misc.h"
35    
36     struct machine;
37     struct memory;
38    
39     struct pci_device {
40     int bus, device, function;
41    
42     void (*init)(struct machine *, struct memory *mem);
43     uint32_t (*read_register)(int reg);
44    
45     struct pci_device *next;
46     };
47    
48     struct pci_data {
49     int irq_nr;
50     uint32_t pci_addr;
51     int last_was_write_ffffffff;
52    
53     struct pci_device *first_device;
54     };
55    
56     #define BUS_PCI_ADDR 0xcf8
57     #define BUS_PCI_DATA 0xcfc
58    
59    
60     #include "pcireg.h"
61    
62    
63     /* bus_pci.c: */
64     int bus_pci_access(struct cpu *cpu, struct memory *mem, uint64_t relative_addr, uint64_t *data, int writeflag, struct pci_data *pci_data);
65     void bus_pci_add(struct machine *machine, struct pci_data *pci_data, struct memory *mem,
66     int bus, int device, int function,
67     void (*init)(struct machine *, struct memory *),
68     uint32_t (*read_register)(int reg));
69     struct pci_data *bus_pci_init(int irq_nr);
70    
71    
72     /*
73     * Individual devices:
74     */
75    
76 dpavlin 14 /* ali_m1543: */
77     uint32_t pci_ali_m1543_rr(int reg);
78     void pci_ali_m1543_init(struct machine *, struct memory *mem);
79     uint32_t pci_ali_m5229_rr(int reg);
80     void pci_ali_m5229_init(struct machine *, struct memory *mem);
81    
82 dpavlin 4 /* ahc: */
83     uint32_t pci_ahc_rr(int reg);
84     void pci_ahc_init(struct machine *, struct memory *mem);
85    
86     /* dec21030: */
87     uint32_t pci_dec21030_rr(int reg);
88     void pci_dec21030_init(struct machine *, struct memory *mem);
89    
90     /* dec21143: */
91     uint32_t pci_dec21143_rr(int reg);
92     void pci_dec21143_init(struct machine *, struct memory *mem);
93    
94 dpavlin 14 /* igsfb: */
95     uint32_t pci_igsfb_rr(int reg);
96     void pci_igsfb_init(struct machine *, struct memory *mem);
97    
98     /* s3_virge: */
99     uint32_t pci_s3_virge_rr(int reg);
100     void pci_s3_virge_init(struct machine *, struct memory *mem);
101    
102     /* symphony_83c553: */
103     uint32_t pci_symphony_82c105_rr(int reg);
104     void pci_symphony_82c105_init(struct machine *, struct memory *mem);
105     uint32_t pci_symphony_83c553_rr(int reg);
106     void pci_symphony_83c553_init(struct machine *, struct memory *mem);
107    
108 dpavlin 4 /* vt82c586: */
109     uint32_t pci_vt82c586_isa_rr(int reg);
110     void pci_vt82c586_isa_init(struct machine *, struct memory *mem);
111     uint32_t pci_vt82c586_ide_rr(int reg);
112     void pci_vt82c586_ide_init(struct machine *, struct memory *mem);
113    
114    
115     #endif /* PCI_BUS_H */

  ViewVC Help
Powered by ViewVC 1.1.26