FD.io VPP  v19.08.3-2-gbabecb413
Vector Packet Processing
svm.c File Reference
+ Include dependency graph for svm.c:

Go to the source code of this file.

Macros

#define MAXLOCK   2
 
#define MUTEX_DEBUG
 

Functions

svm_region_tsvm_get_root_rp (void)
 
u64 svm_get_global_region_base_va ()
 
static void region_lock (svm_region_t *rp, int tag)
 
static void region_unlock (svm_region_t *rp)
 
static u8format_svm_flags (u8 *s, va_list *args)
 
static u8format_svm_size (u8 *s, va_list *args)
 
u8format_svm_region (u8 *s, va_list *args)
 
static u64 rnd_pagesize (u64 size)
 
static int svm_data_region_create (svm_map_region_args_t *a, svm_region_t *rp)
 
static int svm_data_region_map (svm_map_region_args_t *a, svm_region_t *rp)
 
u8shm_name_from_svm_map_region_args (svm_map_region_args_t *a)
 
void svm_region_init_mapped_region (svm_map_region_args_t *a, svm_region_t *rp)
 
void * svm_map_region (svm_map_region_args_t *a)
 
static void svm_mutex_cleanup (void)
 
static int svm_region_init_internal (svm_map_region_args_t *a)
 
void svm_region_init (void)
 
int svm_region_init_chroot (const char *root_path)
 
void svm_region_init_chroot_uid_gid (const char *root_path, int uid, int gid)
 
void svm_region_init_args (svm_map_region_args_t *a)
 
void * svm_region_find_or_create (svm_map_region_args_t *a)
 
void svm_region_unlink (svm_region_t *rp)
 
void svm_region_unmap_internal (void *rp_arg, u8 is_client)
 
void svm_region_unmap (void *rp_arg)
 
void svm_region_unmap_client (void *rp_arg)
 
static void svm_region_exit_internal (u8 is_client)
 
void svm_region_exit (void)
 
void svm_region_exit_client (void)
 
void svm_client_scan_this_region_nolock (svm_region_t *rp)
 
void svm_client_scan (const char *root_path)
 

Variables

static svm_region_troot_rp
 
static int root_rp_refcount
 
static pthread_mutex_t * mutexes_held [MAXLOCK]
 
static int nheld
 

Macro Definition Documentation

◆ MAXLOCK

#define MAXLOCK   2

Definition at line 49 of file svm.c.

◆ MUTEX_DEBUG

#define MUTEX_DEBUG

Definition at line 59 of file svm.c.

Function Documentation

◆ format_svm_flags()

static u8* format_svm_flags ( u8 s,
va_list *  args 
)
static

Definition at line 143 of file svm.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ format_svm_region()

u8* format_svm_region ( u8 s,
va_list *  args 
)

Definition at line 180 of file svm.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ format_svm_size()

static u8* format_svm_size ( u8 s,
va_list *  args 
)
static

Definition at line 160 of file svm.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ region_lock()

static void region_lock ( svm_region_t rp,
int  tag 
)
static

Definition at line 99 of file svm.c.

+ Here is the caller graph for this function:

◆ region_unlock()

static void region_unlock ( svm_region_t rp)
static

Definition at line 116 of file svm.c.

+ Here is the caller graph for this function:

◆ rnd_pagesize()

static u64 rnd_pagesize ( u64  size)
static

Definition at line 259 of file svm.c.

+ Here is the caller graph for this function:

◆ shm_name_from_svm_map_region_args()

u8* shm_name_from_svm_map_region_args ( svm_map_region_args_t a)

Definition at line 437 of file svm.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ svm_client_scan()

void svm_client_scan ( const char *  root_path)

Definition at line 1264 of file svm.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ svm_client_scan_this_region_nolock()

void svm_client_scan_this_region_nolock ( svm_region_t rp)

Definition at line 1236 of file svm.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ svm_data_region_create()

static int svm_data_region_create ( svm_map_region_args_t a,
svm_region_t rp 
)
static

Definition at line 271 of file svm.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ svm_data_region_map()

static int svm_data_region_map ( svm_map_region_args_t a,
svm_region_t rp 
)
static

Definition at line 363 of file svm.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ svm_get_global_region_base_va()

u64 svm_get_global_region_base_va ( )

Definition at line 62 of file svm.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ svm_get_root_rp()

svm_region_t* svm_get_root_rp ( void  )

Definition at line 54 of file svm.c.

+ Here is the caller graph for this function:

◆ svm_map_region()

void* svm_map_region ( svm_map_region_args_t a)

Definition at line 575 of file svm.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ svm_mutex_cleanup()

static void svm_mutex_cleanup ( void  )
static

Definition at line 777 of file svm.c.

+ Here is the caller graph for this function:

◆ svm_region_exit()

void svm_region_exit ( void  )

Definition at line 1224 of file svm.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ svm_region_exit_client()

void svm_region_exit_client ( void  )

Definition at line 1230 of file svm.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ svm_region_exit_internal()

static void svm_region_exit_internal ( u8  is_client)
static

Definition at line 1173 of file svm.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ svm_region_find_or_create()

void* svm_region_find_or_create ( svm_map_region_args_t a)

Definition at line 896 of file svm.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ svm_region_init()

void svm_region_init ( void  )

Definition at line 839 of file svm.c.

+ Here is the call graph for this function:

◆ svm_region_init_args()

void svm_region_init_args ( svm_map_region_args_t a)

Definition at line 890 of file svm.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ svm_region_init_chroot()

int svm_region_init_chroot ( const char *  root_path)

Definition at line 856 of file svm.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ svm_region_init_chroot_uid_gid()

void svm_region_init_chroot_uid_gid ( const char *  root_path,
int  uid,
int  gid 
)

Definition at line 873 of file svm.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ svm_region_init_internal()

static int svm_region_init_internal ( svm_map_region_args_t a)
static

Definition at line 787 of file svm.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ svm_region_init_mapped_region()

void svm_region_init_mapped_region ( svm_map_region_args_t a,
svm_region_t rp 
)

Definition at line 461 of file svm.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ svm_region_unlink()

void svm_region_unlink ( svm_region_t rp)

Definition at line 1008 of file svm.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ svm_region_unmap()

void svm_region_unmap ( void *  rp_arg)

Definition at line 1158 of file svm.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ svm_region_unmap_client()

void svm_region_unmap_client ( void *  rp_arg)

Definition at line 1164 of file svm.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ svm_region_unmap_internal()

void svm_region_unmap_internal ( void *  rp_arg,
u8  is_client 
)

Definition at line 1039 of file svm.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Variable Documentation

◆ mutexes_held

pthread_mutex_t* mutexes_held[MAXLOCK]
static

Definition at line 50 of file svm.c.

◆ nheld

int nheld
static

Definition at line 51 of file svm.c.

◆ root_rp

svm_region_t* root_rp
static

Definition at line 46 of file svm.c.

◆ root_rp_refcount

int root_rp_refcount
static

Definition at line 47 of file svm.c.