kernel: add c++ support

This commit is contained in:
2023-03-20 20:41:39 +00:00
parent a4d850cc03
commit 2bfb6bcd78
41 changed files with 333 additions and 38 deletions

View File

@@ -8,6 +8,10 @@
#include <socks/locks.h>
#include <socks/machine/vm.h>
#ifdef __cplusplus
extern "C" {
#endif
/* maximum number of NUMA nodes */
#define VM_MAX_NODES 64
/* maximum number of memory zones per node */
@@ -185,8 +189,9 @@ typedef struct vm_slab {
when freeing:
- s_free should be set to the index of the object being freed.
- s_freelist[s_free] should be set to the previous value of s_free.
this is commented as it as flexible arrays are not supported in c++.
*/
unsigned int s_freelist[];
//unsigned int s_freelist[];
} vm_slab_t;
typedef struct vm_page {
@@ -212,9 +217,7 @@ typedef struct vm_page {
/* owner-specific data */
union {
struct {
vm_slab_t *p_slab;
};
vm_slab_t *p_slab;
};
} __attribute__((aligned(2 * sizeof(unsigned long)))) vm_page_t;
@@ -287,4 +290,8 @@ extern void vm_sparse_init(void);
extern vm_page_t *vm_page_get_sparse(phys_addr_t addr);
extern size_t vm_page_get_pfn_sparse(vm_page_t *pg);
#ifdef __cplusplus
}
#endif
#endif