MOS Source Code
|
Go to the source code of this file.
Classes | |
struct | spinlock_t |
struct | recursive_spinlock_t |
Macros | |
#define | barrier() |
#define | spinlock_init(lock) |
#define | SPINLOCK_INIT { 0 } |
#define | _spinlock_real_acquire(lock) |
#define | _spinlock_real_release(lock) |
#define | spinlock_acquire(lock) |
#define | spinlock_release(lock) |
#define | spinlock_acquire_nodebug(lock) |
#define | spinlock_release_nodebug(lock) |
#define | RECURSIVE_SPINLOCK_INIT { SPINLOCK_INIT, NULL, 0 } |
Functions | |
should_inline bool | spinlock_is_locked (const spinlock_t *lock) |
should_inline void | recursive_spinlock_acquire (recursive_spinlock_t *lock, void *owner) |
should_inline void | recursive_spinlock_release (recursive_spinlock_t *lock, void *owner) |
should_inline bool | recursive_spinlock_is_locked (recursive_spinlock_t *lock) |
#define barrier | ( | ) |
Definition at line 10 of file spinlock.h.
#define spinlock_init | ( | lock | ) |
Definition at line 21 of file spinlock.h.
Referenced by mos_start_kernel(), and naive_sched_init().
#define SPINLOCK_INIT { 0 } |
Definition at line 28 of file spinlock.h.
Referenced by console_register(), and slab_init_one().
#define _spinlock_real_acquire | ( | lock | ) |
Definition at line 31 of file spinlock.h.
#define _spinlock_real_release | ( | lock | ) |
Definition at line 39 of file spinlock.h.
#define spinlock_acquire | ( | lock | ) |
Definition at line 61 of file spinlock.h.
Referenced by blocked_reschedule(), buddy_alloc_n_exact(), buddy_free_n(), buddy_init(), buddy_reserve_n(), console_io_read(), console_io_write(), console_putc(), console_write(), console_write_color(), cow_allocate_zeroed_pages(), dentry_get_from_parent(), dentry_lookup_child(), dmabuf_free(), do_syslog(), dump_list(), futex_wait(), futex_wake(), hashmap_deinit(), hashmap_get(), hashmap_put(), hashmap_remove(), interrupt_handler_register(), ipc_connect_to_server(), ipc_dump_name_waitlist(), ipc_get_server(), ipc_server_accept(), ipc_server_close(), ipc_server_create(), ipc_sysfs_dump_name_waitlist(), kmemcache_alloc(), kmemcache_free(), mm_dump_pagetable(), mm_lock_ctx_pair(), mm_map_kernel_pages(), mm_map_user_pages(), mmstat_sysfs_pagetable_show(), mmstat_sysfs_vmaps_show(), MOS_STATIC_ASSERT(), munmap(), naive_sched_add_thread(), naive_sched_remove_thread(), naive_sched_select_next(), pipe_close_one_end(), pipe_read(), pipe_write(), process_destroy(), process_do_execveat(), process_do_fork(), process_exit(), recursive_spinlock_acquire(), riscv64_trap_handler(), scheduler_wake_thread(), signal_exit_to_user_prepare(), signal_exit_to_user_prepare_syscall(), signal_has_pending(), signal_send_to_thread(), thread_destroy(), thread_exit(), thread_new(), timer_msleep(), timer_tick(), vfs_find_filesystem(), vfs_io_ops_read(), vfs_io_ops_seek(), vfs_io_ops_write(), vfs_register_filesystem(), vm_protect(), vmap_create(), vmap_obtain(), waitlist_append(), waitlist_close(), waitlist_remove_me(), waitlist_wake(), x86_dump_stack_at(), and x86_pit_timer_handler().
#define spinlock_release | ( | lock | ) |
Definition at line 62 of file spinlock.h.
Referenced by buddy_alloc_n_exact(), buddy_free_n(), buddy_init(), buddy_reserve_n(), console_io_read(), console_io_write(), console_putc(), console_write(), console_write_color(), cow_allocate_zeroed_pages(), dentry_get_from_parent(), dentry_lookup_child(), dmabuf_free(), do_syslog(), dump_list(), futex_wait(), futex_wake(), hashmap_deinit(), hashmap_get(), hashmap_put(), hashmap_remove(), interrupt_handler_register(), invalid_page_fault(), ipc_connect_to_server(), ipc_dump_name_waitlist(), ipc_get_server(), ipc_server_accept(), ipc_server_close(), ipc_server_create(), ipc_sysfs_dump_name_waitlist(), kmemcache_alloc(), kmemcache_free(), mm_dump_pagetable(), mm_handle_fault(), mm_map_kernel_pages(), mm_map_user_pages(), mm_unlock_ctx_pair(), mmstat_sysfs_pagetable_show(), mmstat_sysfs_vmaps_show(), munmap(), naive_sched_add_thread(), naive_sched_remove_thread(), naive_sched_select_next(), pipe_close_one_end(), pipe_read(), pipe_write(), process_do_execveat(), process_do_fork(), process_exit(), recursive_spinlock_release(), reschedule(), scheduler_wake_thread(), signal_exit_to_user_prepare(), signal_exit_to_user_prepare_syscall(), signal_has_pending(), signal_send_to_thread(), thread_destroy(), thread_new(), timer_msleep(), timer_tick(), vfs_find_filesystem(), vfs_io_ops_read(), vfs_io_ops_seek(), vfs_io_ops_write(), vfs_register_filesystem(), vm_protect(), vmap_finalise_init(), vmap_split_for_range(), waitlist_append(), waitlist_close(), waitlist_remove_me(), waitlist_wake(), and x86_dump_stack_at().
#define spinlock_acquire_nodebug | ( | lock | ) |
Definition at line 65 of file spinlock.h.
#define spinlock_release_nodebug | ( | lock | ) |
Definition at line 66 of file spinlock.h.
#define RECURSIVE_SPINLOCK_INIT { SPINLOCK_INIT, NULL, 0 } |
Definition at line 81 of file spinlock.h.
should_inline bool spinlock_is_locked | ( | const spinlock_t * | lock | ) |
Definition at line 68 of file spinlock.h.
Referenced by add_to_freelist(), break_this_pfn(), dentry_create(), do_attach_vmap(), extract_exact_range(), mm_flag_pages_locked(), mm_get_free_vaddr_locked(), mm_get_is_mapped_locked(), mm_resolve_cow_fault(), populate_freelist(), reschedule(), signal_get_next_pending(), thread_destroy(), thread_exit_locked(), vmap_destroy(), vmap_finalise_init(), vmap_obtain(), vmap_split(), vmap_split_for_range(), and x86_dump_stack_at().
should_inline void recursive_spinlock_acquire | ( | recursive_spinlock_t * | lock, |
void * | owner ) |
Definition at line 84 of file spinlock.h.
should_inline void recursive_spinlock_release | ( | recursive_spinlock_t * | lock, |
void * | owner ) |
Definition at line 98 of file spinlock.h.
should_inline bool recursive_spinlock_is_locked | ( | recursive_spinlock_t * | lock | ) |
Definition at line 111 of file spinlock.h.