Add linux topology support

Solaris recently introduced the idea of drive topology because
where a drive is located does matter.  I have already handled
this with udev/blkid integration under Linux so I'm hopeful
this case can simply be removed but for now I've just stubbed
out what is needed in libspl and commented out the rest here.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
This commit is contained in:
Brian Behlendorf 2010-08-26 11:55:19 -07:00
parent 054bc00b4c
commit 6b003d7cda
2 changed files with 21 additions and 0 deletions

View File

@ -36,7 +36,9 @@
#include <libzfs.h> #include <libzfs.h>
#include <libshare.h> #include <libshare.h>
#if defined(HAVE_LIBTOPO)
#include <fm/libtopo.h> #include <fm/libtopo.h>
#endif /* HAVE_LIBTOPO */
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
@ -74,9 +76,11 @@ struct libzfs_handle {
boolean_t libzfs_mnttab_enable; boolean_t libzfs_mnttab_enable;
avl_tree_t libzfs_mnttab_cache; avl_tree_t libzfs_mnttab_cache;
int libzfs_pool_iter; int libzfs_pool_iter;
#if defined(HAVE_LIBTOPO)
topo_hdl_t *libzfs_topo_hdl; topo_hdl_t *libzfs_topo_hdl;
libzfs_fru_t **libzfs_fru_hash; libzfs_fru_t **libzfs_fru_hash;
libzfs_fru_t *libzfs_fru_list; libzfs_fru_t *libzfs_fru_list;
#endif /* HAVE_LIBTOPO */
char libzfs_chassis_id[256]; char libzfs_chassis_id[256];
}; };

View File

@ -34,6 +34,8 @@
#include <libzfs.h> #include <libzfs.h>
#if defined(HAVE_LIBTOPO)
#include <fm/libtopo.h> #include <fm/libtopo.h>
#include <sys/fm/protocol.h> #include <sys/fm/protocol.h>
#include <sys/systeminfo.h> #include <sys/systeminfo.h>
@ -450,3 +452,18 @@ libzfs_fru_clear(libzfs_handle_t *hdl, boolean_t final)
ZFS_FRU_HASH_SIZE * sizeof (void *)); ZFS_FRU_HASH_SIZE * sizeof (void *));
} }
} }
#else /* HAVE_LIBTOPO */
/*
* Clear memory associated with the FRU hash.
*/
void
libzfs_fru_clear(libzfs_handle_t *hdl, boolean_t final)
{
return;
}
#endif /* HAVE_LIBTOPO */