Subversion Repositories HelenOS-historic

Rev

Rev 191 | Rev 207 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 191 Rev 193
Line 45... Line 45...
45
    __u32 nargs;                  /**< Number of in arguments */
45
    __u32 nargs;                  /**< Number of in arguments */
46
    __u32 nret;                   /**< Number of out arguments */
46
    __u32 nret;                   /**< Number of out arguments */
47
    ofw_arg_t args[MAX_OFW_ARGS]; /**< List of arguments */
47
    ofw_arg_t args[MAX_OFW_ARGS]; /**< List of arguments */
48
} ofw_args_t;
48
} ofw_args_t;
49
 
49
 
50
/** OpenFirmware device address range structure
-
 
51
 *
-
 
52
 */
-
 
53
typedef struct {
-
 
54
    __u32 space;
-
 
55
    __u32 address;
-
 
56
    __u32 size;
-
 
57
} address_range_t;
-
 
58
 
-
 
59
/** OpenFirmware device interrupt structure
-
 
60
 *
-
 
61
 */
-
 
62
typedef struct {
-
 
63
    __u32 line;  /**< Interrupt number */
-
 
64
    __u32 flags; /**< Interrupt flags/logic */
-
 
65
} interrupt_info_t;
-
 
66
 
-
 
67
/** OpenFirmware property structure
-
 
68
 *
-
 
69
 */
-
 
70
typedef struct property_t {
-
 
71
    char *name;              /**< Property name */
-
 
72
    __u32 length;            /**< Value length */
-
 
73
    char *value;             /**< Property value */
-
 
74
    struct property_t *next; /**< Next property in list */
-
 
75
} property_t;
-
 
76
 
-
 
77
/** OpenFirmware device descritor
-
 
78
 *
-
 
79
 */
-
 
80
typedef struct device_node_t {
-
 
81
    char *name;                     /**< Device name */
-
 
82
    char *type;                     /**< Device type */
-
 
83
    phandle node;                   /**< Device handle */
-
 
84
   
-
 
85
    __u32 n_addrs;                  /**< Number of address ranges */
-
 
86
    address_range_t *addrs;         /**< Address ranges list */
-
 
87
   
-
 
88
    __u32 n_intrs;                  /**< Number of interrupts */
-
 
89
    interrupt_info_t *intrs;        /**< Interrupts list */
-
 
90
   
-
 
91
    char *full_name;                /**< Device full name */
-
 
92
   
-
 
93
    property_t *properties;         /**< Device properties */
-
 
94
   
-
 
95
    struct device_node_t *parent;   /**< Parent device */
-
 
96
    struct device_node_t *child;    /**< First child in tree */
-
 
97
    struct device_node_t *sibling;  /**< Next device on tree level */
-
 
98
    struct device_node_t *next;     /**< Next device of the same type */
-
 
99
    struct device_node_t *next_all; /**< Next device in list of all nodes */
-
 
100
} device_node_t;
-
 
101
 
-
 
102
typedef void (*ofw_entry)(ofw_args_t *);
50
typedef void (*ofw_entry)(ofw_args_t *);
103
 
51
 
104
extern ofw_entry ofw;
52
extern ofw_entry ofw;
105
 
53
 
106
extern void ofw_init(void);
54
extern void ofw_init(void);