Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
VCL: Fix socket_test.sh to build test apps.
[vpp.git]
/
src
/
svm
/
ssvm.h
diff --git
a/src/svm/ssvm.h
b/src/svm/ssvm.h
index
9bf009e
..
5b2bf0d
100644
(file)
--- a/
src/svm/ssvm.h
+++ b/
src/svm/ssvm.h
@@
-37,7
+37,6
@@
#include <vppinfra/heap.h>
#include <vppinfra/pool.h>
#include <vppinfra/format.h>
#include <vppinfra/heap.h>
#include <vppinfra/pool.h>
#include <vppinfra/format.h>
-#include <vppinfra/linux/syscall.h>
#ifndef MMAP_PAGESIZE
#define MMAP_PAGESIZE (clib_mem_get_page_size())
#ifndef MMAP_PAGESIZE
#define MMAP_PAGESIZE (clib_mem_get_page_size())
@@
-49,6
+48,7
@@
typedef enum ssvm_segment_type_
{
SSVM_SEGMENT_SHM = 0,
SSVM_SEGMENT_MEMFD,
{
SSVM_SEGMENT_SHM = 0,
SSVM_SEGMENT_MEMFD,
+ SSVM_SEGMENT_PRIVATE,
SSVM_N_SEGMENT_TYPES /**< Private segments */
} ssvm_segment_type_t;
SSVM_N_SEGMENT_TYPES /**< Private segments */
} ssvm_segment_type_t;
@@
-103,7
+103,7
@@
ssvm_lock (ssvm_shared_header_t * h, u32 my_pid, u32 tag)
return;
}
return;
}
- while (
__sync_lock_test_and_set (&h->lock, 1
))
+ while (
clib_atomic_test_and_set (&h->lock
))
;
h->owner_pid = my_pid;
;
h->owner_pid = my_pid;
@@
-114,7
+114,7
@@
ssvm_lock (ssvm_shared_header_t * h, u32 my_pid, u32 tag)
always_inline void
ssvm_lock_non_recursive (ssvm_shared_header_t * h, u32 tag)
{
always_inline void
ssvm_lock_non_recursive (ssvm_shared_header_t * h, u32 tag)
{
- while (
__sync_lock_test_and_set (&h->lock, 1
))
+ while (
clib_atomic_test_and_set (&h->lock
))
;
h->tag = tag;
;
h->tag = tag;
@@
-195,6
+195,10
@@
int ssvm_master_init_memfd (ssvm_private_t * memfd);
int ssvm_slave_init_memfd (ssvm_private_t * memfd);
void ssvm_delete_memfd (ssvm_private_t * memfd);
int ssvm_slave_init_memfd (ssvm_private_t * memfd);
void ssvm_delete_memfd (ssvm_private_t * memfd);
+int ssvm_master_init_private (ssvm_private_t * ssvm);
+int ssvm_slave_init_private (ssvm_private_t * ssvm);
+void ssvm_delete_private (ssvm_private_t * ssvm);
+
ssvm_segment_type_t ssvm_type (const ssvm_private_t * ssvm);
u8 *ssvm_name (const ssvm_private_t * ssvm);
ssvm_segment_type_t ssvm_type (const ssvm_private_t * ssvm);
u8 *ssvm_name (const ssvm_private_t * ssvm);