From: Jorrit Herder Date: Thu, 14 Jul 2005 15:27:40 +0000 (+0000) Subject: Renamed file. X-Git-Tag: v3.1.0~610 X-Git-Url: http://zhaoyanbai.com/repos/doc/tz-art.htm?a=commitdiff_plain;h=2c730e8a8c43daf7a6bdbb60bfbb16c9a7d41a0b;p=minix.git Renamed file. --- diff --git a/kernel/misc.c b/kernel/utility.c similarity index 72% rename from kernel/misc.c rename to kernel/utility.c index f8bf3edd0..5835f8cc5 100755 --- a/kernel/misc.c +++ b/kernel/utility.c @@ -1,5 +1,7 @@ /* This file contains a collection of miscellaneous procedures: * panic abort MINIX due to a fatal error + * safe_lock lock the kernel, use in combination with safe_unlock + * safe_unlock unlock the kernel, but prevent breaking nested locks * alloc_bit bit map manipulation * free_bit bit map manipulation */ @@ -10,6 +12,34 @@ #include +PRIVATE int relock_count = 0; + +/*===========================================================================* + * safe_lock * + *===========================================================================*/ +PUBLIC void safe_lock(c,v) +int c; +char *v; +{ + if(!(read_cpu_flags() & X86_FLAG_I)) { + relock_count++; + } else { + intr_disable(); + } +} + +/*===========================================================================* + * safe_unlock * + *===========================================================================*/ +PUBLIC void safe_unlock(void) +{ + if(! relock_count) { + intr_enable(); + } else { + relock_count--; + } +} + /*===========================================================================* * panic * *===========================================================================*/ @@ -30,6 +60,9 @@ int n; prepare_shutdown(RBT_PANIC); } + + + /*===========================================================================* * free_bit * *===========================================================================*/