/[gxemul]/trunk/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

Diff of /trunk/src/include/device.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 20 by dpavlin, Mon Oct 8 16:19:23 2007 UTC revision 42 by dpavlin, Mon Oct 8 16:22:32 2007 UTC
# Line 2  Line 2 
2  #define DEVICE_H  #define DEVICE_H
3    
4  /*  /*
5   *  Copyright (C) 2005  Anders Gavare.  All rights reserved.   *  Copyright (C) 2005-2007  Anders Gavare.  All rights reserved.
6   *   *
7   *  Redistribution and use in source and binary forms, with or without   *  Redistribution and use in source and binary forms, with or without
8   *  modification, are permitted provided that the following conditions are met:   *  modification, are permitted provided that the following conditions are met:
# Line 28  Line 28 
28   *  SUCH DAMAGE.   *  SUCH DAMAGE.
29   *   *
30   *   *
31   *  $Id: device.h,v 1.14 2005/11/22 16:26:38 debug Exp $   *  $Id: device.h,v 1.21 2007/06/05 07:49:42 debug Exp $
32   *   *
33   *  Device registry.  (See device.c for more info.)   *  Device registry.  (See device.c for more info.)
34   */   */
35    
36  #include "misc.h"  #include "misc.h"
 #include "bus_pci.h"  
37    
38  struct machine;  struct machine;
39    struct pci_device;
40    
41    
42  struct devinit {  struct devinit {
43          struct machine  *machine;          struct machine  *machine;
44    
45          char            *name;          /*  e.g. "cons"  */          char            *name;          /*  e.g. "cons"  */
46          char            *name2;         /*  e.g. "secondary serial port"  */          char            *name2;         /*  e.g. "secondary serial port"  */
47    
48          uint64_t        addr;           /*  Device base address  */          uint64_t        addr;           /*  Device base address  */
49          uint64_t        addr2;          /*  Secondary address (optional)  */          uint64_t        addr2;          /*  Secondary address (optional)  */
50          uint64_t        len;          uint64_t        len;
51          int             irq_nr;  
52            char            *interrupt_path;
53    
54          int             in_use;          int             in_use;
55          int             addr_mult;          int             addr_mult;
56          int             pci_little_endian;          int             pci_little_endian;
# Line 65  struct pci_entry { Line 69  struct pci_entry {
69                              struct pci_device *);                              struct pci_device *);
70  };  };
71    
72    #define DEVINIT(name)           int devinit_ ## name (struct devinit *devinit)
73    
74  /*  autodev.c: (built automatically in the devices/ directory):  */  /*  autodev.c: (built automatically in the devices/ directory):  */
75  void autodev_init(void);  void autodev_init(void);
76    
# Line 80  void device_init(void); Line 86  void device_init(void);
86  /*  PCI stuff:  (TODO: move somewhere else?)  */  /*  PCI stuff:  (TODO: move somewhere else?)  */
87  int pci_register(char *name, void (*initf)(struct machine *, struct memory *,  int pci_register(char *name, void (*initf)(struct machine *, struct memory *,
88          struct pci_device *));          struct pci_device *));
89  void (*pci_lookup_initf(char *name))(struct machine *machine,  void (*pci_lookup_initf(const char *name))(struct machine *machine,
90          struct memory *mem, struct pci_device *pd);          struct memory *mem, struct pci_device *pd);
91    
92  #endif  /*  DEVICE_H  */  #endif  /*  DEVICE_H  */

Legend:
Removed from v.20  
changed lines
  Added in v.42

  ViewVC Help
Powered by ViewVC 1.1.26