diff options
author | Jag Raman <jag.raman@oracle.com> | 2017-06-23 14:58:32 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-06-25 13:43:12 -0700 |
commit | 411cb4a0b3b12833731abc71059a7eeb04dc8477 (patch) | |
tree | e7ce3d812c3753b21f13a4f2e7b1d727aab156ab /arch/sparc/include/asm/mdesc.h | |
parent | 01b7a471382c529f60f5965ecfed9a14bfccf1ab (diff) | |
download | linux-411cb4a0b3b12833731abc71059a7eeb04dc8477.tar.gz linux-411cb4a0b3b12833731abc71059a7eeb04dc8477.tar.bz2 linux-411cb4a0b3b12833731abc71059a7eeb04dc8477.zip |
sparc64: expand MDESC interface
Add the following two APIs to Machine Description (MDESC)
- mdesc_get_node: Searches for a node in the Machine
Description tree based on given information about
that node.
- mdesc_get_node_info: Retrieves information about a
given node.
Signed-off-by: Jagannathan Raman <jag.raman@oracle.com>
Reviewed-by: Liam Merwick <liam.merwick@oracle.com>
Reviewed-by: Shannon Nelson <shannon.nelson@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc/include/asm/mdesc.h')
-rw-r--r-- | arch/sparc/include/asm/mdesc.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/arch/sparc/include/asm/mdesc.h b/arch/sparc/include/asm/mdesc.h index aebeb88f70db..68d19909d1cd 100644 --- a/arch/sparc/include/asm/mdesc.h +++ b/arch/sparc/include/asm/mdesc.h @@ -16,6 +16,7 @@ struct mdesc_handle *mdesc_grab(void); void mdesc_release(struct mdesc_handle *); #define MDESC_NODE_NULL (~(u64)0) +#define MDESC_MAX_STR_LEN 256 u64 mdesc_node_by_name(struct mdesc_handle *handle, u64 from_node, const char *name); @@ -71,6 +72,22 @@ struct mdesc_notifier_client { void mdesc_register_notifier(struct mdesc_notifier_client *client); +union md_node_info { + struct vdev_port { + u64 id; /* id */ + u64 parent_cfg_hdl; /* parent config handle */ + const char *name; /* name (property) */ + } vdev_port; + struct ds_port { + u64 id; /* id */ + } ds_port; +}; + +u64 mdesc_get_node(struct mdesc_handle *hp, const char *node_name, + union md_node_info *node_info); +int mdesc_get_node_info(struct mdesc_handle *hp, u64 node, + const char *node_name, union md_node_info *node_info); + void mdesc_fill_in_cpu_data(cpumask_t *mask); void mdesc_populate_present_mask(cpumask_t *mask); void mdesc_get_page_sizes(cpumask_t *mask, unsigned long *pgsz_mask); |