2007-05-26 06:49:59 +08:00
|
|
|
#ifndef _SPARC64_MDESC_H
|
|
|
|
#define _SPARC64_MDESC_H
|
|
|
|
|
|
|
|
#include <linux/types.h>
|
|
|
|
#include <asm/prom.h>
|
|
|
|
|
2007-07-13 04:47:50 +08:00
|
|
|
struct mdesc_handle;
|
|
|
|
|
|
|
|
/* Machine description operations are to be surrounded by grab and
|
|
|
|
* release calls. The mdesc_handle returned from the grab is
|
|
|
|
* the first argument to all of the operational calls that work
|
|
|
|
* on mdescs.
|
|
|
|
*/
|
|
|
|
extern struct mdesc_handle *mdesc_grab(void);
|
|
|
|
extern void mdesc_release(struct mdesc_handle *);
|
|
|
|
|
|
|
|
#define MDESC_NODE_NULL (~(u64)0)
|
|
|
|
|
|
|
|
extern u64 mdesc_node_by_name(struct mdesc_handle *handle,
|
|
|
|
u64 from_node, const char *name);
|
|
|
|
#define mdesc_for_each_node_by_name(__hdl, __node, __name) \
|
|
|
|
for (__node = mdesc_node_by_name(__hdl, MDESC_NODE_NULL, __name); \
|
|
|
|
(__node) != MDESC_NODE_NULL; \
|
|
|
|
__node = mdesc_node_by_name(__hdl, __node, __name))
|
|
|
|
|
|
|
|
extern const void *mdesc_get_property(struct mdesc_handle *handle,
|
|
|
|
u64 node, const char *name, int *lenp);
|
|
|
|
|
|
|
|
#define MDESC_ARC_TYPE_FWD "fwd"
|
|
|
|
#define MDESC_ARC_TYPE_BACK "back"
|
|
|
|
|
|
|
|
extern u64 mdesc_next_arc(struct mdesc_handle *handle, u64 from,
|
|
|
|
const char *arc_type);
|
|
|
|
#define mdesc_for_each_arc(__arc, __hdl, __node, __type) \
|
|
|
|
for (__arc = mdesc_next_arc(__hdl, __node, __type); \
|
|
|
|
(__arc) != MDESC_NODE_NULL; \
|
|
|
|
__arc = mdesc_next_arc(__hdl, __arc, __type))
|
|
|
|
|
|
|
|
extern u64 mdesc_arc_target(struct mdesc_handle *hp, u64 arc);
|
|
|
|
|
|
|
|
extern const char *mdesc_node_name(struct mdesc_handle *hp, u64 node);
|
|
|
|
|
|
|
|
extern void mdesc_update(void);
|
2007-05-26 06:49:59 +08:00
|
|
|
|
|
|
|
extern void sun4v_mdesc_init(void);
|
|
|
|
|
|
|
|
#endif
|