00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef LIBSTORAGEMGMT_PLUG_INTERFACE_H
00020 #define LIBSTORAGEMGMT_PLUG_INTERFACE_H
00021
00022 #include "libstoragemgmt_common.h"
00023
00024 #include "libstoragemgmt_accessgroups.h"
00025 #include "libstoragemgmt_blockrange.h"
00026 #include "libstoragemgmt_capabilities.h"
00027 #include "libstoragemgmt_error.h"
00028 #include "libstoragemgmt_fs.h"
00029 #include "libstoragemgmt_nfsexport.h"
00030 #include "libstoragemgmt_hash.h"
00031 #include "libstoragemgmt_pool.h"
00032 #include "libstoragemgmt_snapshot.h"
00033 #include "libstoragemgmt_systems.h"
00034 #include "libstoragemgmt_volumes.h"
00035 #include "libstoragemgmt_disk.h"
00036
00037 #ifdef __cplusplus
00038 extern "C" {
00039 #endif
00040
00044 typedef enum {
00045 LSM_DATA_TYPE_UNKNOWN = -1,
00046 LSM_DATA_TYPE_NONE,
00047 LSM_DATA_TYPE_ACCESS_GROUP,
00048 LSM_DATA_TYPE_BLOCK_RANGE,
00049 LSM_DATA_TYPE_FS,
00050 LSM_DATA_TYPE_NFS_EXPORT,
00051 LSM_DATA_TYPE_POOL,
00052 LSM_DATA_TYPE_SS,
00053 LSM_DATA_TYPE_STRING_LIST,
00054 LSM_DATA_TYPE_SYSTEM,
00055 LSM_DATA_TYPE_VOLUME,
00056 LSM_DATA_TYPE_DISK
00057 } lsm_data_type;
00058
00062 typedef struct _lsm_plugin lsm_plugin;
00063
00067 typedef lsm_plugin *lsm_plugin_ptr;
00068
00078 typedef int (*lsm_plugin_register) (lsm_plugin_ptr c, const char *uri,
00079 const char *password,
00080 uint32_t timeout, lsm_flag flags);
00081
00088 typedef int (*lsm_plugin_unregister) (lsm_plugin_ptr c, lsm_flag flags);
00089
00097 typedef int (*lsm_plug_tmo_set) (lsm_plugin_ptr c, uint32_t timeout,
00098 lsm_flag flags);
00099
00107 typedef int (*lsm_plug_tmo_get) (lsm_plugin_ptr c, uint32_t *timeout,
00108 lsm_flag flags);
00109
00118 typedef int (*lsm_plug_capabilities) (lsm_plugin_ptr c,
00119 lsm_system *sys,
00120 lsm_storage_capabilities **cap,
00121 lsm_flag flags);
00134 typedef int (*lsm_plug_Job_status) (lsm_plugin_ptr c, const char *job,
00135 lsm_job_status *status,
00136 uint8_t *percent_complete,
00137 lsm_data_type *type, void **value,
00138 lsm_flag flags);
00147 typedef int (*lsm_plug_job_free) (lsm_plugin_ptr c, char *job_id,
00148 lsm_flag flags);
00149
00160 typedef int (*lsm_plug_pool_list) (lsm_plugin_ptr c,
00161 const char *search_key,
00162 const char *search_value,
00163 lsm_pool **pool_array[],
00164 uint32_t *count, lsm_flag flags);
00165
00174 typedef int (*lsm_plug_system_list) (lsm_plugin_ptr c,
00175 lsm_system **systems[],
00176 uint32_t *system_count,
00177 lsm_flag flags);
00178
00181 struct lsm_mgmt_ops_v1 {
00182 lsm_plug_tmo_set tmo_set;
00183 lsm_plug_tmo_get tmo_get;
00184 lsm_plug_capabilities capablities;
00185 lsm_plug_Job_status job_status;
00186 lsm_plug_job_free job_free;
00187 lsm_plug_pool_list pool_list;
00188 lsm_plug_system_list system_list;
00189 };
00190
00201 typedef int (*lsm_plug_volume_list) (lsm_plugin_ptr c,
00202 const char *search_key,
00203 const char *search_val,
00204 lsm_volume **vol_array[],
00205 uint32_t *count, lsm_flag flags);
00206
00217 typedef int (*lsm_plug_disk_list) (lsm_plugin_ptr c,
00218 const char *search_key,
00219 const char *search_value,
00220 lsm_disk **disk_array[],
00221 uint32_t *count, lsm_flag flags);
00222
00233 typedef int (*lsm_plug_target_port_list)
00234 (lsm_plugin_ptr c, const char *search_key, const char *search_value,
00235 lsm_target_port **target_port_array[], uint32_t *count, lsm_flag flags);
00236
00249 typedef int (*lsm_plug_volume_create) (lsm_plugin_ptr c,
00250 lsm_pool *pool,
00251 const char *volume_name,
00252 uint64_t size,
00253 lsm_volume_provision_type provisioning,
00254 lsm_volume **new_volume,
00255 char **job, lsm_flag flags);
00256
00269 typedef int (*lsm_plug_volume_replicate) (lsm_plugin_ptr c,
00270 lsm_pool *pool,
00271 lsm_replication_type rep_type,
00272 lsm_volume *volume_src,
00273 const char *name,
00274 lsm_volume **new_replicant,
00275 char **job, lsm_flag flags);
00276
00285 typedef int (*lsm_plug_volume_replicate_range_block_size)
00286 (lsm_plugin_ptr c, lsm_system * system, uint32_t *bs, lsm_flag flags);
00287
00301 typedef int (*lsm_plug_volume_replicate_range) (lsm_plugin_ptr c,
00302 lsm_replication_type rep_type,
00303 lsm_volume *source,
00304 lsm_volume *dest,
00305 lsm_block_range **ranges,
00306 uint32_t num_ranges,
00307 char **job, lsm_flag flags);
00308
00319 typedef int (*lsm_plug_volume_resize) (lsm_plugin_ptr c,
00320 lsm_volume *volume,
00321 uint64_t new_size,
00322 lsm_volume **resized_volume,
00323 char **job, lsm_flag flags);
00324
00333 typedef int (*lsm_plug_volume_delete) (lsm_plugin_ptr c,
00334 lsm_volume *volume, char **job,
00335 lsm_flag flags);
00343 typedef int (*lsm_plug_volume_enable) (lsm_plugin_ptr c,
00344 lsm_volume *v, lsm_flag flags);
00345
00353 typedef int (*lsm_plug_volume_disable) (lsm_plugin_ptr c,
00354 lsm_volume *v, lsm_flag flags);
00355
00368 typedef int (*lsm_plug_iscsi_chap_auth) (lsm_plugin_ptr c,
00369 const char *init_id,
00370 const char *in_user,
00371 const char *in_password,
00372 const char *out_user,
00373 const char *out_password,
00374 lsm_flag flags);
00375
00386 typedef int (*lsm_plug_access_group_list) (lsm_plugin_ptr c,
00387 const char *search_key,
00388 const char *search_value,
00389 lsm_access_group **groups[],
00390 uint32_t *group_count,
00391 lsm_flag flags);
00403 typedef int (*lsm_plug_access_group_create)
00404 (lsm_plugin_ptr c, const char *name, const char *initiator_id,
00405 lsm_access_group_init_type init_type, lsm_system *system,
00406 lsm_access_group **access_group, lsm_flag flags);
00407
00415 typedef int (*lsm_plug_access_group_delete) (lsm_plugin_ptr c,
00416 lsm_access_group *group,
00417 lsm_flag flags);
00418
00429 typedef int (*lsm_plug_access_group_initiator_add)
00430 (lsm_plugin_ptr c, lsm_access_group *access_group,
00431 const char *initiator_id, lsm_access_group_init_type id_type,
00432 lsm_access_group **updated_access_group, lsm_flag flags);
00433
00444 typedef int (*lsm_plug_access_group_initiator_delete)
00445 (lsm_plugin_ptr c, lsm_access_group *access_group,
00446 const char *initiator_id, lsm_access_group_init_type id_type,
00447 lsm_access_group **updated_access_group, lsm_flag flags);
00448
00458 typedef int (*lsm_plug_volume_mask) (lsm_plugin_ptr c,
00459 lsm_access_group *group,
00460 lsm_volume *volume, lsm_flag flags);
00461
00472 typedef int (*lsm_plug_volume_unmask) (lsm_plugin_ptr c,
00473 lsm_access_group * group,
00474 lsm_volume *volume, lsm_flag flags);
00475
00486 typedef int (*lsm_plug_volumes_accessible_by_access_group)
00487 (lsm_plugin_ptr c, lsm_access_group *group, lsm_volume **volumes[],
00488 uint32_t *count, lsm_flag flags);
00489
00500 typedef int (*lsm_plug_access_groups_granted_to_volume)
00501 (lsm_plugin_ptr c, lsm_volume *volume, lsm_access_group **groups[],
00502 uint32_t *group_count, lsm_flag flags);
00503
00512 typedef int (*lsm_plug_volume_child_dependency)
00513 (lsm_plugin_ptr c, lsm_volume *volume, uint8_t *yes, lsm_flag flags);
00514
00523 typedef int (*lsm_plug_volume_child_dependency_delete)
00524 (lsm_plugin_ptr c, lsm_volume *volume, char **job, lsm_flag flags);
00525
00536 typedef int (*lsm_plug_fs_list) (lsm_plugin_ptr c,
00537 const char *search_key,
00538 const char *search_value,
00539 lsm_fs **fs[], uint32_t *fs_count,
00540 lsm_flag flags);
00541
00553 typedef int (*lsm_plug_fs_create) (lsm_plugin_ptr c, lsm_pool *pool,
00554 const char *name,
00555 uint64_t size_bytes, lsm_fs **fs,
00556 char **job, lsm_flag flags);
00557
00566 typedef int (*lsm_plug_fs_delete) (lsm_plugin_ptr c, lsm_fs *fs,
00567 char **job, lsm_flag flags);
00568
00579 typedef int (*lsm_plug_fs_clone) (lsm_plugin_ptr c, lsm_fs *src_fs,
00580 const char *dest_fs_name,
00581 lsm_fs **cloned_fs,
00582 lsm_fs_ss *optional_snapshot,
00583 char **job, lsm_flag flags);
00592 typedef int (*lsm_plug_fs_child_dependency) (lsm_plugin_ptr c,
00593 lsm_fs *fs,
00594 lsm_string_list *files,
00595 uint8_t *yes);
00596
00606 typedef int (*lsm_plug_fs_child_dependency_delete) (lsm_plugin_ptr c,
00607 lsm_fs *fs,
00608 lsm_string_list * files,
00609 char **job,
00610 lsm_flag flags);
00611
00622 typedef int (*lsm_plug_fs_resize) (lsm_plugin_ptr c, lsm_fs *fs,
00623 uint64_t new_size_bytes,
00624 lsm_fs ** rfs, char **job,
00625 lsm_flag flags);
00626
00638 typedef int (*lsm_plug_fs_file_clone) (lsm_plugin_ptr c, lsm_fs *fs,
00639 const char *src_file_name,
00640 const char *dest_file_name,
00641 lsm_fs_ss *snapshot,
00642 char **job, lsm_flag flags);
00643
00654 typedef int (*lsm_plug_fs_ss_list) (lsm_plugin_ptr c, lsm_fs *fs,
00655 lsm_fs_ss **ss[],
00656 uint32_t *ss_count, lsm_flag flags);
00657
00668 typedef int (*lsm_plug_fs_ss_create) (lsm_plugin_ptr c, lsm_fs *fs,
00669 const char *name,
00670 lsm_fs_ss **snapshot,
00671 char **job, lsm_flag flags);
00682 typedef int (*lsm_plug_fs_ss_delete) (lsm_plugin_ptr c, lsm_fs *fs,
00683 lsm_fs_ss *ss, char **job,
00684 lsm_flag flags);
00685
00698 typedef int (*lsm_plug_fs_ss_restore) (lsm_plugin_ptr c, lsm_fs *fs,
00699 lsm_fs_ss *ss,
00700 lsm_string_list *files,
00701 lsm_string_list *restore_files,
00702 int all_files, char **job,
00703 lsm_flag flags);
00704
00712 typedef int (*lsm_plug_nfs_auth_types) (lsm_plugin_ptr c,
00713 lsm_string_list **types,
00714 lsm_flag flags);
00715
00726 typedef int (*lsm_plug_nfs_list) (lsm_plugin_ptr c,
00727 const char *search_key,
00728 const char *search_value,
00729 lsm_nfs_export **exports[],
00730 uint32_t *count, lsm_flag flags);
00747 typedef int (*lsm_plug_nfs_export_fs) (lsm_plugin_ptr c,
00748 const char *fs_id,
00749 const char *export_path,
00750 lsm_string_list *root_list,
00751 lsm_string_list *rw_list,
00752 lsm_string_list *ro_list,
00753 uint64_t anon_uid,
00754 uint64_t anon_gid,
00755 const char *auth_type,
00756 const char *options,
00757 lsm_nfs_export **exported,
00758 lsm_flag flags);
00759
00767 typedef int (*lsm_plug_nfs_export_remove) (lsm_plugin_ptr c,
00768 lsm_nfs_export *e,
00769 lsm_flag flags);
00775 struct lsm_san_ops_v1 {
00776 lsm_plug_volume_list vol_get;
00778 lsm_plug_disk_list disk_get;
00780 lsm_plug_volume_create vol_create;
00782 lsm_plug_volume_replicate vol_replicate;
00784 lsm_plug_volume_replicate_range_block_size vol_rep_range_bs;
00786 lsm_plug_volume_replicate_range vol_rep_range;
00788 lsm_plug_volume_resize vol_resize;
00790 lsm_plug_volume_delete vol_delete;
00792 lsm_plug_volume_enable vol_enable;
00794 lsm_plug_volume_disable vol_disable;
00796 lsm_plug_iscsi_chap_auth iscsi_chap_auth;
00798 lsm_plug_access_group_list ag_list;
00800 lsm_plug_access_group_create ag_create;
00802 lsm_plug_access_group_delete ag_delete;
00804 lsm_plug_access_group_initiator_add ag_add_initiator;
00806 lsm_plug_access_group_initiator_delete ag_del_initiator;
00808 lsm_plug_volume_mask ag_grant;
00810 lsm_plug_volume_unmask ag_revoke;
00812 lsm_plug_volumes_accessible_by_access_group vol_accessible_by_ag;
00814 lsm_plug_access_groups_granted_to_volume ag_granted_to_vol;
00816 lsm_plug_volume_child_dependency vol_child_depends;
00818 lsm_plug_volume_child_dependency_delete vol_child_depends_rm;
00820 lsm_plug_target_port_list target_port_list;
00822 };
00823
00829 struct lsm_fs_ops_v1 {
00830 lsm_plug_fs_list fs_list;
00832 lsm_plug_fs_create fs_create;
00834 lsm_plug_fs_delete fs_delete;
00836 lsm_plug_fs_resize fs_resize;
00838 lsm_plug_fs_clone fs_clone;
00840 lsm_plug_fs_file_clone fs_file_clone;
00842 lsm_plug_fs_child_dependency fs_child_dependency;
00844 lsm_plug_fs_child_dependency_delete fs_child_dependency_rm;
00846 lsm_plug_fs_ss_list fs_ss_list;
00848 lsm_plug_fs_ss_create fs_ss_create;
00850 lsm_plug_fs_ss_delete fs_ss_delete;
00852 lsm_plug_fs_ss_restore fs_ss_restore;
00854 };
00855
00861 struct lsm_nas_ops_v1 {
00862 lsm_plug_nfs_auth_types nfs_auth_types;
00864 lsm_plug_nfs_list nfs_list;
00866 lsm_plug_nfs_export_fs nfs_export;
00868 lsm_plug_nfs_export_remove nfs_export_remove;
00870 };
00871
00888 typedef int (*lsm_plug_volume_raid_info) (lsm_plugin_ptr c,
00889 lsm_volume *volume,
00890 lsm_volume_raid_type *raid_type,
00891 uint32_t *strip_size,
00892 uint32_t *disk_count,
00893 uint32_t *min_io_size,
00894 uint32_t *opt_io_size,
00895 lsm_flag flags);
00896
00918 typedef int (*lsm_plug_pool_member_info) (lsm_plugin_ptr c, lsm_pool *pool,
00919 lsm_volume_raid_type *raid_type,
00920 lsm_pool_member_type *member_type,
00921 lsm_string_list **member_ids,
00922 lsm_flag flags);
00923
00946 typedef int (*lsm_plug_volume_raid_create_cap_get)
00947 (lsm_plugin_ptr c, lsm_system *system, uint32_t **supported_raid_types,
00948 uint32_t *supported_raid_type_count, uint32_t **supported_strip_sizes,
00949 uint32_t *supported_strip_size_count, lsm_flag flags);
00950
00972 typedef int (*lsm_plug_volume_raid_create) (lsm_plugin_ptr c,
00973 const char *name,
00974 lsm_volume_raid_type raid_type,
00975 lsm_disk * disks[],
00976 uint32_t disk_count,
00977 uint32_t strip_size,
00978 lsm_volume ** new_volume,
00979 lsm_flag flags);
00980
00986 struct lsm_ops_v1_2 {
00987 lsm_plug_volume_raid_info vol_raid_info;
00989 lsm_plug_pool_member_info pool_member_info;
00990 lsm_plug_volume_raid_create_cap_get vol_create_raid_cap_get;
00991 lsm_plug_volume_raid_create vol_create_raid;
00992 };
00993
01000 void LSM_DLL_EXPORT *lsm_data_type_copy(lsm_data_type t, void *item);
01001
01012 int LSM_DLL_EXPORT lsm_plugin_init_v1(int argc, char *argv[],
01013 lsm_plugin_register reg,
01014 lsm_plugin_unregister unreg,
01015 const char *desc,
01016 const char *version);
01017
01018
01029 int LSM_DLL_EXPORT lsm_register_plugin_v1(lsm_plugin_ptr plug,
01030 void *private_data,
01031 struct lsm_mgmt_ops_v1 *mgm_ops,
01032 struct lsm_san_ops_v1 *san_ops,
01033 struct lsm_fs_ops_v1 *fs_ops,
01034 struct lsm_nas_ops_v1 *nas_ops);
01035
01048 int LSM_DLL_EXPORT lsm_register_plugin_v1_2(lsm_plugin_ptr plug,
01049 void *private_data,
01050 struct lsm_mgmt_ops_v1 *mgm_ops,
01051 struct lsm_san_ops_v1 *san_ops,
01052 struct lsm_fs_ops_v1 *fs_ops,
01053 struct lsm_nas_ops_v1 *nas_ops,
01054 struct lsm_ops_v1_2 *ops_v1_2);
01055
01060 void LSM_DLL_EXPORT *lsm_private_data_get(lsm_plugin_ptr plug);
01061
01062
01070 int LSM_DLL_EXPORT lsm_log_error_basic(lsm_plugin_ptr plug,
01071 lsm_error_number code,
01072 const char *msg);
01073
01080 int LSM_DLL_EXPORT lsm_plugin_error_log(lsm_plugin_ptr plug,
01081 lsm_error_ptr error);
01082
01093 lsm_error_ptr LSM_DLL_EXPORT lsm_error_create(lsm_error_number code,
01094 const char *msg,
01095 const char *exception,
01096 const char *debug,
01097 const void *debug_data,
01098 uint32_t debug_data_size);
01099
01100
01104 #define LSM_ERROR_CREATE_PLUGIN_MSG(code, msg) \
01105 lsm_error_create(code, msg, NULL, NULL, NULL, 0)
01106
01107 #define LSM_ERROR_CREATE_PLUGIN_EXCEPTION(code, msg, exception) \
01108 lsm_error_create((code), (msg), (exception), NULL, NULL, 0)
01109
01110 #define LSM_ERROR_CREATE_PLUGIN_DEBUG(code, msg, exception, debug, \
01111 debug_data, debug_len) \
01112 lsm_error_create((code), (msg), (exception), (debug), \
01113 (debug_data), debug_len)
01114
01120 lsm_pool LSM_DLL_EXPORT **lsm_pool_record_array_alloc(uint32_t size);
01121
01127 void LSM_DLL_EXPORT lsm_pool_free_space_set(lsm_pool *p,
01128 uint64_t free_space);
01129
01146 lsm_pool LSM_DLL_EXPORT *lsm_pool_record_alloc(const char *id,
01147 const char *name,
01148 uint64_t element_type,
01149 uint64_t unsupported_actions,
01150 uint64_t total_space,
01151 uint64_t free_space,
01152 uint64_t status,
01153 const char *status_info,
01154 const char *system_id,
01155 const char *plugin_data);
01156
01162 const char LSM_DLL_EXPORT *lsm_pool_plugin_data_get(lsm_pool *p);
01163
01169 lsm_volume LSM_DLL_EXPORT **lsm_volume_record_array_alloc(uint32_t size);
01170
01171
01177 lsm_disk LSM_DLL_EXPORT **lsm_disk_record_array_alloc(uint32_t size);
01178
01179
01191 lsm_disk LSM_DLL_EXPORT *lsm_disk_record_alloc(const char *id,
01192 const char *name,
01193 lsm_disk_type disk_type,
01194 uint64_t block_size,
01195 uint64_t block_count,
01196 uint64_t disk_status,
01197 const char *system_id);
01198
01212 lsm_volume LSM_DLL_EXPORT *lsm_volume_record_alloc(const char *id,
01213 const char *name,
01214 const char *vpd83,
01215 uint64_t block_size,
01216 uint64_t number_of_blocks,
01217 uint32_t status,
01218 const char *system_id,
01219 const char *pool_id,
01220 const char *plugin_data);
01221
01227 const char LSM_DLL_EXPORT *lsm_volume_plugin_data_get(lsm_volume *v);
01228
01234 lsm_system LSM_DLL_EXPORT **lsm_system_record_array_alloc(uint32_t size);
01235
01245 lsm_system LSM_DLL_EXPORT *lsm_system_record_alloc(const char *id,
01246 const char *name,
01247 uint32_t status,
01248 const char *status_info,
01249 const char *plugin_data);
01250
01256 const char LSM_DLL_EXPORT *lsm_system_plugin_data_get(lsm_system *s);
01257
01263 lsm_access_group LSM_DLL_EXPORT **
01264 lsm_access_group_record_array_alloc(uint32_t size);
01265
01266
01277 lsm_access_group LSM_DLL_EXPORT *
01278 lsm_access_group_record_alloc(const char *id, const char *name,
01279 lsm_string_list *initiators,
01280 lsm_access_group_init_type init_type,
01281 const char *system_id,
01282 const char *plugin_data);
01283
01284
01290 void LSM_DLL_EXPORT lsm_access_group_initiator_id_set(lsm_access_group *group,
01291 lsm_string_list *il);
01292
01304 lsm_fs LSM_DLL_EXPORT *lsm_fs_record_alloc(const char *id,
01305 const char *name,
01306 uint64_t total_space,
01307 uint64_t free_space,
01308 const char *pool_id,
01309 const char *system_id,
01310 const char *plugin_data);
01311
01317 lsm_fs LSM_DLL_EXPORT **lsm_fs_record_array_alloc(uint32_t size);
01318
01324 const char LSM_DLL_EXPORT *lsm_fs_plugin_data_get(lsm_fs *fs);
01325
01334 lsm_fs_ss LSM_DLL_EXPORT *lsm_fs_ss_record_alloc(const char *id,
01335 const char *name,
01336 uint64_t ts,
01337 const char *plugin_data);
01338
01344 lsm_fs_ss LSM_DLL_EXPORT **lsm_fs_ss_record_array_alloc(uint32_t size);
01345
01351 const char LSM_DLL_EXPORT *lsm_fs_ss_plugin_data_get(lsm_fs_ss * fs_ss);
01352
01360 int LSM_DLL_EXPORT lsm_capability_set(lsm_storage_capabilities * cap,
01361 lsm_capability_type t,
01362 lsm_capability_value_type v);
01363
01372 int LSM_DLL_EXPORT lsm_capability_set_n(lsm_storage_capabilities * cap,
01373 lsm_capability_value_type v, ...);
01374
01380 lsm_storage_capabilities LSM_DLL_EXPORT
01381 * lsm_capability_record_alloc(char const *value);
01382
01395 int LSM_DLL_EXPORT lsm_uri_parse(const char *uri, char **scheme,
01396 char **user, char **server, int *port,
01397 char **path, lsm_hash **query_params);
01398
01407 void LSM_DLL_EXPORT lsm_plug_volume_search_filter(const char *search_key,
01408 const char *search_value,
01409 lsm_volume *vols[],
01410 uint32_t *count);
01411
01420 void LSM_DLL_EXPORT lsm_plug_pool_search_filter(const char *search_key,
01421 const char *search_value,
01422 lsm_pool *pools[],
01423 uint32_t *count);
01424
01433 void LSM_DLL_EXPORT lsm_plug_disk_search_filter(const char *search_key,
01434 const char *search_value,
01435 lsm_disk *disks[],
01436 uint32_t *count);
01437
01447 void LSM_DLL_EXPORT
01448 lsm_plug_access_group_search_filter(const char *search_key,
01449 const char *search_value,
01450 lsm_access_group *ag[],
01451 uint32_t *count);
01452
01461 void LSM_DLL_EXPORT lsm_plug_fs_search_filter(const char *search_key,
01462 const char *search_value,
01463 lsm_fs *fs[], uint32_t *count);
01464
01473 void LSM_DLL_EXPORT
01474 lsm_plug_nfs_export_search_filter(const char *search_key,
01475 const char *search_value,
01476 lsm_nfs_export *exports[],
01477 uint32_t *count);
01478
01484 const char LSM_DLL_EXPORT *
01485 lsm_nfs_export_plugin_data_get(lsm_nfs_export *exp);
01486
01487
01500 lsm_target_port LSM_DLL_EXPORT *
01501 lsm_target_port_record_alloc(const char *id,
01502 lsm_target_port_type port_type,
01503 const char *service_address,
01504 const char *network_address,
01505 const char *physical_address,
01506 const char *physical_name,
01507 const char *system_id,
01508 const char *plugin_data);
01509
01515 const char LSM_DLL_EXPORT *
01516 lsm_target_port_plugin_data_get(lsm_target_port *tp);
01517
01523 lsm_target_port LSM_DLL_EXPORT **
01524 lsm_target_port_record_array_alloc(uint32_t size);
01525
01526
01536 void LSM_DLL_EXPORT
01537 lsm_plug_target_port_search_filter(const char *search_key,
01538 const char *search_value,
01539 lsm_target_port *tp[],
01540 uint32_t *count);
01541
01542 #ifdef __cplusplus
01543 }
01544 #endif
01545 #endif