MISR Toolkit  1.5.1
Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
H5SMpkg.h File Reference
#include "H5SMprivate.h"
#include "H5ACprivate.h"
#include "H5B2private.h"
#include "H5HFprivate.h"

Go to the source code of this file.

Data Structures

struct  H5SM_heap_loc_t
 
struct  H5SM_sohm_t
 
struct  H5SM_index_header_t
 
struct  H5SM_list_t
 
struct  H5SM_master_table_t
 
struct  H5SM_mesg_key_t
 
struct  H5SM_fh_ud_gh_t
 
struct  H5SM_incr_ref_opdata
 
struct  H5SM_bt2_ctx_t
 
struct  H5SM_table_cache_ud_t
 
struct  H5SM_list_cache_ud_t
 

Macros

#define H5SM_SIZEOF_CHECKSUM   4
 
#define H5SM_HEAP_LOC_SIZE
 
#define H5SM_OH_LOC_SIZE(f)
 
#define H5SM_SOHM_ENTRY_SIZE(f)
 
#define H5SM_INDEX_HEADER_SIZE(f)
 
#define H5SM_METADATA_PREFIX_SIZE
 
#define H5SM_TABLE_SIZE(f)
 
#define H5SM_LIST_SIZE(f, num_mesg)
 
#define H5SM_B2_NODE_SIZE   512
 
#define H5SM_B2_SPLIT_PERCENT   100
 
#define H5SM_B2_MERGE_PERCENT   40
 
#define H5SM_LIST_VERSION   0 /* Verion of Shared Object Header Message List Indexes */
 

Typedefs

typedef struct H5SM_bt2_ctx_t H5SM_bt2_ctx_t
 
typedef struct H5SM_table_cache_ud_t H5SM_table_cache_ud_t
 
typedef struct H5SM_list_cache_ud_t H5SM_list_cache_ud_t
 

Enumerations

enum  H5SM_storage_loc_t {
  H5SM_NO_LOC = -1,
  H5SM_IN_HEAP = 0,
  H5SM_IN_OH
}
 
enum  H5SM_index_type_t {
  H5SM_BADTYPE = -1,
  H5SM_LIST,
  H5SM_BTREE
}
 

Functions

 H5FL_EXTERN (H5SM_master_table_t)
 
 H5FL_ARR_EXTERN (H5SM_index_header_t)
 
 H5FL_EXTERN (H5SM_list_t)
 
 H5FL_ARR_EXTERN (H5SM_sohm_t)
 
H5_DLL ssize_t H5SM_get_index (const H5SM_master_table_t *table, unsigned type_id)
 
H5_DLL herr_t H5SM_message_compare (const void *rec1, const void *rec2, int *result)
 
H5_DLL herr_t H5SM_message_encode (uint8_t *raw, const void *native, void *ctx)
 
H5_DLL herr_t H5SM_message_decode (const uint8_t *raw, void *native, void *ctx)
 
H5_DLL herr_t H5SM_bt2_convert_to_list_op (const void *record, void *op_data)
 
H5_DLL herr_t H5SM_get_hash_fh_cb (const void *obj, size_t obj_len, void *_udata)
 
herr_t H5SM_table_free (H5SM_master_table_t *table)
 
herr_t H5SM_list_free (H5SM_list_t *list)
 

Variables

H5_DLLVAR const H5AC_class_t H5AC_SOHM_TABLE [1]
 
H5_DLLVAR const H5AC_class_t H5AC_SOHM_LIST [1]
 
H5_DLLVAR const H5B2_class_t H5SM_INDEX [1]
 

Macro Definition Documentation

◆ H5SM_B2_MERGE_PERCENT

#define H5SM_B2_MERGE_PERCENT   40

Definition at line 97 of file H5SMpkg.h.

◆ H5SM_B2_NODE_SIZE

#define H5SM_B2_NODE_SIZE   512

Definition at line 95 of file H5SMpkg.h.

◆ H5SM_B2_SPLIT_PERCENT

#define H5SM_B2_SPLIT_PERCENT   100

Definition at line 96 of file H5SMpkg.h.

◆ H5SM_HEAP_LOC_SIZE

#define H5SM_HEAP_LOC_SIZE
Value:
( \
(unsigned)4 /* Reference count */ \
+ sizeof(H5O_fheap_id_t) /* size of heap ID on disk */ \
)

Definition at line 45 of file H5SMpkg.h.

◆ H5SM_INDEX_HEADER_SIZE

#define H5SM_INDEX_HEADER_SIZE (   f)
Value:
( \
(unsigned)1 /* Whether index is a list or B-tree */ \
+ (unsigned)1 /* Version of index format */ \
+ (unsigned)2 /* Type of messages stored in the index */ \
+ (unsigned)4 /* Minimum size of messages to share */ \
+ (unsigned)(3 * 2) /* B-tree cutoff, list cutoff, # of shared messages */ \
+ H5F_SIZEOF_ADDR(f) /* Location of list or B-tree */ \
+ H5F_SIZEOF_ADDR(f) /* Address of heap */ \
)

Definition at line 63 of file H5SMpkg.h.

◆ H5SM_LIST_SIZE

#define H5SM_LIST_SIZE (   f,
  num_mesg 
)
Value:
( \
/* General metadata fields */ \
H5SM_METADATA_PREFIX_SIZE \
\
/* Message entries */ \
+ (H5SM_SOHM_ENTRY_SIZE(f) * num_mesg) \
)
#define H5SM_SOHM_ENTRY_SIZE(f)
Definition: H5SMpkg.h:57

