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

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

?? tx_ba.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_allocate                                  PORTABLE C      */ 
/*                                                           3.0f         */ 
/*  AUTHOR                                                                */ 
/*                                                                        */ 
/*    William E. Lamie, Express Logic, Inc.                               */ 
/*                                                                        */ 
/*  DESCRIPTION                                                           */ 
/*                                                                        */ 
/*    This function allocates a block from the specified memory block     */ 
/*    pool.                                                               */ 
/*                                                                        */ 
/*  INPUT                                                                 */ 
/*                                                                        */ 
/*    pool_ptr                          Pointer to pool control block     */ 
/*    block_ptr                         Pointer to place allocated block  */ 
/*                                        pointer                         */
/*    wait_option                       Suspension option                 */ 
/*                                                                        */ 
/*  OUTPUT                                                                */ 
/*                                                                        */ 
/*    status                            Completion status                 */ 
/*                                                                        */ 
/*  CALLS                                                                 */ 
/*                                                                        */ 
/*    _tx_timer_activate                Activate timer routine            */ 
/*    _tx_thread_suspend                Suspend thread service            */ 
/*                                                                        */ 
/*  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_allocate(TX_BLOCK_POOL *pool_ptr, VOID **block_ptr, ULONG wait_option)
{

TX_INTERRUPT_SAVE_AREA

REG_1   UINT        status;                 /* Return status           */
REG_2   TX_THREAD   *thread_ptr;            /* Working thread pointer  */
REG_3   CHAR_PTR    work_ptr;               /* Working block pointer   */


    /* Disable interrupts to get a block from the pool.  */
    TX_DISABLE

    /* Log this kernel call.  */
    TX_EL_BLOCK_ALLOCATE_INSERT

    /* Determine if there is an available block.  */
    if (pool_ptr -> tx_block_pool_available)
    {

        /* Yes, a block is available.  Decrement the available count.  */
        pool_ptr -> tx_block_pool_available--;

        /* Pickup the current block pointer.  */
        work_ptr =  pool_ptr -> tx_block_pool_available_list;

        /* Return the first available block to the caller.  */
        *((CHAR_PTR *) block_ptr) =  work_ptr + sizeof(CHAR_PTR);

        /* Modify the available list to point at the next block in the pool. */
        pool_ptr -> tx_block_pool_available_list =
                *((CHAR_PTR *) work_ptr);

        /* Save the pool's address in the block for when it is released!  */
        *((CHAR_PTR *) work_ptr) =  (CHAR_PTR) pool_ptr;
    
        /* Set status to success.  */
        status =  TX_SUCCESS;
    }
    else
    {

        /* Determine if the request specifies suspension.  */
        if (wait_option)
        {

            /* Prepare for suspension of this thread.  */
            
            /* Pickup thread pointer.  */
            thread_ptr =  _tx_thread_current_ptr;

            /* Setup cleanup routine pointer.  */
            thread_ptr -> tx_suspend_cleanup =  _tx_block_pool_cleanup;

            /* Setup cleanup information, i.e. this pool control
               block.  */
            thread_ptr -> tx_suspend_control_block =  (VOID_PTR) pool_ptr;

            /* Save the return block pointer address as well.  */
            thread_ptr -> tx_additional_suspend_info =  (VOID_PTR) block_ptr;

            /* Setup suspension list.  */
            if (pool_ptr -> tx_block_pool_suspension_list)
            {

                /* This list is not NULL, add current thread to the end. */
                thread_ptr -> tx_suspended_next =      
                        pool_ptr -> tx_block_pool_suspension_list;
                thread_ptr -> tx_suspended_previous =  
                        (pool_ptr -> tx_block_pool_suspension_list) -> tx_suspended_previous;
                ((pool_ptr -> tx_block_pool_suspension_list) -> tx_suspended_previous) -> tx_suspended_next =  
                        thread_ptr;
                (pool_ptr -> tx_block_pool_suspension_list) -> tx_suspended_previous =   thread_ptr;
            }
            else
            {

                /* No other threads are suspended.  Setup the head pointer and
                   just setup this threads pointers to itself.  */
                pool_ptr -> tx_block_pool_suspension_list =  thread_ptr;
                thread_ptr -> tx_suspended_next =            thread_ptr;
                thread_ptr -> tx_suspended_previous =        thread_ptr;
            }

            /* Increment the suspended thread count.  */
            pool_ptr -> tx_block_pool_suspended_count++;

            /* Set the state to suspended.  */
            thread_ptr -> tx_state =       TX_BLOCK_MEMORY;

            /* Set the suspending flag.  */
            thread_ptr -> tx_suspending =  TX_TRUE;

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

            /* Save the timeout value.  */
            thread_ptr -> tx_thread_timer.tx_remaining_ticks =  wait_option;

            /* Restore interrupts.  */
            TX_RESTORE

            /* See if we need to start a timer.  */
            if (wait_option != TX_WAIT_FOREVER)
            {

                /* A timeout is required.  */

                /* Activate the thread timer for the timeout.  */
                _tx_timer_activate(&(thread_ptr -> tx_thread_timer));
            }

            /* Call actual thread suspension routine.  */
            _tx_thread_suspend(thread_ptr);

            /* Return the completion status.  */
            return(thread_ptr -> tx_suspend_status);
        }
        else
    
            /* Immediate return, return error completion.  */
            status =  TX_NO_MEMORY;
    }

    /* Restore interrupts.  */
    TX_RESTORE

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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人自拍视频在线观看| 韩国av一区二区三区四区| 精品第一国产综合精品aⅴ| 色综合久久久久综合体桃花网| 激情五月婷婷综合网| 日韩精品一区第一页| 亚洲图片自拍偷拍| 亚洲观看高清完整版在线观看| 一区二区在线免费观看| 一区二区成人在线视频| 亚洲精品水蜜桃| 一区二区免费视频| 亚洲成人午夜电影| 奇米一区二区三区| 六月婷婷色综合| 国产在线精品视频| 成人中文字幕合集| 成人精品视频网站| 色国产精品一区在线观看| 91黄色免费网站| 这里只有精品视频在线观看| 欧美一级片在线看| 国产视频一区在线播放| 国产精品久久久久久久久免费丝袜 | 在线亚洲+欧美+日本专区| 在线免费亚洲电影| 日韩欧美在线不卡| 中文乱码免费一区二区| 亚洲激情五月婷婷| 裸体歌舞表演一区二区| www.亚洲激情.com| 91精品国产综合久久久蜜臀粉嫩 | av亚洲产国偷v产偷v自拍| 91丝袜高跟美女视频| 欧美日韩高清一区| 国产网红主播福利一区二区| 亚洲欧美日韩国产成人精品影院| 一区二区三区四区高清精品免费观看 | 午夜视频在线观看一区二区| 狠狠v欧美v日韩v亚洲ⅴ| 91美女福利视频| 欧美xxxx老人做受| 一区二区在线免费观看| 国产一区二区三区免费看| 91尤物视频在线观看| 日韩一区和二区| 亚洲欧美另类久久久精品| 韩国三级中文字幕hd久久精品| 色激情天天射综合网| 久久综合999| 亚洲国产精品一区二区www| 国产成人自拍网| 日韩亚洲欧美在线| 夜夜嗨av一区二区三区网页| 国产黄色成人av| 日韩欧美综合一区| 亚洲成av人片一区二区三区| 风间由美中文字幕在线看视频国产欧美 | 26uuu色噜噜精品一区二区| 亚洲激情图片qvod| fc2成人免费人成在线观看播放| 日韩三级在线免费观看| 亚洲成a人片在线观看中文| 91免费看片在线观看| 日韩精品中文字幕在线不卡尤物 | 国产成人av自拍| 91麻豆精品国产91久久久更新时间| 国产精品美女久久久久久久久久久| 久久精品久久综合| 日韩欧美中文字幕精品| 午夜不卡av在线| 欧美二区在线观看| 韩国三级在线一区| 精品久久久久久无| 亚洲成人一二三| 在线免费观看日韩欧美| 久久久欧美精品sm网站| 国产资源在线一区| 91精品国产一区二区| 亚洲国产日韩一区二区| 午夜av一区二区三区| 欧美绝品在线观看成人午夜影视| 国产精品美女久久久久av爽李琼 | 蜜桃av一区二区三区| 国产黄人亚洲片| 久久综合99re88久久爱| 男人的天堂久久精品| 欧美性xxxxxxxx| 亚洲免费观看高清完整版在线观看| 久久精品国产色蜜蜜麻豆| 日韩免费视频线观看| 日日夜夜一区二区| 91极品美女在线| 一区二区激情小说| 精品国产免费一区二区三区香蕉| 一级女性全黄久久生活片免费| 色94色欧美sute亚洲线路一久| 国产精品久久久久久久久免费樱桃| 国产一区二区视频在线| 久久网站最新地址| 国产一区二区三区在线观看精品| 欧美成人vps| 久久99精品国产麻豆婷婷| 3atv在线一区二区三区| 国产一区二区伦理| 国产清纯白嫩初高生在线观看91| 久久精品久久99精品久久| 精品日韩在线观看| 国产一区二区在线电影| 中文一区一区三区高中清不卡| 波多野结衣欧美| 亚洲美女电影在线| 欧美日韩在线播放一区| 偷拍日韩校园综合在线| 日韩欧美二区三区| 成人免费高清在线| 亚洲精品日韩综合观看成人91| 丁香天五香天堂综合| 亚洲色图20p| 欧美丰满一区二区免费视频 | 欧美日韩不卡一区二区| 日本成人在线电影网| 26uuu欧美| 91毛片在线观看| 亚洲一区av在线| 日韩精品最新网址| 欧美日韩五月天| 韩国v欧美v亚洲v日本v| 国产精品久久久久四虎| 欧美日韩一区二区三区四区| 日本va欧美va瓶| 国产精品国产三级国产三级人妇| 精品嫩草影院久久| 色中色一区二区| 久久99久久99小草精品免视看| 国产日本一区二区| 国产精品水嫩水嫩| 色婷婷综合久久久久中文| 国产精品一区二区在线看| 一区二区三区精密机械公司| 欧美成人女星排名| 91色综合久久久久婷婷| 久久99国产精品尤物| 亚洲日本韩国一区| 国产精品天天看| 精品日韩在线观看| 欧美日韩免费电影| av网站一区二区三区| 久久99深爱久久99精品| 亚洲视频一区在线| 综合久久一区二区三区| 亚洲人成7777| 不卡av免费在线观看| 性做久久久久久免费观看欧美| 久久久久久免费毛片精品| 欧美日韩一区二区电影| 在线精品视频免费观看| 国产精品白丝在线| 99re这里都是精品| 日本强好片久久久久久aaa| 日本怡春院一区二区| 亚洲综合区在线| 国产一区二区三区综合| 97精品电影院| 欧美另类变人与禽xxxxx| 欧美mv日韩mv国产网站app| 中文字幕第一页久久| 亚洲午夜精品在线| 韩国一区二区三区| 欧美日韩久久一区二区| 国产亚洲欧美色| 国产精品一区二区三区网站| 成人动漫精品一区二区| 欧美中文字幕一二三区视频| 国产亚洲精品福利| 亚洲午夜日本在线观看| 精品制服美女丁香| 99久久国产综合精品色伊| 日韩亚洲欧美在线| 亚洲欧洲精品一区二区三区 | 日韩成人免费在线| 成人av免费在线观看| 欧美精品在线视频| 中文字幕在线观看一区二区| 日韩av电影一区| 91蝌蚪porny| 久久久久久一二三区| 亚洲sss视频在线视频| 成人av在线一区二区三区| 91精品婷婷国产综合久久性色| 中文字幕免费在线观看视频一区| 亚洲一区在线播放| 欧美亚洲自拍偷拍| 国产日韩欧美制服另类| 日韩av一级电影| 另类小说色综合网站| 久久只精品国产| 国产在线一区二区综合免费视频| 欧美久久高跟鞋激| 成人欧美一区二区三区1314|