/[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 4 by dpavlin, Mon Oct 8 16:18:00 2007 UTC revision 34 by dpavlin, Mon Oct 8 16:21:17 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.7 2005/02/26 16:53:32 debug Exp $   *  $Id: device.h,v 1.20 2006/12/30 13:31:00 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"
37    #include "bus_pci.h"
38    
39  struct machine;  struct machine;
40    
41  struct devinit {  struct devinit {
42          struct machine  *machine;          struct machine  *machine;
43          char            *name;          char            *name;          /*  e.g. "cons"  */
44            char            *name2;         /*  e.g. "secondary serial port"  */
45    
46          uint64_t        addr;          uint64_t        addr;           /*  Device base address  */
47            uint64_t        addr2;          /*  Secondary address (optional)  */
48          uint64_t        len;          uint64_t        len;
49    
50            /*  Old-style IRQ:  */
51          int             irq_nr;          int             irq_nr;
52    
53            char            *interrupt_path;/*  Interrupt path:  */
54    
55            int             in_use;
56          int             addr_mult;          int             addr_mult;
57            int             pci_little_endian;
58    
59          void            *return_ptr;          void            *return_ptr;
60  };  };
# Line 54  struct device_entry { Line 64  struct device_entry {
64          int             (*initf)(struct devinit *);          int             (*initf)(struct devinit *);
65  };  };
66    
67    struct pci_entry {
68            char            *name;
69            void            (*initf)(struct machine *, struct memory *,
70                                struct pci_device *);
71    };
72    
73    #define DEVINIT(name)           int devinit_ ## name (struct devinit *devinit)
74    
75  /*  autodev.c: (built automatically in the devices/ directory):  */  /*  autodev.c: (built automatically in the devices/ directory):  */
76  void autodev_init(void);  void autodev_init(void);
77    
# Line 66  void device_dumplist(void); Line 84  void device_dumplist(void);
84  void device_set_exit_on_error(int exit_on_error);  void device_set_exit_on_error(int exit_on_error);
85  void device_init(void);  void device_init(void);
86    
87    /*  PCI stuff:  (TODO: move somewhere else?)  */
88    int pci_register(char *name, void (*initf)(struct machine *, struct memory *,
89            struct pci_device *));
90    void (*pci_lookup_initf(const char *name))(struct machine *machine,
91            struct memory *mem, struct pci_device *pd);
92    
93  #endif  /*  CONSOLE_H  */  #endif  /*  DEVICE_H  */

Legend:
Removed from v.4  
changed lines
  Added in v.34

  ViewVC Help
Powered by ViewVC 1.1.26