/[gxemul]/upstream/0.4.4/src/include/device.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.4.4/src/include/device.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 35 - (hide annotations)
Mon Oct 8 16:21:26 2007 UTC (16 years, 7 months ago) by dpavlin
File MIME type: text/plain
File size: 3145 byte(s)
0.4.4
1 dpavlin 4 #ifndef DEVICE_H
2     #define DEVICE_H
3    
4     /*
5 dpavlin 34 * Copyright (C) 2005-2007 Anders Gavare. All rights reserved.
6 dpavlin 4 *
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 34 * $Id: device.h,v 1.20 2006/12/30 13:31:00 debug Exp $
32 dpavlin 4 *
33     * Device registry. (See device.c for more info.)
34     */
35    
36     #include "misc.h"
37 dpavlin 20 #include "bus_pci.h"
38 dpavlin 4
39     struct machine;
40    
41     struct devinit {
42     struct machine *machine;
43 dpavlin 12 char *name; /* e.g. "cons" */
44     char *name2; /* e.g. "secondary serial port" */
45 dpavlin 4
46 dpavlin 12 uint64_t addr; /* Device base address */
47 dpavlin 20 uint64_t addr2; /* Secondary address (optional) */
48 dpavlin 4 uint64_t len;
49 dpavlin 34
50     /* Old-style IRQ: */
51 dpavlin 4 int irq_nr;
52 dpavlin 34
53     char *interrupt_path;/* Interrupt path: */
54    
55 dpavlin 12 int in_use;
56 dpavlin 4 int addr_mult;
57 dpavlin 20 int pci_little_endian;
58 dpavlin 4
59     void *return_ptr;
60     };
61    
62     struct device_entry {
63     char *name;
64     int (*initf)(struct devinit *);
65     };
66    
67 dpavlin 20 struct pci_entry {
68     char *name;
69     void (*initf)(struct machine *, struct memory *,
70     struct pci_device *);
71     };
72    
73 dpavlin 22 #define DEVINIT(name) int devinit_ ## name (struct devinit *devinit)
74    
75 dpavlin 4 /* autodev.c: (built automatically in the devices/ directory): */
76     void autodev_init(void);
77    
78     /* device.c: */
79     int device_register(char *name, int (*initf)(struct devinit *));
80     struct device_entry *device_lookup(char *name);
81     int device_unregister(char *name);
82     void *device_add(struct machine *machine, char *name_and_params);
83     void device_dumplist(void);
84     void device_set_exit_on_error(int exit_on_error);
85     void device_init(void);
86    
87 dpavlin 20 /* PCI stuff: (TODO: move somewhere else?) */
88     int pci_register(char *name, void (*initf)(struct machine *, struct memory *,
89     struct pci_device *));
90 dpavlin 22 void (*pci_lookup_initf(const char *name))(struct machine *machine,
91 dpavlin 20 struct memory *mem, struct pci_device *pd);
92 dpavlin 4
93 dpavlin 20 #endif /* DEVICE_H */

  ViewVC Help
Powered by ViewVC 1.1.26