XenevaOS
Loading...
Searching...
No Matches
shm.h
Go to the documentation of this file.
1
30#ifndef __SHM_H__
31#define __SHM_H__
32
33#include <stdint.h>
34#include <process.h>
35
36#define USER_SHARED_MEM_START 0x0000000080000000
37
38/*
39 * AuSHM -- shared memory segment
40 */
53
57extern void AuInitialiseSHMMan(void);
58
59/*
60* AuGetSHMByID -- find a shared memory segment by ID
61* @param id -- segment ID to search
62*/
63extern AuSHM* AuGetSHMByID(uint16_t id);
64
65/* Kernel services holding a segment beyond any client mapping must retain
66 * their own reference, then release it when removing that cached segment. */
67extern void AuSHMRetain(AuSHM* shm);
68extern void AuSHMRelease(AuSHM* shm);
69
79extern int AuCreateSHM(AuProcess* proc, uint16_t key, size_t sz, uint8_t flags);
80
90extern void* AuSHMObtainMem(AuProcess* proc, uint16_t id, void* shmaddr, int shmflg);
91
97extern void AuSHMUnmap(uint16_t key, AuProcess* proc);
98
105extern void AuSHMUnmapAll(AuProcess* proc);
106
107#endif
uint8_t flags
Definition virtio.h:0
unsigned char uint8_t
Definition acefiex.h:161
COMPILER_DEPENDENT_UINT64 uint64_t
Definition acefiex.h:165
unsigned short int uint16_t
Definition acefiex.h:162
struct _shm_ AuSHM
void * AuSHMObtainMem(AuProcess *proc, uint16_t id, void *shmaddr, int shmflg)
AuSHMObtainMem – obtains a virtual memory from given shm segment.
Definition shm.cpp:216
struct _shm_mapping_ AuSHMMappings
void AuSHMUnmap(uint16_t key, AuProcess *proc)
AuSHMUnmap – unmaps a shared memory segment.
Definition shm.cpp:332
void AuSHMRetain(AuSHM *shm)
Definition shm.c:167
int AuCreateSHM(AuProcess *proc, uint16_t key, size_t sz, uint8_t flags)
AuCreateSHM – create a new shared memory segment or returns previously allocated one.
Definition shm.cpp:102
AuSHM * AuGetSHMByID(uint16_t id)
AuGetSHMByID – find a shared memory segment by ID.
Definition shm.cpp:85
void AuInitialiseSHMMan(void)
AuInitialiseSHMMan – initialise shm manager.
Definition shm.cpp:49
void AuSHMRelease(AuSHM *shm)
AuSHMRelease – drop a mapping or kernel owner's reference.
Definition shm.c:144
void AuSHMUnmapAll(AuProcess *proc)
AuSHMUnmapAll – unmaps all mappings for this process.
Definition shm.cpp:374
Definition process.h:126
Definition shm.h:41
uint16_t link_count
Definition shm.h:46
uint64_t num_frames
Definition shm.h:44
uint16_t key
Definition shm.h:42
uint64_t * frames
Definition shm.h:45
uint16_t id
Definition shm.h:43
Definition shm.h:48
uint64_t start_addr
Definition shm.h:49
size_t length
Definition shm.h:50
AuSHM * shm
Definition shm.h:51