PatchworkOS
Loading...
Searching...
No Matches
key.c File Reference
#include <kernel/fs/key.h>
#include <kernel/cpu/syscalls.h>
#include <kernel/drivers/rand.h>
#include <kernel/log/panic.h>
#include <kernel/sched/thread.h>
#include <kernel/sched/timer.h>
#include <kernel/sync/rwlock.h>
#include <errno.h>
#include <stdlib.h>

Go to the source code of this file.

Functions

static key_t key_generate (void)
 
static void key_timer_handler (interrupt_frame_t *frame, cpu_t *self)
 
void key_init (void)
 Initializes the key subsystem.
 
uint64_t key_share (key_t *key, file_t *file, clock_t timeout)
 Generates a key that can be used to retrieve the file within the specified timeout.
 
 SYSCALL_DEFINE (SYS_SHARE, uint64_t, key_t *key, fd_t fd, clock_t timeout)
 
file_tkey_claim (key_t *key)
 Claims a shared file using the provided key.
 
 SYSCALL_DEFINE (SYS_CLAIM, fd_t, key_t *key)
 

Variables

static map_t keyMap
 
static list_t keyList
 
static rwlock_t keyLock
 

Function Documentation

◆ key_generate()

static key_t key_generate ( void  )
static

Definition at line 17 of file key.c.

References ERR, keyLock, keyMap, map_get(), map_key_buffer(), NULL, panic(), rand_gen(), and RWLOCK_READ_SCOPE.

Referenced by key_share().

◆ key_timer_handler()

◆ SYSCALL_DEFINE() [1/2]

SYSCALL_DEFINE ( SYS_CLAIM  ,
fd_t  ,
key_t key 
)

◆ SYSCALL_DEFINE() [2/2]

Variable Documentation

◆ keyList

list_t keyList
static

Definition at line 14 of file key.c.

Referenced by key_claim(), key_init(), key_share(), and key_timer_handler().

◆ keyLock

rwlock_t keyLock
static

Definition at line 15 of file key.c.

Referenced by key_claim(), key_generate(), key_init(), key_share(), and key_timer_handler().

◆ keyMap

map_t keyMap
static

Definition at line 13 of file key.c.

Referenced by key_claim(), key_generate(), key_init(), key_share(), and key_timer_handler().