亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? tx_br.c

?? ThreadX優秀的硬實時操作系統.This Express Start Guide is designed to help you install and use ThreadX for the
?? C
字號:
/**************************************************************************/ 
/*                                                                        */ 
/*            Copyright (c) 1996-2000 by Express Logic Inc.               */ 
/*                                                                        */ 
/*  This software is copyrighted by and is the sole property of Express   */ 
/*  Logic, Inc.  All rights, title, ownership, or other interests         */ 
/*  in the software remain the property of Express Logic, Inc.  This      */ 
/*  software may only be used in accordance with the corresponding        */ 
/*  license agreement.  Any unauthorized use, duplication, transmission,  */ 
/*  distribution, or disclosure of this software is expressly forbidden.  */ 
/*                                                                        */
/*  This Copyright notice may not be removed or modified without prior    */ 
/*  written consent of Express Logic, Inc.                                */ 
/*                                                                        */ 
/*  Express Logic, Inc. reserves the right to modify this software        */ 
/*  without notice.                                                       */ 
/*                                                                        */ 
/*  Express Logic, Inc.                                                   */
/*  11440 West Bernardo Court               info@expresslogic.com         */
/*  Suite 366                               http://www.expresslogic.com   */
/*  San Diego, CA  92127                                                  */
/*                                                                        */
/**************************************************************************/


/**************************************************************************/
/**************************************************************************/
/**                                                                       */ 
/** ThreadX Component                                                     */ 
/**                                                                       */
/**   Block Pool (BLO)                                                    */
/**                                                                       */
/**************************************************************************/
/**************************************************************************/

#define TX_SOURCE_CODE


/* Include necessary system files.  */

#include    "tx_api.h"
#include    "tx_thr.h"
#include    "tx_tim.h"
#include    "tx_blo.h"


