nfs-ganesha 1.4

fsal_compat.c

Go to the documentation of this file.
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 */