550W Document
550W, a high-end OS
lock.h
浏览该文件的文档.
1 #pragma once
2 
3 #include <lib/list.h>
4 
5 #define LOCK_NUM 32
6 
7 typedef enum {
11 
12 typedef enum {
16 
17 typedef struct spin_lock {
18  volatile lock_status_t flag;
20 
21 typedef struct double_spin_lock {
22  volatile lock_status_t flag;
25 
26 typedef struct mutex_lock {
27  int lock_id;
32 
33 typedef struct sleep_lock {
34  bool locked;
36  char *name;
37  int pid;
39 
40 /* init lock */
41 // for
47 
48 long k_mutex_lock_op(int *key, int op);
49 long k_mutex_lock_init(int *key);
50 long k_mutex_lock_acquire(int key);
51 long k_mutex_lock_release(int key);
52 long k_mutex_lock_destroy(int *key);
53 long k_mutex_lock_trylock(int *key);
54 
long k_mutex_lock_acquire(int key)
Definition: lock.c:86
struct double_spin_lock double_spin_lock_t
void k_spin_lock_release(spin_lock_t *lock)
Definition: lock.c:22
void k_sleep_lock_release(sleep_lock_t *lk)
Definition: lock.c:167
long k_mutex_lock_destroy(int *key)
Definition: lock.c:125
long k_mutex_lock_op(int *key, int op)
Definition: lock.c:35
long k_mutex_lock_trylock(int *key)
Definition: lock.c:137
int k_spin_lock_try_acquire(spin_lock_t *lock)
Definition: lock.c:13
void k_spin_lock_init(spin_lock_t *lock)
Definition: lock.c:9
struct spin_lock spin_lock_t
int k_sleep_lock_hold(sleep_lock_t *lk)
Definition: lock.c:175
void k_schedule_with_spin_lock(spin_lock_t *lock)
Definition: lock.c:26
guard_status_t
Definition: lock.h:12
@ GUARDED
Definition: lock.h:14
@ UNGUARDED
Definition: lock.h:13
struct mutex_lock mutex_lock_t
void k_spin_lock_acquire(spin_lock_t *lock)
Definition: lock.c:17
long k_mutex_lock_release(int key)
Definition: lock.c:106
void k_sleep_lock_init(sleep_lock_t *lk)
Definition: lock.c:151
void k_sleep_lock_acquire(sleep_lock_t *lk)
Definition: lock.c:157
struct sleep_lock sleep_lock_t
long k_mutex_lock_init(int *key)
Definition: lock.c:59
lock_status_t
Definition: lock.h:7
@ UNLOCKED
Definition: lock.h:8
@ LOCKED
Definition: lock.h:9
Definition: lock.h:21
volatile guard_status_t guard
Definition: lock.h:23
volatile lock_status_t flag
Definition: lock.h:22
Definition: list.h:7
Definition: lock.h:26
double_spin_lock_t lock
Definition: lock.h:29
int lock_id
Definition: lock.h:27
int initialized
Definition: lock.h:28
list_head block_queue
Definition: lock.h:30
Definition: lock.h:33
char * name
Definition: lock.h:36
bool locked
Definition: lock.h:34
spin_lock_t lk
Definition: lock.h:35
int pid
Definition: lock.h:37
Definition: lock.h:17
volatile lock_status_t flag
Definition: lock.h:18
spin_lock_t lock
Definition: virtio_blk.c:209