/**************************************************************************/ 
/*                                                                        */ 
/*  FUNCTION                                               RELEASE        */ 
/*                                                                        */ 
/*    _tx_block_release                                   PORTABLE C      */ 
/*                                                           3.0f         */ 
/*  AUTHOR                                                                */ 
/*                                                                        */ 
/*    William E. Lamie, Express Logic, Inc.                               */ 
/*                                                                        */ 
/*  DESCRIPTION                                                           */ 
/*                                                                        */ 
/*    This function returns a previously allocated block to its           */ 
/*    associated memory block pool.                                       */ 
/*                                                                        */ 
/*  INPUT                                                                 */ 
/*                                                                        */ 
/*    block_ptr                         Pointer to memory block           */ 
/*                                                                        */ 
/*  OUTPUT                                                                */ 
/*                                                                        */ 
/*    TX_SUCCESS                        Successful completion status      */ 
/*                                                                        */ 
/*  CALLS                                                                 */ 
/*                                                                        */ 
/*    _tx_timer_deactivate              Deactivate timer routine          */ 
/*    _tx_thread_resume                 Resume thread service             */ 
/*    _tx_thread_system_return          Return to system routine          */ 
/*                                                                        */ 
/*  CALLED BY                                                             */ 
/*                                                                        */ 
/*    Application Code                                                    */ 
/*                                                                        */ 
/*  RELEASE HISTORY                                                       */ 
/*                                                                        */ 
/*    DATE              NAME                      DESCRIPTION             */ 
/*                                                                        */ 
/*  12-31-1996     William E. Lamie         Initial Version 3.0           */ 
/*  11-11-1997     William E. Lamie         Modified comment(s),          */ 
/*                                            resulting in version 3.0b.  */ 
/*  03-01-1998     William E. Lamie         Optimized post RESTORE        */ 
/*                                            processing, resulting in    */ 
/*                                            version 3.0d.               */ 
/*  01-01-1999     William E. Lamie         Modified comment(s),          */ 
/*                                            resulting in version 3.0e.  */ 
/*  11-01-1999     William E. Lamie         Modified comment(s),          */ 
/*                                            added logic to track events,*/ 
/*                                            resulting in version 3.0f.  */ 
/*                                                                        */ 
/**************************************************************************/ 
UINT    _tx_block_release(VOID *block_ptr)
{

TX_INTERRUPT_SAVE_AREA

REG_1   TX_BLOCK_POOL   *pool_ptr;          /* Pool pointer            */
REG_2   TX_THREAD       *thread_ptr;        /* Working thread pointer  */
REG_3   CHAR_PTR        work_ptr;           /* Working block pointer   */



    /* Disable interrupts to put this block back in the pool.  */
    TX_DISABLE

    /* Pickup the pool pointer which is just previous to the starting 
       address of the block that the caller sees.  */
    work_ptr =  ((CHAR_PTR) block_ptr) - sizeof(CHAR_PTR);
    pool_ptr =  *((TX_BLOCK_POOL_PTR *) work_ptr);

    /* Log this kernel call.  */
    TX_EL_BLOCK_RELEASE_INSERT

    /* Determine if there are any threads suspended on the block pool.  */
    thread_ptr =  pool_ptr -> tx_block_pool_suspension_list;
    if (thread_ptr)
    {

        /* Remove the suspended thread from the list.  */

        /* See if this is the only suspended thread on the list.  */
        if (thread_ptr == thread_ptr -> tx_suspended_next)
        {

            /* Yes, the only suspended thread.  */

            /* Update the head pointer.  */
            pool_ptr -> tx_block_pool_suspension_list =  TX_NULL;
        }
        else
        {

            /* At least one more thread is on the same expiration list.  */

            /* Update the list head pointer.  */
            pool_ptr -> tx_block_pool_suspension_list =  thread_ptr -> tx_suspended_next;

            /* Update the links of the adjacent threads.  */
            (thread_ptr -> tx_suspended_next) -> tx_suspended_previous =  
                                                    thread_ptr -> tx_suspended_previous;
            (thread_ptr -> tx_suspended_previous) -> tx_suspended_next =
                                                    thread_ptr -> tx_suspended_next;
        } 
 
        /* Decrement the suspension count.  */
        pool_ptr -> tx_block_pool_suspended_count--;

        /* Prepare for resumption of the first thread.  */

        /* Clear cleanup routine to avoid timeout.  */
        thread_ptr -> tx_suspend_cleanup =  TX_NULL;

        /* Temporarily disable preemption.  */
        _tx_thread_preempt_disable++;

        /* Restore interrupts.  */
        TX_RESTORE

        /* Return this block pointer to the suspended thread waiting for
           a block.  */
        *((CHAR_PTR *) thread_ptr -> tx_additional_suspend_info) =  (CHAR_PTR) block_ptr;

        /* Deactivate the timeout timer if necessary.  */
        if (thread_ptr -> tx_thread_timer.tx_list_head)
        {

            /* Deactivate the thread's timeout timer.  */
            _tx_timer_deactivate(&(thread_ptr -> tx_thread_timer));
        }
        else
        {

            /* Clear the remaining time to ensure timer doesn't get activated.  */
            thread_ptr -> tx_thread_timer.tx_remaining_ticks =  0;
        }

        /* Put return status into the thread control block.  */
        thread_ptr -> tx_suspend_status =  TX_SUCCESS;        

        /* Resume thread.  */
        if (_tx_thread_resume(thread_ptr))

            /* Preemption is required, transfer control back to 
               system.  */
            _tx_thread_system_return();

        /* Return success.  */
        return(TX_SUCCESS);
    }
    else
    {

        /* No thread is suspended for a memory block.  */

        /* Put the block back in the available list.  */
        *((CHAR_PTR *) work_ptr) =  pool_ptr -> tx_block_pool_available_list;

        /* Adjust the head pointer.  */
        pool_ptr -> tx_block_pool_available_list =  work_ptr;        

        /* Increment the count of available blocks.  */
        pool_ptr -> tx_block_pool_available++;
    }

    /* Restore interrupts.  */
    TX_RESTORE

    /* Return completion status.  */
    return(TX_SUCCESS);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产一区a| 欧美视频在线观看一区| 国产成人一区二区精品非洲| 成人动漫在线一区| 91老师片黄在线观看| ...av二区三区久久精品| 亚洲九九爱视频| 精品亚洲porn| 在线欧美日韩精品| 26uuu精品一区二区在线观看| 一区二区三区精密机械公司| 懂色av一区二区三区免费看| 日韩三级av在线播放| 亚洲少妇屁股交4| 国产成人av电影在线观看| 国产丝袜美腿一区二区三区| 蜜臀av性久久久久蜜臀aⅴ| 91免费版在线| 天堂av在线一区| gogogo免费视频观看亚洲一| 久久久99免费| 美女网站在线免费欧美精品| 久久久九九九九| 99久久99久久免费精品蜜臀| 中文字幕精品一区二区三区精品| 免费在线观看日韩欧美| 欧美美女黄视频| 亚洲精品欧美综合四区| 9191久久久久久久久久久| 亚洲中国最大av网站| 99国产精品视频免费观看| 亚洲国产一区二区视频| 色噜噜狠狠色综合中国| 亚洲色图色小说| 日韩欧美激情在线| 捆绑紧缚一区二区三区视频| 日韩一级大片在线观看| 成人免费视频播放| 中文字幕一区在线观看视频| 欧美高清视频www夜色资源网| 国产精品18久久久久久久久 | 亚洲v精品v日韩v欧美v专区| 91理论电影在线观看| 日本三级亚洲精品| 日韩精品中文字幕在线不卡尤物| 不卡的电影网站| 日韩高清在线一区| 亚洲欧美怡红院| 亚洲精品一区二区三区在线观看| 在线观看亚洲专区| 国产麻豆精品在线| 日本一区二区在线不卡| 波多野结衣中文字幕一区二区三区 | caoporm超碰国产精品| 日韩中文字幕亚洲一区二区va在线| 欧美国产综合色视频| 91精品国产免费久久综合| 丝袜诱惑制服诱惑色一区在线观看 | 久久精品视频免费| 91精品国产综合久久精品| 91在线一区二区三区| 国产乱码精品一区二区三区忘忧草 | 欧美日韩免费一区二区三区| 日韩不卡免费视频| 亚洲免费在线电影| 在线不卡中文字幕播放| 91在线小视频| www.66久久| 国产suv精品一区二区三区 | 黄一区二区三区| 国产精品亲子乱子伦xxxx裸| 色一情一乱一乱一91av| 丝袜国产日韩另类美女| 亚洲综合无码一区二区| 亚洲欧美另类小说视频| 国产精品入口麻豆原神| 欧美激情一区二区三区四区| 久久久久久亚洲综合| 精品蜜桃在线看| 99国内精品久久| 9人人澡人人爽人人精品| 国产.欧美.日韩| 成人永久aaa| 成人视屏免费看| a级精品国产片在线观看| 成人综合在线网站| 国产91丝袜在线18| 成人免费高清视频| 成人精品国产福利| 不卡一区二区三区四区| 一道本成人在线| 在线观看一区日韩| 欧美精品aⅴ在线视频| 欧美一级午夜免费电影| 精品国产91亚洲一区二区三区婷婷| 欧美va亚洲va国产综合| 久久嫩草精品久久久精品| 久久精品在这里| 中文字幕一区视频| 一区二区成人在线视频| 午夜婷婷国产麻豆精品| 国产精品电影一区二区| 精品盗摄一区二区三区| 国产亚洲va综合人人澡精品| 中文字幕制服丝袜一区二区三区| 一区二区三区中文字幕在线观看| 一区二区三区欧美亚洲| 日韩精品视频网| 国产精品资源在线观看| 不卡视频一二三| 欧美日韩www| 色噜噜狠狠成人网p站| 欧美高清视频一二三区| 国产日产亚洲精品系列| 亚洲精品国产第一综合99久久 | 天堂久久一区二区三区| 激情文学综合插| 91亚洲国产成人精品一区二三| 欧美日韩一区久久| 久久综合中文字幕| 亚洲欧洲韩国日本视频| 日本伊人色综合网| 成人av免费在线观看| 欧美猛男男办公室激情| 国产三级精品视频| 亚洲二区在线观看| 国产成人高清视频| 欧美日韩在线不卡| 久久精品综合网| 亚洲国产你懂的| 国产成a人无v码亚洲福利| 在线日韩一区二区| 国产午夜亚洲精品午夜鲁丝片| 一区二区三区在线影院| 国产麻豆视频一区| 欧美精品aⅴ在线视频| 亚洲视频免费观看| 精品一区二区三区影院在线午夜 | 欧美日韩国产123区| 久久久精品tv| 丝瓜av网站精品一区二区| 春色校园综合激情亚洲| 日韩美一区二区三区| 亚洲乱码一区二区三区在线观看| 国产一区二区91| 欧美区一区二区三区| 中文字幕一区二区三区色视频| 极品尤物av久久免费看| 欧美图区在线视频| 自拍偷自拍亚洲精品播放| 国产精品18久久久久久久网站| 51精品国自产在线| 亚洲一区二区三区在线播放| 成人avav在线| 奇米色一区二区三区四区| 色猫猫国产区一区二在线视频| 国产三级久久久| 国产一区二区三区美女| 日韩免费观看2025年上映的电影| 丝袜脚交一区二区| 欧美三级日本三级少妇99| 亚洲欧美经典视频| 99久久综合色| 国产精品国产三级国产aⅴ原创| 国产一二精品视频| 精品999在线播放| 麻豆国产91在线播放| 欧美一区二区三区不卡| 三级影片在线观看欧美日韩一区二区| 在线观看日韩av先锋影音电影院| 日韩一区在线播放| 成人国产精品免费观看动漫| 亚洲国产精品国自产拍av| 国产suv一区二区三区88区| 国产视频一区在线观看| 国产丶欧美丶日本不卡视频| 国产欧美一区二区三区沐欲| 国产精品一区二区在线看| 久久一夜天堂av一区二区三区| 麻豆国产精品官网| 久久综合成人精品亚洲另类欧美 | 亚洲欧美日韩国产另类专区| 91性感美女视频| 亚洲一区二区在线观看视频| 欧美日韩精品一区视频| 亚洲成人自拍网| 91精品国产乱| 激情综合色播激情啊| 久久久天堂av| av动漫一区二区| 一区二区三区国产精品| 在线电影国产精品| 韩国三级在线一区| 国产日韩欧美制服另类| jizzjizzjizz欧美| 午夜国产精品影院在线观看| 精品日韩在线一区| 成人午夜电影久久影院| 国产精品亚洲午夜一区二区三区| 中文欧美字幕免费|