Definition at line 87 of file H5SMpkg.h.

◆ H5SM_LIST_VERSION

#define H5SM_LIST_VERSION   0 /* Verion of Shared Object Header Message List Indexes */

Definition at line 99 of file H5SMpkg.h.

◆ H5SM_METADATA_PREFIX_SIZE

#define H5SM_METADATA_PREFIX_SIZE
Value:
( \
H5_SIZEOF_MAGIC /* Signature */ \
+ H5SM_SIZEOF_CHECKSUM /* Checksum */ \
)
#define H5SM_SIZEOF_CHECKSUM
Definition: H5SMpkg.h:43

Definition at line 74 of file H5SMpkg.h.

◆ H5SM_OH_LOC_SIZE

#define H5SM_OH_LOC_SIZE (   f)
Value:
( \
(unsigned)1 /* reserved (possible flags?) */ \
+ (unsigned)1 /* message type ID */ \
+ (unsigned)2 /* creation index of message in OH */ \
+ H5F_SIZEOF_ADDR(f) /* address of OH */ \
)

Definition at line 50 of file H5SMpkg.h.

◆ H5SM_SIZEOF_CHECKSUM

#define H5SM_SIZEOF_CHECKSUM   4

Definition at line 43 of file H5SMpkg.h.

◆ H5SM_SOHM_ENTRY_SIZE

#define H5SM_SOHM_ENTRY_SIZE (   f)
Value:
( \
(unsigned)1 /* Message location */ \
+ (unsigned)4 /* Hash value */ \
)
#define H5SM_HEAP_LOC_SIZE
Definition: H5SMpkg.h:45
#define MAX(a, b)
Definition: hdfi.h:1511
#define H5SM_OH_LOC_SIZE(f)
Definition: H5SMpkg.h:50

Definition at line 57 of file H5SMpkg.h.

◆ H5SM_TABLE_SIZE

#define H5SM_TABLE_SIZE (   f)
Value:
( \
/* General metadata fields */ \
H5SM_METADATA_PREFIX_SIZE \
\
/* Indices */ \
+ (H5F_SOHM_NINDEXES(f) * H5SM_INDEX_HEADER_SIZE(f)) \
)
#define H5SM_INDEX_HEADER_SIZE(f)
Definition: H5SMpkg.h:63

Definition at line 79 of file H5SMpkg.h.

Typedef Documentation

◆ H5SM_bt2_ctx_t

◆ H5SM_list_cache_ud_t

◆ H5SM_table_cache_ud_t

Enumeration Type Documentation

◆ H5SM_index_type_t

Enumerator
H5SM_BADTYPE 
H5SM_LIST 
H5SM_BTREE 

Definition at line 158 of file H5SMpkg.h.

◆ H5SM_storage_loc_t

Enumerator
H5SM_NO_LOC 
H5SM_IN_HEAP 
H5SM_IN_OH 

Definition at line 134 of file H5SMpkg.h.

Function Documentation

◆ H5FL_ARR_EXTERN() [1/2]

H5FL_ARR_EXTERN ( H5SM_index_header_t  )

◆ H5FL_ARR_EXTERN() [2/2]

H5FL_ARR_EXTERN ( H5SM_sohm_t  )

◆ H5FL_EXTERN() [1/2]

H5FL_EXTERN ( H5SM_master_table_t  )

◆ H5FL_EXTERN() [2/2]

H5FL_EXTERN ( H5SM_list_t  )

◆ H5SM_bt2_convert_to_list_op()

H5_DLL herr_t H5SM_bt2_convert_to_list_op ( const void *  record,
void *  op_data 
)

◆ H5SM_get_hash_fh_cb()

H5_DLL herr_t H5SM_get_hash_fh_cb ( const void *  obj,
size_t  obj_len,
void *  _udata 
)

◆ H5SM_get_index()

H5_DLL ssize_t H5SM_get_index ( const H5SM_master_table_t table,
unsigned  type_id 
)

◆ H5SM_list_free()

herr_t H5SM_list_free ( H5SM_list_t list)

◆ H5SM_message_compare()

H5_DLL herr_t H5SM_message_compare ( const void *  rec1,
const void *  rec2,
int *  result 
)

◆ H5SM_message_decode()

H5_DLL herr_t H5SM_message_decode ( const uint8_t *  raw,
void *  native,
void *  ctx 
)

◆ H5SM_message_encode()

H5_DLL herr_t H5SM_message_encode ( uint8_t *  raw,
const void *  native,
void *  ctx 
)

◆ H5SM_table_free()

herr_t H5SM_table_free ( H5SM_master_table_t table)

Variable Documentation

◆ H5AC_SOHM_LIST

H5_DLLVAR const H5AC_class_t H5AC_SOHM_LIST[1]

Definition at line 258 of file H5SMpkg.h.

◆ H5AC_SOHM_TABLE

H5_DLLVAR const H5AC_class_t H5AC_SOHM_TABLE[1]

Definition at line 257 of file H5SMpkg.h.

◆ H5SM_INDEX

H5_DLLVAR const H5B2_class_t H5SM_INDEX[1]

Definition at line 259 of file H5SMpkg.h.


MISR Toolkit - Copyright © 2005 - 2020 Jet Propulsion Laboratory
Generated on Fri Jun 19 2020 22:49:54