Memclave Artifact Documentation
Loading...
Searching...
No Matches
vud.h File Reference
#include "vud_pool.h"
#include <stddef.h>
#include <stdint.h>

Go to the source code of this file.

Classes

struct  vud_rank
 

Macros

#define VUD_ALLOC_ANY   -1
 

Typedefs

typedef enum vud_error vud_error
 
typedef struct vud_rank vud_rank
 

Enumerations

enum  vud_error {
  VUD_OK , VUD_RANK_BUSY , VUD_NOT_FOUND , VUD_MEMORY_ERR ,
  VUD_SYSTEM_ERR , VUD_CI_TIMEOUT , VUD_INVALID_RES , VUD_EXPECTED_FAULT ,
  VUD_SK_NOT_FOUND , VUD_SK_TAG , VUD_NOT_WAITING , VUD_SYMBOL_NOT_FOUND ,
  VUD_SYMBOL_NOT_MRAM , VUD_SYSTEM_THREAD , VUD_KEY_XCHG
}
 

Functions

vud_rank vud_rank_alloc (int rank_nr)
 allocate a single vud rank
 
void vud_rank_free (vud_rank *rank)
 release the rank back to the os and free associated resources
 
void vud_rank_nr_workers (vud_rank *rank, unsigned n)
 specify the number of worker threads
 
uint8_t vud_rank_qry_mux (vud_rank *rank)
 get the current mux state of one DPU line of a rank
 
void vud_rank_rel_mux (vud_rank *rank)
 release control of the MUX continuing execution on the DPUs
 

Macro Definition Documentation

◆ VUD_ALLOC_ANY

#define VUD_ALLOC_ANY   -1

Typedef Documentation

◆ vud_error

typedef enum vud_error vud_error

◆ vud_rank

typedef struct vud_rank vud_rank

Enumeration Type Documentation

◆ vud_error

enum vud_error
Enumerator
VUD_OK 
VUD_RANK_BUSY 
VUD_NOT_FOUND 
VUD_MEMORY_ERR 
VUD_SYSTEM_ERR 
VUD_CI_TIMEOUT 
VUD_INVALID_RES 
VUD_EXPECTED_FAULT 
VUD_SK_NOT_FOUND 
VUD_SK_TAG 
VUD_NOT_WAITING 
VUD_SYMBOL_NOT_FOUND 
VUD_SYMBOL_NOT_MRAM 
VUD_SYSTEM_THREAD 
VUD_KEY_XCHG 

Function Documentation

◆ vud_rank_alloc()

vud_rank vud_rank_alloc ( int  rank_nr)

allocate a single vud rank

Parameters
rank_nrnumber of the rank to allocate or -1 for any available rank

◆ vud_rank_free()

void vud_rank_free ( vud_rank rank)

release the rank back to the os and free associated resources

Parameters
rankrank to free

◆ vud_rank_nr_workers()

void vud_rank_nr_workers ( vud_rank rank,
unsigned  n 
)

specify the number of worker threads

Worker threads are used in all memory transfer functions due to their quite heavy-weight nature. All other operations use just one thread (the calling one).

Parameters
rankrank using the additional worker threads
nnumber of workers - 1 to only use the calling thread

◆ vud_rank_qry_mux()

uint8_t vud_rank_qry_mux ( vud_rank rank)

get the current mux state of one DPU line of a rank

Parameters
rankrank to query
Returns
mask where 1 bits indicate a host facing MUX

◆ vud_rank_rel_mux()

void vud_rank_rel_mux ( vud_rank rank)

release control of the MUX continuing execution on the DPUs

Parameters
rankrank to release MUX on