|
PatchworkOS
|
#include <kernel/ipc/shmem.h>#include <kernel/fs/ctl.h>#include <kernel/fs/sysfs.h>#include <kernel/fs/vfs.h>#include <kernel/log/panic.h>#include <kernel/mem/pmm.h>#include <kernel/mem/vmm.h>#include <kernel/proc/process.h>#include <errno.h>#include <stdatomic.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/list.h>Go to the source code of this file.
Functions | |
| static void | shmem_object_free (shmem_object_t *shmem) |
| static shmem_object_t * | shmem_object_new (void) |
| static void | shmem_vmm_callback (void *private) |
| static void * | shmem_object_allocate_pages (shmem_object_t *shmem, uint64_t pageAmount, space_t *space, void *address, pml_flags_t flags) |
| static uint64_t | shmem_open (file_t *file) |
| static void | shmem_close (file_t *file) |
| static void * | shmem_mmap (file_t *file, void *address, uint64_t length, uint64_t *offset, pml_flags_t flags) |
| void | shmem_init (void) |
| Initializes the shared memory subsystem. | |
Variables | |
| static dentry_t * | shmemDir = NULL |
| static dentry_t * | newFile = NULL |
| static file_ops_t | fileOps |
|
static |
|
static |
Definition at line 135 of file shmem.c.
References address, assert, BYTES_TO_PAGES, EINVAL, errno, file, shmem_object_t::lock, LOCK_SCOPE, MIN, NULL, PAGE_SIZE, shmem_object_t::pageAmount, pageAmount, shmem_object_t::pages, dentry_t::private, REF, sched_process_unsafe(), shmem_object_allocate_pages(), shmem_vmm_callback(), process_t::space, and vmm_map_pages().
|
static |
Definition at line 67 of file shmem.c.
References address, free(), malloc(), NULL, shmem_object_t::pageAmount, pageAmount, shmem_object_t::pages, pmm_alloc(), pmm_free(), REF, shmem_vmm_callback(), and vmm_map_pages().
Referenced by shmem_mmap().
|
static |
Definition at line 21 of file shmem.c.
References assert, free(), NULL, shmem_object_t::pageAmount, shmem_object_t::pages, and pmm_free().
Referenced by shmem_object_new().
|
static |
Definition at line 41 of file shmem.c.
References shmem_object_t::lock, lock_init(), malloc(), NULL, shmem_object_t::pageAmount, shmem_object_t::pages, shmem_object_t::ref, ref_init(), and shmem_object_free().
Referenced by shmem_open().
Definition at line 112 of file shmem.c.
References ERR, file, NULL, dentry_t::private, and shmem_object_new().
|
static |
Definition at line 56 of file shmem.c.
Referenced by shmem_mmap(), and shmem_object_allocate_pages().
|
static |
Definition at line 190 of file shmem.c.
Referenced by shmem_init().
Definition at line 19 of file shmem.c.
Referenced by shmem_init().
Definition at line 18 of file shmem.c.
Referenced by shmem_init().