nfs-ganesha 1.4
|
00001 /* 00002 * vim:expandtab:shiftwidth=4:tabstop=4: 00003 */ 00004 00010 #ifdef HAVE_CONFIG_H 00011 #include "config.h" 00012 #endif 00013 00014 #include "fsal.h" 00015 #include "fsal_glue.h" 00016 #include "fsal_internal.h" 00017 00018 fsal_status_t WRAP_HPSSFSAL_access(fsal_handle_t * object_handle, /* IN */ 00019 fsal_op_context_t * p_context, /* IN */ 00020 fsal_accessflags_t access_type, /* IN */ 00021 fsal_attrib_list_t * 00022 object_attributes /* [ IN/OUT ] */ ) 00023 { 00024 return HPSSFSAL_access((hpssfsal_handle_t *) object_handle, 00025 (hpssfsal_op_context_t *) p_context, access_type, 00026 object_attributes); 00027 } 00028 00029 fsal_status_t WRAP_HPSSFSAL_getattrs(fsal_handle_t * p_filehandle, /* IN */ 00030 fsal_op_context_t * p_context, /* IN */ 00031 fsal_attrib_list_t * 00032 p_object_attributes /* IN/OUT */ ) 00033 { 00034 return HPSSFSAL_getattrs((hpssfsal_handle_t *) p_filehandle, 00035 (hpssfsal_op_context_t *) p_context, p_object_attributes); 00036 } 00037 00038 fsal_status_t WRAP_HPSSFSAL_setattrs(fsal_handle_t * p_filehandle, /* IN */ 00039 fsal_op_context_t * p_context, /* IN */ 00040 fsal_attrib_list_t * p_attrib_set, /* IN */ 00041 fsal_attrib_list_t * 00042 p_object_attributes /* [ IN/OUT ] */ ) 00043 { 00044 return HPSSFSAL_setattrs((hpssfsal_handle_t *) p_filehandle, 00045 (hpssfsal_op_context_t *) p_context, p_attrib_set, 00046 p_object_attributes); 00047 } 00048 00049 fsal_status_t WRAP_HPSSFSAL_BuildExportContext(fsal_export_context_t * p_export_context, /* OUT */ 00050 fsal_path_t * p_export_path, /* IN */ 00051 char *fs_specific_options /* IN */ ) 00052 { 00053 return HPSSFSAL_BuildExportContext((hpssfsal_export_context_t *) p_export_context, 00054 p_export_path, fs_specific_options); 00055 } 00056 00057 fsal_status_t WRAP_HPSSFSAL_CleanUpExportContext(fsal_export_context_t * p_export_context) 00058 { 00059 return HPSSFSAL_CleanUpExportContext((hpssfsal_export_context_t *) p_export_context); 00060 } 00061 00062 00063 fsal_status_t WRAP_HPSSFSAL_InitClientContext(fsal_op_context_t * p_thr_context) 00064 { 00065 return HPSSFSAL_InitClientContext((hpssfsal_op_context_t *) p_thr_context); 00066 } 00067 00068 fsal_status_t WRAP_HPSSFSAL_GetClientContext(fsal_op_context_t * p_thr_context, /* IN/OUT */ 00069 fsal_export_context_t * p_export_context, /* IN */ 00070 fsal_uid_t uid, /* IN */ 00071 fsal_gid_t gid, /* IN */ 00072 fsal_gid_t * alt_groups, /* IN */ 00073 fsal_count_t nb_alt_groups /* IN */ ) 00074 { 00075 return HPSSFSAL_GetClientContext((hpssfsal_op_context_t *) p_thr_context, 00076 (hpssfsal_export_context_t *) p_export_context, uid, 00077 gid, alt_groups, nb_alt_groups); 00078 } 00079 00080 fsal_status_t WRAP_HPSSFSAL_create(fsal_handle_t * p_parent_directory_handle, /* IN */ 00081 fsal_name_t * p_filename, /* IN */ 00082 fsal_op_context_t * p_context, /* IN */ 00083 fsal_accessmode_t accessmode, /* IN */ 00084 fsal_handle_t * p_object_handle, /* OUT */ 00085 fsal_attrib_list_t * 00086 p_object_attributes /* [ IN/OUT ] */ ) 00087 { 00088 return HPSSFSAL_create((hpssfsal_handle_t *) p_parent_directory_handle, p_filename, 00089 (hpssfsal_op_context_t *) p_context, accessmode, 00090 (hpssfsal_handle_t *) p_object_handle, p_object_attributes); 00091 } 00092 00093 fsal_status_t WRAP_HPSSFSAL_mkdir(fsal_handle_t * p_parent_directory_handle, /* IN */ 00094 fsal_name_t * p_dirname, /* IN */ 00095 fsal_op_context_t * p_context, /* IN */ 00096 fsal_accessmode_t accessmode, /* IN */ 00097 fsal_handle_t * p_object_handle, /* OUT */ 00098 fsal_attrib_list_t * 00099 p_object_attributes /* [ IN/OUT ] */ ) 00100 { 00101 return HPSSFSAL_mkdir((hpssfsal_handle_t *) p_parent_directory_handle, p_dirname, 00102 (hpssfsal_op_context_t *) p_context, accessmode, 00103 (hpssfsal_handle_t *) p_object_handle, p_object_attributes); 00104 } 00105 00106 fsal_status_t WRAP_HPSSFSAL_link(fsal_handle_t * p_target_handle, /* IN */ 00107 fsal_handle_t * p_dir_handle, /* IN */ 00108 fsal_name_t * p_link_name, /* IN */ 00109 fsal_op_context_t * p_context, /* IN */ 00110 fsal_attrib_list_t * p_attributes /* [ IN/OUT ] */ ) 00111 { 00112 return HPSSFSAL_link((hpssfsal_handle_t *) p_target_handle, 00113 (hpssfsal_handle_t *) p_dir_handle, p_link_name, 00114 (hpssfsal_op_context_t *) p_context, p_attributes); 00115 } 00116 00117 fsal_status_t WRAP_HPSSFSAL_mknode(fsal_handle_t * parentdir_handle, /* IN */ 00118 fsal_name_t * p_node_name, /* IN */ 00119 fsal_op_context_t * p_context, /* IN */ 00120 fsal_accessmode_t accessmode, /* IN */ 00121 fsal_nodetype_t nodetype, /* IN */ 00122 fsal_dev_t * dev, /* IN */ 00123 fsal_handle_t * p_object_handle, /* OUT (handle to the created node) */ 00124 fsal_attrib_list_t * node_attributes /* [ IN/OUT ] */ ) 00125 { 00126 return HPSSFSAL_mknode((hpssfsal_handle_t *) parentdir_handle, p_node_name, 00127 (hpssfsal_op_context_t *) p_context, accessmode, nodetype, dev, 00128 (hpssfsal_handle_t *) p_object_handle, node_attributes); 00129 } 00130 00131 fsal_status_t WRAP_HPSSFSAL_opendir(fsal_handle_t * p_dir_handle, /* IN */ 00132 fsal_op_context_t * p_context, /* IN */ 00133 fsal_dir_t * p_dir_descriptor, /* OUT */ 00134 fsal_attrib_list_t * 00135 p_dir_attributes /* [ IN/OUT ] */ ) 00136 { 00137 return HPSSFSAL_opendir((hpssfsal_handle_t *) p_dir_handle, 00138 (hpssfsal_op_context_t *) p_context, 00139 (hpssfsal_dir_t *) p_dir_descriptor, p_dir_attributes); 00140 } 00141 00142 fsal_status_t WRAP_HPSSFSAL_readdir(fsal_dir_t * p_dir_descriptor, /* IN */ 00143 fsal_cookie_t start_position, /* IN */ 00144 fsal_attrib_mask_t get_attr_mask, /* IN */ 00145 fsal_mdsize_t buffersize, /* IN */ 00146 fsal_dirent_t * p_pdirent, /* OUT */ 00147 fsal_cookie_t * p_end_position, /* OUT */ 00148 fsal_count_t * p_nb_entries, /* OUT */ 00149 fsal_boolean_t * p_end_of_dir /* OUT */ ) 00150 { 00151 hpssfsal_cookie_t hpsscookie; 00152 00153 memcpy((char *)&hpsscookie, (char *)&start_position, sizeof(hpssfsal_cookie_t)); 00154 00155 return HPSSFSAL_readdir((hpssfsal_dir_t *) p_dir_descriptor, 00156 start_position, 00157 get_attr_mask, 00158 buffersize, 00159 p_pdirent, 00160 (hpssfsal_cookie_t *) p_end_position, 00161 p_nb_entries, 00162 p_end_of_dir); 00163 } 00164 00165 fsal_status_t WRAP_HPSSFSAL_closedir(fsal_dir_t * p_dir_descriptor /* IN */ ) 00166 { 00167 return HPSSFSAL_closedir((hpssfsal_dir_t *) p_dir_descriptor); 00168 } 00169 00170 fsal_status_t WRAP_HPSSFSAL_open_by_name(fsal_handle_t * dirhandle, /* IN */ 00171 fsal_name_t * filename, /* IN */ 00172 fsal_op_context_t * p_context, /* IN */ 00173 fsal_openflags_t openflags, /* IN */ 00174 fsal_file_t * file_descriptor, /* OUT */ 00175 fsal_attrib_list_t * 00176 file_attributes /* [ IN/OUT ] */ ) 00177 { 00178 return HPSSFSAL_open_by_name((hpssfsal_handle_t *) dirhandle, filename, 00179 (hpssfsal_op_context_t *) p_context, openflags, 00180 (hpssfsal_file_t *) file_descriptor, file_attributes); 00181 } 00182 00183 fsal_status_t WRAP_HPSSFSAL_open(fsal_handle_t * p_filehandle, /* IN */ 00184 fsal_op_context_t * p_context, /* IN */ 00185 fsal_openflags_t openflags, /* IN */ 00186 fsal_file_t * p_file_descriptor, /* OUT */ 00187 fsal_attrib_list_t * p_file_attributes /* [ IN/OUT ] */ ) 00188 { 00189 return HPSSFSAL_open((hpssfsal_handle_t *) p_filehandle, 00190 (hpssfsal_op_context_t *) p_context, openflags, 00191 (hpssfsal_file_t *) p_file_descriptor, p_file_attributes); 00192 } 00193 00194 fsal_status_t WRAP_HPSSFSAL_read(fsal_file_t * p_file_descriptor, /* IN */ 00195 fsal_seek_t * p_seek_descriptor, /* [IN] */ 00196 fsal_size_t buffer_size, /* IN */ 00197 caddr_t buffer, /* OUT */ 00198 fsal_size_t * p_read_amount, /* OUT */ 00199 fsal_boolean_t * p_end_of_file /* OUT */ ) 00200 { 00201 return HPSSFSAL_read((hpssfsal_file_t *) p_file_descriptor, p_seek_descriptor, 00202 buffer_size, buffer, p_read_amount, p_end_of_file); 00203 } 00204 00205 fsal_status_t WRAP_HPSSFSAL_write(fsal_file_t * p_file_descriptor, /* IN */ 00206 fsal_seek_t * p_seek_descriptor, /* IN */ 00207 fsal_size_t buffer_size, /* IN */ 00208 caddr_t buffer, /* IN */ 00209 fsal_size_t * p_write_amount /* OUT */ ) 00210 { 00211 return HPSSFSAL_write((hpssfsal_file_t *) p_file_descriptor, p_seek_descriptor, 00212 buffer_size, buffer, p_write_amount); 00213 } 00214 00215 fsal_status_t WRAP_HPSSFSAL_close(fsal_file_t * p_file_descriptor /* IN */ ) 00216 { 00217 return HPSSFSAL_close((hpssfsal_file_t *) p_file_descriptor); 00218 } 00219 00220 fsal_status_t WRAP_HPSSFSAL_open_by_fileid(fsal_handle_t * filehandle, /* IN */ 00221 fsal_u64_t fileid, /* IN */ 00222 fsal_op_context_t * p_context, /* IN */ 00223 fsal_openflags_t openflags, /* IN */ 00224 fsal_file_t * file_descriptor, /* OUT */ 00225 fsal_attrib_list_t * 00226 file_attributes /* [ IN/OUT ] */ ) 00227 { 00228 return HPSSFSAL_open_by_fileid((hpssfsal_handle_t *) filehandle, fileid, 00229 (hpssfsal_op_context_t *) p_context, openflags, 00230 (hpssfsal_file_t *) file_descriptor, file_attributes); 00231 } 00232 00233 fsal_status_t WRAP_HPSSFSAL_close_by_fileid(fsal_file_t * file_descriptor /* IN */ , 00234 fsal_u64_t fileid) 00235 { 00236 return HPSSFSAL_close_by_fileid((hpssfsal_file_t *) file_descriptor, fileid); 00237 } 00238 00239 fsal_status_t WRAP_HPSSFSAL_dynamic_fsinfo(fsal_handle_t * p_filehandle, /* IN */ 00240 fsal_op_context_t * p_context, /* IN */ 00241 fsal_dynamicfsinfo_t * 00242 p_dynamicinfo /* OUT */ ) 00243 { 00244 return HPSSFSAL_dynamic_fsinfo((hpssfsal_handle_t *) p_filehandle, 00245 (hpssfsal_op_context_t *) p_context, p_dynamicinfo); 00246 } 00247 00248 fsal_status_t WRAP_HPSSFSAL_Init(fsal_parameter_t * init_info /* IN */ ) 00249 { 00250 return HPSSFSAL_Init(init_info); 00251 } 00252 00253 fsal_status_t WRAP_HPSSFSAL_terminate() 00254 { 00255 return HPSSFSAL_terminate(); 00256 } 00257 00258 fsal_status_t WRAP_HPSSFSAL_test_access(fsal_op_context_t * p_context, /* IN */ 00259 fsal_accessflags_t access_type, /* IN */ 00260 fsal_attrib_list_t * 00261 p_object_attributes /* IN */ ) 00262 { 00263 return HPSSFSAL_test_access((hpssfsal_op_context_t *) p_context, access_type, 00264 p_object_attributes); 00265 } 00266 00267 fsal_status_t WRAP_HPSSFSAL_setattr_access(fsal_op_context_t * p_context, /* IN */ 00268 fsal_attrib_list_t * candidate_attributes, /* IN */ 00269 fsal_attrib_list_t * 00270 object_attributes /* IN */ ) 00271 { 00272 return HPSSFSAL_setattr_access((hpssfsal_op_context_t *) p_context, 00273 candidate_attributes, object_attributes); 00274 } 00275 00276 fsal_status_t WRAP_HPSSFSAL_rename_access(fsal_op_context_t * pcontext, /* IN */ 00277 fsal_attrib_list_t * pattrsrc, /* IN */ 00278 fsal_attrib_list_t * pattrdest) /* IN */ 00279 { 00280 return HPSSFSAL_rename_access((hpssfsal_op_context_t *) pcontext, pattrsrc, pattrdest); 00281 } 00282 00283 fsal_status_t WRAP_HPSSFSAL_create_access(fsal_op_context_t * pcontext, /* IN */ 00284 fsal_attrib_list_t * pattr) /* IN */ 00285 { 00286 return HPSSFSAL_create_access((hpssfsal_op_context_t *) pcontext, pattr); 00287 } 00288 00289 fsal_status_t WRAP_HPSSFSAL_unlink_access(fsal_op_context_t * pcontext, /* IN */ 00290 fsal_attrib_list_t * pattr) /* IN */ 00291 { 00292 return HPSSFSAL_unlink_access((hpssfsal_op_context_t *) pcontext, pattr); 00293 } 00294 00295 fsal_status_t WRAP_HPSSFSAL_link_access(fsal_op_context_t * pcontext, /* IN */ 00296 fsal_attrib_list_t * pattr) /* IN */ 00297 { 00298 return HPSSFSAL_link_access((hpssfsal_op_context_t *) pcontext, pattr); 00299 } 00300 00301 fsal_status_t WRAP_HPSSFSAL_merge_attrs(fsal_attrib_list_t * pinit_attr, 00302 fsal_attrib_list_t * pnew_attr, 00303 fsal_attrib_list_t * presult_attr) 00304 { 00305 return HPSSFSAL_merge_attrs(pinit_attr, pnew_attr, presult_attr); 00306 } 00307 00308 fsal_status_t WRAP_HPSSFSAL_lookup(fsal_handle_t * p_parent_directory_handle, /* IN */ 00309 fsal_name_t * p_filename, /* IN */ 00310 fsal_op_context_t * p_context, /* IN */ 00311 fsal_handle_t * p_object_handle, /* OUT */ 00312 fsal_attrib_list_t * 00313 p_object_attributes /* [ IN/OUT ] */ ) 00314 { 00315 return HPSSFSAL_lookup((hpssfsal_handle_t *) p_parent_directory_handle, p_filename, 00316 (hpssfsal_op_context_t *) p_context, 00317 (hpssfsal_handle_t *) p_object_handle, p_object_attributes); 00318 } 00319 00320 fsal_status_t WRAP_HPSSFSAL_lookupPath(fsal_path_t * p_path, /* IN */ 00321 fsal_op_context_t * p_context, /* IN */ 00322 fsal_handle_t * object_handle, /* OUT */ 00323 fsal_attrib_list_t * 00324 p_object_attributes /* [ IN/OUT ] */ ) 00325 { 00326 return HPSSFSAL_lookupPath(p_path, (hpssfsal_op_context_t *) p_context, 00327 (hpssfsal_handle_t *) object_handle, p_object_attributes); 00328 } 00329 00330 fsal_status_t WRAP_HPSSFSAL_lookupJunction(fsal_handle_t * p_junction_handle, /* IN */ 00331 fsal_op_context_t * p_context, /* IN */ 00332 fsal_handle_t * p_fsoot_handle, /* OUT */ 00333 fsal_attrib_list_t * 00334 p_fsroot_attributes /* [ IN/OUT ] */ ) 00335 { 00336 return HPSSFSAL_lookupJunction((hpssfsal_handle_t *) p_junction_handle, 00337 (hpssfsal_op_context_t *) p_context, 00338 (hpssfsal_handle_t *) p_fsoot_handle, 00339 p_fsroot_attributes); 00340 } 00341 00342 fsal_status_t WRAP_HPSSFSAL_CleanObjectResources(fsal_handle_t * in_fsal_handle) 00343 { 00344 return HPSSFSAL_CleanObjectResources((hpssfsal_handle_t *) in_fsal_handle); 00345 } 00346 00347 fsal_status_t WRAP_HPSSFSAL_set_quota(fsal_path_t * pfsal_path, /* IN */ 00348 int quota_type, /* IN */ 00349 fsal_uid_t fsal_uid, /* IN */ 00350 fsal_quota_t * pquota, /* IN */ 00351 fsal_quota_t * presquota) /* OUT */ 00352 { 00353 return HPSSFSAL_set_quota(pfsal_path, quota_type, fsal_uid, pquota, presquota); 00354 } 00355 00356 fsal_status_t WRAP_HPSSFSAL_get_quota(fsal_path_t * pfsal_path, /* IN */ 00357 int quota_type, /* IN */ 00358 fsal_uid_t fsal_uid, /* IN */ 00359 fsal_quota_t * pquota) /* OUT */ 00360 { 00361 return HPSSFSAL_get_quota(pfsal_path, quota_type, fsal_uid, pquota); 00362 } 00363 00364 fsal_status_t WRAP_HPSSFSAL_check_quota( char * path, /* IN */ 00365 fsal_quota_type_t quota_type, 00366 fsal_uid_t fsal_uid) /* IN */ 00367 { 00368 return HPSSFSAL_check_quota( path, quota_type, fsal_uid ) ; 00369 } 00370 00371 fsal_status_t WRAP_HPSSFSAL_rcp(fsal_handle_t * filehandle, /* IN */ 00372 fsal_op_context_t * p_context, /* IN */ 00373 fsal_path_t * p_local_path, /* IN */ 00374 fsal_rcpflag_t transfer_opt /* IN */ ) 00375 { 00376 return HPSSFSAL_rcp((hpssfsal_handle_t *) filehandle, 00377 (hpssfsal_op_context_t *) p_context, p_local_path, transfer_opt); 00378 } 00379 00380 fsal_status_t WRAP_HPSSFSAL_rename(fsal_handle_t * p_old_parentdir_handle, /* IN */ 00381 fsal_name_t * p_old_name, /* IN */ 00382 fsal_handle_t * p_new_parentdir_handle, /* IN */ 00383 fsal_name_t * p_new_name, /* IN */ 00384 fsal_op_context_t * p_context, /* IN */ 00385 fsal_attrib_list_t * p_src_dir_attributes, /* [ IN/OUT ] */ 00386 fsal_attrib_list_t * 00387 p_tgt_dir_attributes /* [ IN/OUT ] */ ) 00388 { 00389 return HPSSFSAL_rename((hpssfsal_handle_t *) p_old_parentdir_handle, p_old_name, 00390 (hpssfsal_handle_t *) p_new_parentdir_handle, p_new_name, 00391 (hpssfsal_op_context_t *) p_context, p_src_dir_attributes, 00392 p_tgt_dir_attributes); 00393 } 00394 00395 void WRAP_HPSSFSAL_get_stats(fsal_statistics_t * stats, /* OUT */ 00396 fsal_boolean_t reset /* IN */ ) 00397 { 00398 return HPSSFSAL_get_stats(stats, reset); 00399 } 00400 00401 fsal_status_t WRAP_HPSSFSAL_readlink(fsal_handle_t * p_linkhandle, /* IN */ 00402 fsal_op_context_t * p_context, /* IN */ 00403 fsal_path_t * p_link_content, /* OUT */ 00404 fsal_attrib_list_t * 00405 p_link_attributes /* [ IN/OUT ] */ ) 00406 { 00407 return HPSSFSAL_readlink((hpssfsal_handle_t *) p_linkhandle, 00408 (hpssfsal_op_context_t *) p_context, p_link_content, 00409 p_link_attributes); 00410 } 00411 00412 fsal_status_t WRAP_HPSSFSAL_symlink(fsal_handle_t * p_parent_directory_handle, /* IN */ 00413 fsal_name_t * p_linkname, /* IN */ 00414 fsal_path_t * p_linkcontent, /* IN */ 00415 fsal_op_context_t * p_context, /* IN */ 00416 fsal_accessmode_t accessmode, /* IN (ignored) */ 00417 fsal_handle_t * p_link_handle, /* OUT */ 00418 fsal_attrib_list_t * 00419 p_link_attributes /* [ IN/OUT ] */ ) 00420 { 00421 return HPSSFSAL_symlink((hpssfsal_handle_t *) p_parent_directory_handle, p_linkname, 00422 p_linkcontent, (hpssfsal_op_context_t *) p_context, accessmode, 00423 (hpssfsal_handle_t *) p_link_handle, p_link_attributes); 00424 } 00425 00426 int WRAP_HPSSFSAL_handlecmp(fsal_handle_t * handle1, fsal_handle_t * handle2, 00427 fsal_status_t * status) 00428 { 00429 return HPSSFSAL_handlecmp((hpssfsal_handle_t *) handle1, (hpssfsal_handle_t *) handle2, 00430 status); 00431 } 00432 00433 unsigned int WRAP_HPSSFSAL_Handle_to_HashIndex(fsal_handle_t * p_handle, 00434 unsigned int cookie, 00435 unsigned int alphabet_len, 00436 unsigned int index_size) 00437 { 00438 return HPSSFSAL_Handle_to_HashIndex((hpssfsal_handle_t *) p_handle, cookie, 00439 alphabet_len, index_size); 00440 } 00441 00442 unsigned int WRAP_HPSSFSAL_Handle_to_RBTIndex(fsal_handle_t * p_handle, 00443 unsigned int cookie) 00444 { 00445 return HPSSFSAL_Handle_to_RBTIndex((hpssfsal_handle_t *) p_handle, cookie); 00446 } 00447 00448 fsal_status_t WRAP_HPSSFSAL_DigestHandle(fsal_export_context_t * p_exportcontext, /* IN */ 00449 fsal_digesttype_t output_type, /* IN */ 00450 fsal_handle_t * p_in_fsal_handle, /* IN */ 00451 caddr_t out_buff /* OUT */ ) 00452 { 00453 return HPSSFSAL_DigestHandle((hpssfsal_export_context_t *) p_exportcontext, output_type, 00454 (hpssfsal_handle_t *) p_in_fsal_handle, out_buff); 00455 } 00456 00457 fsal_status_t WRAP_HPSSFSAL_ExpandHandle(fsal_export_context_t * p_expcontext, /* IN */ 00458 fsal_digesttype_t in_type, /* IN */ 00459 caddr_t in_buff, /* IN */ 00460 fsal_handle_t * p_out_fsal_handle /* OUT */ ) 00461 { 00462 return HPSSFSAL_ExpandHandle((hpssfsal_export_context_t *) p_expcontext, in_type, 00463 in_buff, (hpssfsal_handle_t *) p_out_fsal_handle); 00464 } 00465 00466 fsal_status_t WRAP_HPSSFSAL_SetDefault_FSAL_parameter(fsal_parameter_t * out_parameter) 00467 { 00468 return HPSSFSAL_SetDefault_FSAL_parameter(out_parameter); 00469 } 00470 00471 fsal_status_t WRAP_HPSSFSAL_SetDefault_FS_common_parameter(fsal_parameter_t * 00472 out_parameter) 00473 { 00474 return HPSSFSAL_SetDefault_FS_common_parameter(out_parameter); 00475 } 00476 00477 fsal_status_t WRAP_HPSSFSAL_SetDefault_FS_specific_parameter(fsal_parameter_t * 00478 out_parameter) 00479 { 00480 return HPSSFSAL_SetDefault_FS_specific_parameter(out_parameter); 00481 } 00482 00483 fsal_status_t WRAP_HPSSFSAL_load_FSAL_parameter_from_conf(config_file_t in_config, 00484 fsal_parameter_t * 00485 out_parameter) 00486 { 00487 return HPSSFSAL_load_FSAL_parameter_from_conf(in_config, out_parameter); 00488 } 00489 00490 fsal_status_t WRAP_HPSSFSAL_load_FS_common_parameter_from_conf(config_file_t in_config, 00491 fsal_parameter_t * 00492 out_parameter) 00493 { 00494 return HPSSFSAL_load_FS_common_parameter_from_conf(in_config, out_parameter); 00495 } 00496 00497 fsal_status_t WRAP_HPSSFSAL_load_FS_specific_parameter_from_conf(config_file_t in_config, 00498 fsal_parameter_t * 00499 out_parameter) 00500 { 00501 return HPSSFSAL_load_FS_specific_parameter_from_conf(in_config, out_parameter); 00502 } 00503 00504 fsal_status_t WRAP_HPSSFSAL_truncate(fsal_handle_t * p_filehandle, 00505 fsal_op_context_t * p_context, 00506 fsal_size_t length, 00507 fsal_file_t * file_descriptor, 00508 fsal_attrib_list_t * p_object_attributes) 00509 { 00510 return HPSSFSAL_truncate((hpssfsal_handle_t *) p_filehandle, 00511 (hpssfsal_op_context_t *) p_context, length, 00512 (hpssfsal_file_t *) file_descriptor, p_object_attributes); 00513 } 00514 00515 fsal_status_t WRAP_HPSSFSAL_unlink(fsal_handle_t * p_parent_directory_handle, /* IN */ 00516 fsal_name_t * p_object_name, /* IN */ 00517 fsal_op_context_t * p_context, /* IN */ 00518 fsal_attrib_list_t * 00519 p_parent_directory_attributes /* [IN/OUT ] */ ) 00520 { 00521 return HPSSFSAL_unlink((hpssfsal_handle_t *) p_parent_directory_handle, p_object_name, 00522 (hpssfsal_op_context_t *) p_context, 00523 p_parent_directory_attributes); 00524 } 00525 00526 fsal_status_t WRAP_HPSSFSAL_commit( fsal_file_t * p_file_descriptor, 00527 fsal_off_t offset, 00528 fsal_size_t length ) 00529 00530 { 00531 return HPSSFSAL_commit((hpssfsal_file_t *) p_file_descriptor, offset, length ); 00532 } 00533 00534 00535 char *WRAP_HPSSFSAL_GetFSName() 00536 { 00537 return HPSSFSAL_GetFSName(); 00538 } 00539 00540 fsal_status_t WRAP_HPSSFSAL_GetXAttrAttrs(fsal_handle_t * p_objecthandle, /* IN */ 00541 fsal_op_context_t * p_context, /* IN */ 00542 unsigned int xattr_id, /* IN */ 00543 fsal_attrib_list_t * p_attrs) 00544 { 00545 return HPSSFSAL_GetXAttrAttrs((hpssfsal_handle_t *) p_objecthandle, 00546 (hpssfsal_op_context_t *) p_context, xattr_id, p_attrs); 00547 } 00548 00549 fsal_status_t WRAP_HPSSFSAL_ListXAttrs(fsal_handle_t * p_objecthandle, /* IN */ 00550 unsigned int cookie, /* IN */ 00551 fsal_op_context_t * p_context, /* IN */ 00552 fsal_xattrent_t * xattrs_tab, /* IN/OUT */ 00553 unsigned int xattrs_tabsize, /* IN */ 00554 unsigned int *p_nb_returned, /* OUT */ 00555 int *end_of_list /* OUT */ ) 00556 { 00557 return HPSSFSAL_ListXAttrs((hpssfsal_handle_t *) p_objecthandle, cookie, 00558 (hpssfsal_op_context_t *) p_context, xattrs_tab, 00559 xattrs_tabsize, p_nb_returned, end_of_list); 00560 } 00561 00562 fsal_status_t WRAP_HPSSFSAL_GetXAttrValueById(fsal_handle_t * p_objecthandle, /* IN */ 00563 unsigned int xattr_id, /* IN */ 00564 fsal_op_context_t * p_context, /* IN */ 00565 caddr_t buffer_addr, /* IN/OUT */ 00566 size_t buffer_size, /* IN */ 00567 size_t * p_output_size /* OUT */ ) 00568 { 00569 return HPSSFSAL_GetXAttrValueById((hpssfsal_handle_t *) p_objecthandle, xattr_id, 00570 (hpssfsal_op_context_t *) p_context, buffer_addr, 00571 buffer_size, p_output_size); 00572 } 00573 00574 fsal_status_t WRAP_HPSSFSAL_GetXAttrIdByName(fsal_handle_t * p_objecthandle, /* IN */ 00575 const fsal_name_t * xattr_name, /* IN */ 00576 fsal_op_context_t * p_context, /* IN */ 00577 unsigned int *pxattr_id /* OUT */ ) 00578 { 00579 return HPSSFSAL_GetXAttrIdByName((hpssfsal_handle_t *) p_objecthandle, xattr_name, 00580 (hpssfsal_op_context_t *) p_context, pxattr_id); 00581 } 00582 00583 fsal_status_t WRAP_HPSSFSAL_GetXAttrValueByName(fsal_handle_t * p_objecthandle, /* IN */ 00584 const fsal_name_t * xattr_name, /* IN */ 00585 fsal_op_context_t * p_context, /* IN */ 00586 caddr_t buffer_addr, /* IN/OUT */ 00587 size_t buffer_size, /* IN */ 00588 size_t * p_output_size /* OUT */ ) 00589 { 00590 return HPSSFSAL_GetXAttrValueByName((hpssfsal_handle_t *) p_objecthandle, xattr_name, 00591 (hpssfsal_op_context_t *) p_context, buffer_addr, 00592 buffer_size, p_output_size); 00593 } 00594 00595 fsal_status_t WRAP_HPSSFSAL_SetXAttrValue(fsal_handle_t * p_objecthandle, /* IN */ 00596 const fsal_name_t * xattr_name, /* IN */ 00597 fsal_op_context_t * p_context, /* IN */ 00598 caddr_t buffer_addr, /* IN */ 00599 size_t buffer_size, /* IN */ 00600 int create /* IN */ ) 00601 { 00602 return HPSSFSAL_SetXAttrValue((hpssfsal_handle_t *) p_objecthandle, xattr_name, 00603 (hpssfsal_op_context_t *) p_context, buffer_addr, 00604 buffer_size, create); 00605 } 00606 00607 fsal_status_t WRAP_HPSSFSAL_SetXAttrValueById(fsal_handle_t * p_objecthandle, /* IN */ 00608 unsigned int xattr_id, /* IN */ 00609 fsal_op_context_t * p_context, /* IN */ 00610 caddr_t buffer_addr, /* IN */ 00611 size_t buffer_size /* IN */ ) 00612 { 00613 return HPSSFSAL_SetXAttrValueById((hpssfsal_handle_t *) p_objecthandle, xattr_id, 00614 (hpssfsal_op_context_t *) p_context, buffer_addr, 00615 buffer_size); 00616 } 00617 00618 fsal_status_t WRAP_HPSSFSAL_RemoveXAttrById(fsal_handle_t * p_objecthandle, /* IN */ 00619 fsal_op_context_t * p_context, /* IN */ 00620 unsigned int xattr_id) /* IN */ 00621 { 00622 return HPSSFSAL_RemoveXAttrById((hpssfsal_handle_t *) p_objecthandle, 00623 (hpssfsal_op_context_t *) p_context, xattr_id); 00624 } 00625 00626 fsal_status_t WRAP_HPSSFSAL_RemoveXAttrByName(fsal_handle_t * p_objecthandle, /* IN */ 00627 fsal_op_context_t * p_context, /* IN */ 00628 const fsal_name_t * xattr_name) /* IN */ 00629 { 00630 return HPSSFSAL_RemoveXAttrByName((hpssfsal_handle_t *) p_objecthandle, 00631 (hpssfsal_op_context_t *) p_context, xattr_name); 00632 } 00633 00634 fsal_status_t WRAP_HPSSFSAL_getextattrs(fsal_handle_t * p_filehandle, /* IN */ 00635 fsal_op_context_t * p_context, /* IN */ 00636 fsal_extattrib_list_t * p_object_attributes /* OUT */) 00637 { 00638 return HPSSFSAL_getextattrs( (hpssfsal_handle_t *)p_filehandle, 00639 (hpssfsal_op_context_t *) p_context, p_object_attributes ) ; 00640 } 00641 00642 00643 fsal_functions_t fsal_hpss_functions = { 00644 .fsal_access = WRAP_HPSSFSAL_access, 00645 .fsal_getattrs = WRAP_HPSSFSAL_getattrs, 00646 .fsal_setattrs = WRAP_HPSSFSAL_setattrs, 00647 .fsal_buildexportcontext = WRAP_HPSSFSAL_BuildExportContext, 00648 .fsal_cleanupexportcontext = WRAP_HPSSFSAL_CleanUpExportContext, 00649 .fsal_initclientcontext = WRAP_HPSSFSAL_InitClientContext, 00650 .fsal_getclientcontext = WRAP_HPSSFSAL_GetClientContext, 00651 .fsal_create = WRAP_HPSSFSAL_create, 00652 .fsal_mkdir = WRAP_HPSSFSAL_mkdir, 00653 .fsal_link = WRAP_HPSSFSAL_link, 00654 .fsal_mknode = WRAP_HPSSFSAL_mknode, 00655 .fsal_opendir = WRAP_HPSSFSAL_opendir, 00656 .fsal_readdir = WRAP_HPSSFSAL_readdir, 00657 .fsal_closedir = WRAP_HPSSFSAL_closedir, 00658 .fsal_open_by_name = WRAP_HPSSFSAL_open_by_name, 00659 .fsal_open = WRAP_HPSSFSAL_open, 00660 .fsal_read = WRAP_HPSSFSAL_read, 00661 .fsal_write = WRAP_HPSSFSAL_write, 00662 .fsal_close = WRAP_HPSSFSAL_close, 00663 .fsal_open_by_fileid = WRAP_HPSSFSAL_open_by_fileid, 00664 .fsal_close_by_fileid = WRAP_HPSSFSAL_close_by_fileid, 00665 .fsal_dynamic_fsinfo = WRAP_HPSSFSAL_dynamic_fsinfo, 00666 .fsal_init = WRAP_HPSSFSAL_Init, 00667 .fsal_terminate = WRAP_HPSSFSAL_terminate, 00668 .fsal_test_access = WRAP_HPSSFSAL_test_access, 00669 .fsal_setattr_access = WRAP_HPSSFSAL_setattr_access, 00670 .fsal_rename_access = WRAP_HPSSFSAL_rename_access, 00671 .fsal_create_access = WRAP_HPSSFSAL_create_access, 00672 .fsal_unlink_access = WRAP_HPSSFSAL_unlink_access, 00673 .fsal_link_access = WRAP_HPSSFSAL_link_access, 00674 .fsal_merge_attrs = WRAP_HPSSFSAL_merge_attrs, 00675 .fsal_lookup = WRAP_HPSSFSAL_lookup, 00676 .fsal_lookuppath = WRAP_HPSSFSAL_lookupPath, 00677 .fsal_lookupjunction = WRAP_HPSSFSAL_lookupJunction, 00678 .fsal_cleanobjectresources = WRAP_HPSSFSAL_CleanObjectResources, 00679 .fsal_set_quota = WRAP_HPSSFSAL_set_quota, 00680 .fsal_get_quota = WRAP_HPSSFSAL_get_quota, 00681 .fsal_check_quota = WRAP_HPSSFSAL_check_quota, 00682 .fsal_rcp = WRAP_HPSSFSAL_rcp, 00683 .fsal_rename = WRAP_HPSSFSAL_rename, 00684 .fsal_get_stats = WRAP_HPSSFSAL_get_stats, 00685 .fsal_readlink = WRAP_HPSSFSAL_readlink, 00686 .fsal_symlink = WRAP_HPSSFSAL_symlink, 00687 .fsal_handlecmp = WRAP_HPSSFSAL_handlecmp, 00688 .fsal_handle_to_hashindex = WRAP_HPSSFSAL_Handle_to_HashIndex, 00689 .fsal_handle_to_rbtindex = WRAP_HPSSFSAL_Handle_to_RBTIndex, 00690 .fsal_handle_to_hash_both = NULL, 00691 .fsal_digesthandle = WRAP_HPSSFSAL_DigestHandle, 00692 .fsal_expandhandle = WRAP_HPSSFSAL_ExpandHandle, 00693 .fsal_setdefault_fsal_parameter = WRAP_HPSSFSAL_SetDefault_FSAL_parameter, 00694 .fsal_setdefault_fs_common_parameter = WRAP_HPSSFSAL_SetDefault_FS_common_parameter, 00695 .fsal_setdefault_fs_specific_parameter = WRAP_HPSSFSAL_SetDefault_FS_specific_parameter, 00696 .fsal_load_fsal_parameter_from_conf = WRAP_HPSSFSAL_load_FSAL_parameter_from_conf, 00697 .fsal_load_fs_common_parameter_from_conf = 00698 WRAP_HPSSFSAL_load_FS_common_parameter_from_conf, 00699 .fsal_load_fs_specific_parameter_from_conf = 00700 WRAP_HPSSFSAL_load_FS_specific_parameter_from_conf, 00701 .fsal_truncate = WRAP_HPSSFSAL_truncate, 00702 .fsal_unlink = WRAP_HPSSFSAL_unlink, 00703 .fsal_commit = WRAP_HPSSFSAL_commit, 00704 .fsal_getfsname = WRAP_HPSSFSAL_GetFSName, 00705 .fsal_getxattrattrs = WRAP_HPSSFSAL_GetXAttrAttrs, 00706 .fsal_listxattrs = WRAP_HPSSFSAL_ListXAttrs, 00707 .fsal_getxattrvaluebyid = WRAP_HPSSFSAL_GetXAttrValueById, 00708 .fsal_getxattridbyname = WRAP_HPSSFSAL_GetXAttrIdByName, 00709 .fsal_getxattrvaluebyname = WRAP_HPSSFSAL_GetXAttrValueByName, 00710 .fsal_setxattrvalue = WRAP_HPSSFSAL_SetXAttrValue, 00711 .fsal_setxattrvaluebyid = WRAP_HPSSFSAL_SetXAttrValueById, 00712 .fsal_removexattrbyid = WRAP_HPSSFSAL_RemoveXAttrById, 00713 .fsal_removexattrbyname = WRAP_HPSSFSAL_RemoveXAttrByName, 00714 .fsal_getextattrs = WRAP_HPSSFSAL_getextattrs, 00715 .fsal_getfileno = HPSSFSAL_GetFileno, 00716 .fsal_share_op = COMMON_share_op_notsupp 00717 }; 00718 00719 fsal_const_t fsal_hpss_consts = { 00720 .fsal_handle_t_size = sizeof(hpssfsal_handle_t), 00721 .fsal_op_context_t_size = sizeof(hpssfsal_op_context_t), 00722 .fsal_export_context_t_size = sizeof(hpssfsal_export_context_t), 00723 .fsal_file_t_size = sizeof(hpssfsal_file_t), 00724 .fsal_cookie_t_size = sizeof(hpssfsal_cookie_t), 00725 .fsal_cred_t_size = sizeof(hpssfsal_cred_t), 00726 .fs_specific_initinfo_t_size = sizeof(hpssfs_specific_initinfo_t), 00727 .fsal_dir_t_size = sizeof(hpssfsal_dir_t) 00728 }; 00729 00730 fsal_functions_t FSAL_GetFunctions(void) 00731 { 00732 return fsal_hpss_functions; 00733 } /* FSAL_GetFunctions */ 00734 00735 fsal_const_t FSAL_GetConsts(void) 00736 { 00737 return fsal_hpss_consts; 00738 } /* FSAL_GetConsts */