???????????????????????os???????????????????????????????????????????????????????????

RAW_U16 raw_semaphore_delete(RAW_SEMAPHORE *semaphore_ptr)
{
 LIST *block_list_head;
 
 RAW_SR_ALLOC();

 #if (RAW_SEMA_FUNCTION_CHECK > 0)
 
 if (semaphore_ptr == 0) {
 
  return RAW_NULL_OBJECT;
 }
 
 #endif

 block_list_head = &semaphore_ptr->common_block_obj.block_list;
 
 RAW_CRITICAL_ENTER();

 /*All task blocked on this queue is waken up*/
 while (!is_list_empty(block_list_head)) {
  delete_pend_obj(list_entry(block_list_head->next?? RAW_TASK_OBJ?? task_list));
 }                           

 RAW_CRITICAL_EXIT();
 raw_sched();
 return RAW_SUCCESS;
}RAW_U16 raw_semaphore_delete(RAW_SEMAPHORE *semaphore_ptr)
{
 LIST *block_list_head;
 
 RAW_SR_ALLOC();

 #if (RAW_SEMA_FUNCTION_CHECK > 0)
 
 if (semaphore_ptr == 0) {
 
  return RAW_NULL_OBJECT;
 }
 
 #endif

 block_list_head = &semaphore_ptr->common_block_obj.block_list;
 
 RAW_CRITICAL_ENTER();

 /*All task blocked on this queue is waken up*/
 while (!is_list_empty(block_list_head)) {
  delete_pend_obj(list_entry(block_list_head->next?? RAW_TASK_OBJ?? task_list));
 }                           

 RAW_CRITICAL_EXIT();
 raw_sched();
 return RAW_SUCCESS;

}

????????????????????????????????????????????????

??????1???ж??????????

??????2???????????????е?????????

??????3???????????????????????????????????п????????????????????????

??????4??????????????У??????????

??????????漸?????????????????????os?????????????????????????????????ж????Щ???????????????????????????????????????????????????????Щ?????????????£?

??????1??????????????????????ж?????????в?????????????????ж??????????

??????2???????????????????????е???????ж???????????????????????????????????????????????????????????????????

??????3?????????д??????????????????????ú?????????????????

??????4??????os?????????????????????????????н????????????????????????????????С?