ESDM
Middleware for Earth System Data
Data Structures | Macros | Functions | Variables
clovis.c File Reference

A data backend to provide Clovis compatibility. More...

#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <esdm-debug.h>
#include <esdm.h>
#include <esdm-datatypes-internal.h>
#include "clovis/clovis.h"
#include "clovis/clovis_internal.h"
#include "clovis_internal.h"
Include dependency graph for clovis.c:

Data Structures

struct  con_dataset_obj_pair
 

Macros

#define VERBOSE_DEBUG
 
#define DEBUG(fmt)   printf(fmt)
 
#define DEBUG_FMT(fmt, ...)   printf(fmt, __VA_ARGS__)
 
#define DEBUG_ENTER   printf(">>>Entering %s:%d\n", __func__, __LINE__)
 
#define DEBUG_LEAVE(rc)   printf("<<<Leaving %s:%d:rc=%d\n", __func__, __LINE__, (rc))
 
#define PAGE_4K   (4096ULL)
 
#define BLOCKSIZE   (PAGE_4K)
 
#define BLOCKMASK   (BLOCKSIZE - 1)
 

Functions

char * laddr_get ()
 
int clovis_index_create (struct m0_clovis_realm *parent, struct m0_fid *fid)
 
int clovis_index_delete (struct m0_clovis_realm *parent, struct m0_fid *fid)
 
esdm_backend_tclovis_backend_init (esdm_config_backend_t *config)
 

Variables

struct m0_fid index_cdname_to_object
 
struct m0_fid index_object_last_pos
 
struct m0_idx_dix_config dix_conf = {.kc_create_meta = false }
 
esdm_backend_t_clovis_t esdm_backend_t_clovis
 

Detailed Description

A data backend to provide Clovis compatibility.

Function Documentation

◆ clovis_backend_init()

esdm_backend_t* clovis_backend_init ( esdm_config_backend_t config)

Initializes the CLOVIS plugin. In particular this involves:

  • Load configuration of this backend
  • Load and potenitally calibrate performance model
  • Connect with support services e.g. for technical metadata
  • Setup directory structures used by this CLOVIS specific backend
  • Poopulate esdm_backend_t struct and callbacks required for registration
Returns
pointer to backend struct

◆ laddr_get()

char* laddr_get ( )

@TODO: Please note, if multiple apps are running from the same node, different local addresses are required.

Variable Documentation

◆ index_cdname_to_object

struct m0_fid index_cdname_to_object
Initial value:
=
M0_FID_TINIT('x', 0x1ULL, 0x1234567812345678ULL)

◆ index_object_last_pos

struct m0_fid index_object_last_pos
Initial value:
=
M0_FID_TINIT('x', 0x1ULL, 0x8765432187654321ULL)