# spinlock.c File Reference

`#include <ubixos/spinlock.h>`
`#include <ubixos/sched.h>`

Include dependency graph for spinlock.c:

Go to the source code of this file.

## Functions

void | spinLock (spinLock_t *lock)
void | spinLock_scheduler (spinLock_t *lock)
void | spinLockInit (spinLock_t *lock)
int | spinLockLocked (spinLock_t *lock)
int | spinTryLock (spinLock_t *lock)
void | spinUnlock (spinLock_t *lock)

## Function Documentation

void spinLock | ( | spinLock_t * | lock | ) |

Definition at line 56 of file spinlock.c.

References sched_yield(), and spinTryLock().

Referenced by adjustCowCounter(), cpuInfo(), devfs_makeNode(), devfs_open(), device_add(), device_find(), device_remove(), fclose(), fdcRead(), fopen(), freePage(), getEmptyDesc(), kernel_function(), kfree(), kmalloc(), mpi_createMbox(), mpi_destroyMbox(), mpi_fetchMessage(), mpi_postMessage(), mpi_spam(), ne2kAllocBuffer(), schedNewTask(), smpInit(), tty_print(), ubixfs_cacheAdd(), ubixfs_cacheFind(), vmm_getFreeMallocPage(), vmm_pageFault(), vmm_remapPage(), vmmCopyVirtualSpace(), vmmFindFreePage(), vmmFreeProcessPages(), vmmGetFreeKernelPage(), vmmGetFreePage(), and vmmGetFreeVirtualPage().

Here is the call graph for this function:

void spinLock_scheduler | ( | spinLock_t * | lock | ) |

Definition at line 64 of file spinlock.c.

References spinTryLock().

Here is the call graph for this function:

void spinLockInit | ( | spinLock_t * | lock | ) |

Definition at line 33 of file spinlock.c.

References SPIN_LOCK_INITIALIZER.

int spinLockLocked | ( | spinLock_t * | lock | ) |

Definition at line 70 of file spinlock.c.

Referenced by c_ap_boot().

int spinTryLock | ( | spinLock_t * | lock | ) |

Definition at line 48 of file spinlock.c.

Referenced by keyboardHandler(), sched(), spinLock(), and spinLock_scheduler().

void spinUnlock | ( | spinLock_t * | lock | ) |

Definition at line 37 of file spinlock.c.

Referenced by adjustCowCounter(), cpuInfo(), devfs_makeNode(), devfs_open(), device_add(), device_find(), device_remove(), fclose(), fdcRead(), fopen(), freePage(), getEmptyDesc(), kernel_function(), keyboardHandler(), kfree(), kmalloc(), mpi_createMbox(), mpi_destroyMbox(), mpi_fetchMessage(), mpi_postMessage(), mpi_spam(), ne2kAllocBuffer(), schedNewTask(), smpInit(), tty_print(), ubixfs_cacheAdd(), ubixfs_cacheFind(), vmm_getFreeMallocPage(), vmm_pageFault(), vmm_remapPage(), vmmCopyVirtualSpace(), vmmFindFreePage(), vmmFreeProcessPages(), vmmGetFreeKernelPage(), vmmGetFreePage(), and vmmGetFreeVirtualPage().