comparison packages/kernel/current/src/common/kapi.cxx @ 84:489eb5632bc3 ecos-sw-2000-04-28

Merge from eCos master repository on 2000-04-28-18:44:39-BST
author jlarmour
date Fri, 28 Apr 2000 18:18:36 +0000
parents bf00f99aec69
children 5a0cc6c243a9
comparison
equal deleted inserted replaced
83:1094d5fdd3e0 84:489eb5632bc3
113 // get_sched_lock() is unsigned, see below "cyg_ucount32 lock" 113 // get_sched_lock() is unsigned, see below "cyg_ucount32 lock"
114 CYG_ASSERT( (0xff000000 & (Cyg_Scheduler::get_sched_lock())) == 0, 114 CYG_ASSERT( (0xff000000 & (Cyg_Scheduler::get_sched_lock())) == 0,
115 "Scheduler overlocked" ); 115 "Scheduler overlocked" );
116 } 116 }
117 117
118 /* Lock the scheduler, but never more than level=1. */
119 externC void cyg_scheduler_safe_lock(void)
120 {
121 Cyg_Scheduler::lock();
122 cyg_ucount32 slock = Cyg_Scheduler::get_sched_lock();
123 if (slock > 1)
124 Cyg_Scheduler::unlock();
125 // get_sched_lock() is unsigned, see below "cyg_ucount32 lock"
126 CYG_ASSERT( (0xff000000 & (Cyg_Scheduler::get_sched_lock())) == 0,
127 "Scheduler overlocked" );
128 }
129
118 /* Unlock the scheduler. */ 130 /* Unlock the scheduler. */
119 externC void cyg_scheduler_unlock(void) 131 externC void cyg_scheduler_unlock(void)
120 { 132 {
121 cyg_ucount32 slock = Cyg_Scheduler::get_sched_lock(); 133 cyg_ucount32 slock = Cyg_Scheduler::get_sched_lock();
122 CYG_ASSERT( 0 < slock, "Scheduler not locked" ); 134 CYG_ASSERT( 0 < slock, "Scheduler not locked" );