FD.io VPP  v20.01-9-g24064d02a
Vector Packet Processing
svm_common.h File Reference
+ Include dependency graph for svm_common.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  svm_region_
 
struct  svm_map_region_args_
 
struct  svm_subregion_t
 
struct  svm_main_region_t
 

Macros

#define SVM_VERSION   ((1<<16) | 1) /* set to declare region ready. */
 
#define SVM_FLAGS_MHEAP   (1<<0) /* region contains an mheap */
 
#define SVM_FLAGS_FILE   (1<<1) /* region backed by one or more files */
 
#define SVM_FLAGS_NODATA   (1<<2) /* region will be further subdivided */
 
#define SVM_FLAGS_NEED_DATA_INIT   (1<<3)
 
#define SVM_PVT_MHEAP_SIZE   (128<<10) /* region's private mheap (128k) */
 
#define HIGH_SEGMENT_BASEVA   (8ULL << 30) /* 8GB */
 
#define SVM_GLOBAL_REGION_SIZE   (64<<20)
 
#define SVM_GLOBAL_REGION_NAME   "/global_vm"
 
#define SVM_OVERLAY_REGION_BASEVA   (SVM_GLOBAL_REGION_BASEVA + SVM_GLOBAL_REGION_SIZE)
 
#define SVM_OVERLAY_REGION_SIZE   (1<<20)
 
#define SVM_OVERLAY_REGION_BASENAME   "/overlay_vm"
 

Typedefs

typedef struct svm_region_ svm_region_t
 
typedef struct svm_map_region_args_ svm_map_region_args_t
 

Functions

u64 svm_get_global_region_base_va ()
 
void * svm_region_find_or_create (svm_map_region_args_t *a)
 
void svm_region_init (void)
 
void svm_region_init_mapped_region (svm_map_region_args_t *a, svm_region_t *rp)
 
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_exit (void)
 
void svm_region_exit_client (void)
 
void svm_region_unmap (void *rp_arg)
 
void svm_region_unmap_client (void *rp_arg)
 
void svm_client_scan (const char *root_path)
 
void svm_client_scan_this_region_nolock (svm_region_t *rp)
 
u8shm_name_from_svm_map_region_args (svm_map_region_args_t *a)
 
u8format_svm_region (u8 *s, va_list *args)
 
svm_region_tsvm_get_root_rp (void)
 

Macro Definition Documentation

◆ HIGH_SEGMENT_BASEVA

#define HIGH_SEGMENT_BASEVA   (8ULL << 30) /* 8GB */

Definition at line 87 of file svm_common.h.

◆ SVM_FLAGS_FILE

#define SVM_FLAGS_FILE   (1<<1) /* region backed by one or more files */

Definition at line 28 of file svm_common.h.

◆ SVM_FLAGS_MHEAP

#define SVM_FLAGS_MHEAP   (1<<0) /* region contains an mheap */

Definition at line 27 of file svm_common.h.

◆ SVM_FLAGS_NEED_DATA_INIT

#define SVM_FLAGS_NEED_DATA_INIT   (1<<3)

Definition at line 30 of file svm_common.h.

◆ SVM_FLAGS_NODATA

#define SVM_FLAGS_NODATA   (1<<2) /* region will be further subdivided */

Definition at line 29 of file svm_common.h.

◆ SVM_GLOBAL_REGION_NAME

#define SVM_GLOBAL_REGION_NAME   "/global_vm"

Definition at line 101 of file svm_common.h.

◆ SVM_GLOBAL_REGION_SIZE

#define SVM_GLOBAL_REGION_SIZE   (64<<20)

Definition at line 100 of file svm_common.h.

◆ SVM_OVERLAY_REGION_BASENAME

#define SVM_OVERLAY_REGION_BASENAME   "/overlay_vm"

Definition at line 110 of file svm_common.h.

◆ SVM_OVERLAY_REGION_BASEVA

#define SVM_OVERLAY_REGION_BASEVA   (SVM_GLOBAL_REGION_BASEVA + SVM_GLOBAL_REGION_SIZE)

Definition at line 107 of file svm_common.h.

◆ SVM_OVERLAY_REGION_SIZE

#define SVM_OVERLAY_REGION_SIZE   (1<<20)

Definition at line 109 of file svm_common.h.

◆ SVM_PVT_MHEAP_SIZE

#define SVM_PVT_MHEAP_SIZE   (128<<10) /* region's private mheap (128k) */

Definition at line 32 of file svm_common.h.

◆ SVM_VERSION

#define SVM_VERSION   ((1<<16) | 1) /* set to declare region ready. */

Definition at line 25 of file svm_common.h.

Typedef Documentation

◆ svm_map_region_args_t

◆ svm_region_t

typedef struct svm_region_ svm_region_t

Function Documentation

◆ format_svm_region()

u8* format_svm_region ( u8 s,
va_list *  args 
)

Definition at line 184 of file svm.c.

+ Here is the call graph for this function:
+ 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 441 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 1268 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 1240 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_region_exit()

void svm_region_exit ( void  )

Definition at line 1228 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 1234 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 900 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 843 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 894 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 860 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 877 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 465 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 1162 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 1168 of file svm.c.

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