nfs-ganesha 1.4
Defines | Functions | Variables

fsal_internal.c File Reference

#include "fsal.h"
#include "fsal_internal.h"
#include "SemN.h"
#include <pthread.h>

Go to the source code of this file.

Defines

#define FSAL_INTERNAL_C
#define YOUR_SUPPORTED_ATTRIBUTES
#define SET_INTEGER_PARAM(cfg, p_init_info, _field)
#define SET_BITMAP_PARAM(cfg, p_init_info, _field)
#define SET_BOOLEAN_PARAM(cfg, p_init_info, _field)

Functions

void fsal_increment_nbcall (int function_index, fsal_status_t status)
void fsal_internal_getstats (fsal_statistics_t *output_stats)
void TakeTokenFSCall ()
void ReleaseTokenFSCall ()
fsal_status_t fsal_internal_init_global (fsal_init_info_t *fsal_info, fs_common_initinfo_t *fs_common_info)
fsal_boolean_t fsal_do_log (fsal_status_t status)

Variables

fsal_staticfsinfo_t global_fs_info
semaphore_t sem_fs_calls

Define Documentation

#define FSAL_INTERNAL_C

Definition at line 15 of file FSAL_TEMPLATE/fsal_internal.c.

#define SET_BITMAP_PARAM (   cfg,
  p_init_info,
  _field 
)
Value:
switch( (p_init_info)->behaviors._field ){                    \
    case FSAL_INIT_FORCE_VALUE :                                  \
        /* force the value in any case */                         \
        cfg._field = (p_init_info)->values._field;                \
        break;                                                    \
    case FSAL_INIT_MAX_LIMIT :                                    \
      /* proceed a bit AND */                                     \
      cfg._field &= (p_init_info)->values._field ;                \
      break;                                                      \
    case FSAL_INIT_MIN_LIMIT :                                    \
      /* proceed a bit OR */                                      \
      cfg._field |= (p_init_info)->values._field ;                \
      break;                                                      \
    /* In the other cases, we keep the default value. */          \
    }

Definition at line 270 of file FSAL_TEMPLATE/fsal_internal.c.

#define SET_BOOLEAN_PARAM (   cfg,
  p_init_info,
  _field 
)
Value:
switch( (p_init_info)->behaviors._field ){                    \
    case FSAL_INIT_FORCE_VALUE :                                  \
        /* force the value in any case */                         \
        cfg._field = (p_init_info)->values._field;                \
        break;                                                    \
    case FSAL_INIT_MAX_LIMIT :                                    \
      /* proceed a boolean AND */                                 \
      cfg._field = cfg._field && (p_init_info)->values._field ;   \
      break;                                                      \
    case FSAL_INIT_MIN_LIMIT :                                    \
      /* proceed a boolean OR */                                  \
      cfg._field = cfg._field && (p_init_info)->values._field ;   \
      break;                                                      \
    /* In the other cases, we keep the default value. */          \
    }

Definition at line 287 of file FSAL_TEMPLATE/fsal_internal.c.

#define SET_INTEGER_PARAM (   cfg,
  p_init_info,
  _field 
)
Value:
switch( (p_init_info)->behaviors._field ){                    \
    case FSAL_INIT_FORCE_VALUE :                                  \
      /* force the value in any case */                           \
      cfg._field = (p_init_info)->values._field;                  \
      break;                                                      \
    case FSAL_INIT_MAX_LIMIT :                                    \
      /* check the higher limit */                                \
      if ( cfg._field > (p_init_info)->values._field )            \
        cfg._field = (p_init_info)->values._field ;               \
      break;                                                      \
    case FSAL_INIT_MIN_LIMIT :                                    \
      /* check the lower limit */                                 \
      if ( cfg._field < (p_init_info)->values._field )            \
        cfg._field = (p_init_info)->values._field ;               \
      break;                                                      \
    /* In the other cases, we keep the default value. */          \
    }

Definition at line 251 of file FSAL_TEMPLATE/fsal_internal.c.

#define YOUR_SUPPORTED_ATTRIBUTES

Function Documentation

fsal_boolean_t fsal_do_log ( fsal_status_t  status)

fsal_do_log: Indicates if an FSAL error has to be traced into its log file in the NIV_EVENT level. (in the other cases, return codes are only logged in the NIV_FULL_DEBUG logging lovel).

Parameters:
status(input),:The fsal status that is to be tested.
Returns:
- TRUE if the error is to be traced.
  • FALSE if the error must not be traced except in NIV_FULL_DEBUG level.

Definition at line 390 of file FSAL_TEMPLATE/fsal_internal.c.

void fsal_increment_nbcall ( int  function_index,
fsal_status_t  status 
)

fsal_increment_nbcall: Updates fonction call statistics.

Parameters:
function_index(input): Index of the function whom number of call is to be incremented.
status(input): Status the function returned.
Returns:
Nothing.

Definition at line 104 of file FSAL_TEMPLATE/fsal_internal.c.

void fsal_internal_getstats ( fsal_statistics_t output_stats)

fsal_internal_getstats: (For internal use in the FSAL). Retrieve call statistics for current thread.

Parameters:
output_stats(output): Pointer to the call statistics structure.
Returns:
Nothing.

Definition at line 181 of file FSAL_TEMPLATE/fsal_internal.c.

fsal_status_t fsal_internal_init_global ( fsal_init_info_t fsal_info,
fs_common_initinfo_t fs_common_info 
)

This function initializes shared variables of the FSAL.

Definition at line 307 of file FSAL_TEMPLATE/fsal_internal.c.

void ReleaseTokenFSCall ( )

Definition at line 240 of file FSAL_TEMPLATE/fsal_internal.c.

void TakeTokenFSCall ( )

Used to limit the number of simultaneous calls to Filesystem.

Definition at line 229 of file FSAL_TEMPLATE/fsal_internal.c.


Variable Documentation

Definition at line 30 of file FSAL_TEMPLATE/fsal_internal.c.

Definition at line 78 of file FSAL_TEMPLATE/fsal_internal.c.