ESDM
Middleware for Earth System Data
Macros | Functions
esdm-pmem.c File Reference

A data backend to provide PMEM (pmem.io) support. More...

#include <dirent.h>
#include <errno.h>
#include <fcntl.h>
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
#include <pthread.h>
#include <esdm-internal.h>
#include <libpmem.h>
#include "esdm-pmem.h"
Include dependency graph for esdm-pmem.c:

Macros

#define DEBUG_ENTER   ESDM_DEBUG_COM_FMT("PMEM", "", "")
 
#define DEBUG(fmt, ...)   ESDM_DEBUG_COM_FMT("PMEM", fmt, __VA_ARGS__)
 
#define WARN_ENTER   ESDM_WARN_COM_FMT("PMEM", "", "")
 
#define WARN(fmt, ...)   ESDM_WARN_COM_FMT("PMEM", fmt, __VA_ARGS__)
 
#define WARNS(fmt)   ESDM_WARN_COM_FMT("PMEM", "%s", fmt)
 
#define ERROR(fmt, ...)   ESDM_ERROR_COM_FMT("PMEM", fmt, __VA_ARGS__)
 
#define ERRORS(fmt)   ESDM_ERROR_COM_FMT("PMEM", "%s", fmt)
 
#define WARN_STRERR(fmt, ...)   WARN(fmt ": %s", __VA_ARGS__, strerror(errno));
 
#define WARN_CHECK_RET(ret, fmt, ...)   if(ret != 0){ WARN(fmt ": %s", __VA_ARGS__, strerror(errno)); }
 
#define sprintfFragmentDir(path, f)   (sprintf(path, "%s/%c%c/%s", tgt, f->dataset->id[0], f->dataset->id[1], f->dataset->id+2))
 
#define sprintfFragmentPath(path, f)   (sprintf(path, "%s/%c%c/%s/%s", tgt, f->dataset->id[0], f->dataset->id[1], f->dataset->id+2, f->id))
 

Functions

int pmem_finalize (esdm_backend_t *backend)
 
esdm_backend_tpmem_backend_init (esdm_config_backend_t *config)
 

Detailed Description

A data backend to provide PMEM (pmem.io) support.