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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? tx_efg.c

?? ThreadX優(yōu)秀的硬實(shí)時(shí)操作系統(tǒng).This Express Start Guide is designed to help you install and use ThreadX for the
?? C
字號(hào):
/**************************************************************************/ 
/*                                                                        */ 
/*            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                                                     */ 
/**                                                                       */
/**   Event Flags (EVE)                                                   */
/**                                                                       */
/**************************************************************************/
/**************************************************************************/

#define TX_SOURCE_CODE


/* Include necessary system files.  */

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


/**************************************************************************/ 
/*                                                                        */ 
/*  FUNCTION                                               RELEASE        */ 
/*                                                                        */ 
/*    _tx_event_flags_get                                 PORTABLE C      */ 
/*                                                           3.0f         */ 
/*  AUTHOR                                                                */ 
/*                                                                        */ 
/*    William E. Lamie, Express Logic, Inc.                               */ 
/*                                                                        */ 
/*  DESCRIPTION                                                           */ 
/*                                                                        */ 
/*    This function gets the specified event flags from the group,        */ 
/*    acording to the get option.  The get option also specifies whether  */ 
/*    or not the retrieved flags are cleared.                             */ 
/*                                                                        */ 
/*  INPUT                                                                 */ 
/*                                                                        */ 
/*    group_ptr                         Pointer to group control block    */ 
/*    requested_event_flags             Event flags requested             */ 
/*    get_option                        Specifies and/or and clear options*/ 
/*    actual_flags_ptr                  Pointer to place the actual flags */ 
/*                                        the service retrieved           */ 
/*    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_event_flags_get(TX_EVENT_FLAGS_GROUP *group_ptr, ULONG requested_flags,
                    UINT get_option, ULONG *actual_flags_ptr, ULONG wait_option)
{

TX_INTERRUPT_SAVE_AREA

REG_1   UINT        status;                 /* Return status           */
REG_2   TX_THREAD   *thread_ptr;            /* Working thread pointer  */


    /* Disable interrupts to examine the event flags group.  */
    TX_DISABLE

    /* Log this kernel call.  */
    TX_EL_EVENT_FLAGS_GET_INSERT

    /* Determine if the event flags are present, based on the get option.  */
    if (get_option & TX_EVENT_FLAGS_AND_MASK)
    {

        /* All flags must be present to satisfy request.  */
        if ((group_ptr -> tx_event_flags_current & requested_flags) == requested_flags)
    
            /* Yes, all the events are present.  */
            status =  TX_SUCCESS;
        else

            /* No, not all the events are present.  */
            status =  TX_NO_EVENTS;
    }
    else
    {

        /* Any of the events will satisfy the request.  */
        if (group_ptr -> tx_event_flags_current & requested_flags)

            /* Yes, one or more of the requested events are set.  */
            status =  TX_SUCCESS;
        else
    
            /* No, none of the events are currently set.  */
            status =  TX_NO_EVENTS;
    }

    /* Now determine if the request can be satisfied immediately.  */
    if (status == TX_SUCCESS)
    {

        /* Yes, this request can be handled immediately.  */

        /* Return the actual event flags that satisfied the request.  */
        *actual_flags_ptr =  group_ptr -> tx_event_flags_current;

        /* Determine whether or not clearing needs to take place.  */
        if (get_option & TX_EVENT_FLAGS_CLEAR_MASK)

            /* Yes, clear the flags that satisfied this request.  */
            group_ptr -> tx_event_flags_current =
                group_ptr -> tx_event_flags_current & ~requested_flags;
    }
    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_event_flags_cleanup;

            /* Remember which event flags we are looking for.  */
            thread_ptr -> tx_suspend_info =  requested_flags;

            /* Save the get option as well.  */
            thread_ptr -> tx_suspend_option =  get_option;

            /* Save the destination for the current events.  */
            thread_ptr -> tx_additional_suspend_info =  (VOID_PTR) actual_flags_ptr;

            /* Setup cleanup information, i.e. this event flags group control
               block.  */
            thread_ptr -> tx_suspend_control_block =  (VOID_PTR) group_ptr;

            /* Setup suspension list.  */
            if (group_ptr -> tx_event_flags_suspension_list)
            {

                /* This list is not NULL, add current thread to the end. */
                thread_ptr -> tx_suspended_next =      
                        group_ptr -> tx_event_flags_suspension_list;
                thread_ptr -> tx_suspended_previous =  
                        (group_ptr -> tx_event_flags_suspension_list) -> tx_suspended_previous;
                ((group_ptr -> tx_event_flags_suspension_list) -> tx_suspended_previous) -> tx_suspended_next =  
                        thread_ptr;
                (group_ptr -> tx_event_flags_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.  */
                group_ptr -> tx_event_flags_suspension_list =  thread_ptr;
                thread_ptr -> tx_suspended_next =              thread_ptr;
                thread_ptr -> tx_suspended_previous =          thread_ptr;
            }

            /* Increment the suspended thread count.  */
            group_ptr -> tx_event_flags_suspended_count++;

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

            /* 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_EVENTS;
    }

    /* Restore interrupts.  */
    TX_RESTORE

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

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91麻豆精品视频| 国产99精品视频| 亚洲国产激情av| 95精品视频在线| 国产乱码精品一区二区三| 日韩国产精品大片| 日韩精品亚洲专区| 日本一区中文字幕| 久久精品国产精品青草| 狠狠网亚洲精品| 国产九色精品成人porny| 国产一区二区在线影院| 国产成人午夜精品影院观看视频 | 日韩视频在线永久播放| 7777精品伊人久久久大香线蕉| 欧美色视频一区| 制服丝袜成人动漫| 欧美白人最猛性xxxxx69交| 精品少妇一区二区三区日产乱码 | 国产女同互慰高潮91漫画| 日本一区二区免费在线| 中文字幕一区免费在线观看| 亚洲欧美日韩在线| 性久久久久久久久久久久| 日韩电影一区二区三区| 国产制服丝袜一区| 不卡的av电影| 欧美精品在线观看播放| 欧美一级搡bbbb搡bbbb| 久久精品日产第一区二区三区高清版| 久久人人97超碰com| 国产精品久久午夜夜伦鲁鲁| 亚洲激情六月丁香| 另类小说视频一区二区| 国产高清久久久| 91久久精品一区二区三| 日韩一区二区中文字幕| 中文字幕欧美激情一区| 亚洲成人在线网站| 日韩欧美国产不卡| 国产日产精品一区| 一卡二卡欧美日韩| 狠狠色丁香婷婷综合| av中文一区二区三区| 欧美美女黄视频| 国产视频一区二区在线观看| 亚洲综合一区二区| 极品美女销魂一区二区三区 | 精品精品国产高清a毛片牛牛| 国产日韩欧美高清在线| 亚洲一区av在线| 国产一区二区三区高清播放| 色8久久精品久久久久久蜜| 亚洲精品一区二区三区99| 自拍偷拍亚洲综合| 裸体一区二区三区| 色婷婷国产精品| 久久影院视频免费| 午夜视频在线观看一区二区| 国产98色在线|日韩| 91精品国产麻豆| 亚洲色图欧洲色图| 国产一区二区在线影院| 7777精品久久久大香线蕉| **网站欧美大片在线观看| 久久99久久精品| 欧美日韩亚洲不卡| 中文字幕在线观看一区| 激情综合色综合久久综合| 欧美色国产精品| 亚洲丝袜自拍清纯另类| 国产精品 欧美精品| 欧美一级生活片| 亚洲成人在线观看视频| 99精品视频在线播放观看| 久久精品一区二区三区不卡| 日韩激情一区二区| 欧美性xxxxxx少妇| 亚洲视频在线一区| 国v精品久久久网| 精品国产一区二区三区四区四| 亚洲国产你懂的| 色久综合一二码| 国产精品久久午夜| 丁香六月综合激情| 国产三级精品视频| 国产自产高清不卡| 欧美成人精品高清在线播放| 香蕉加勒比综合久久| 在线一区二区观看| 一区二区三区四区中文字幕| 久久精品欧美一区二区三区不卡 | 蜜臀av性久久久久蜜臀aⅴ| 欧日韩精品视频| 亚洲精品中文在线影院| av一区二区不卡| 国产精品私人影院| 成人毛片视频在线观看| 欧美激情自拍偷拍| 国产超碰在线一区| 欧美国产精品专区| 丁香网亚洲国际| 国产精品久线观看视频| 成人h动漫精品一区二区| 日本一区二区在线不卡| 福利一区福利二区| 国产精品免费久久久久| av高清不卡在线| 亚洲蜜桃精久久久久久久| 91免费精品国自产拍在线不卡| 亚洲欧美综合色| 日本久久电影网| 亚洲国产日韩a在线播放| 欧美日韩激情一区二区| 天使萌一区二区三区免费观看| 欧美日韩在线观看一区二区| 亚洲电影激情视频网站| 制服丝袜亚洲精品中文字幕| 蜜臀av性久久久久av蜜臀妖精| 欧美精品一区二区在线观看| 国产精品99久久不卡二区| 国产精品麻豆视频| 色婷婷激情久久| 日韩av二区在线播放| 精品国产电影一区二区| 高清不卡一区二区| 亚洲色图.com| 欧美日韩国产另类不卡| 激情深爱一区二区| 国产精品三级电影| 日本韩国欧美一区二区三区| 天堂成人国产精品一区| 26uuu亚洲综合色| 99r国产精品| 亚洲成人在线观看视频| 日韩午夜在线影院| 成人天堂资源www在线| 亚洲一二三区视频在线观看| 欧美一激情一区二区三区| 国产精品一二三区在线| 亚洲另类在线一区| 日韩欧美在线观看一区二区三区| 国产91对白在线观看九色| 亚洲在线观看免费视频| 欧美大度的电影原声| 99精品欧美一区二区三区小说| 亚洲电影欧美电影有声小说| 精品成人在线观看| 色综合久久天天| 九一九一国产精品| 一区二区在线观看免费视频播放| 欧美一区二区三区四区五区| 风间由美一区二区三区在线观看 | 亚洲美女屁股眼交| 在线电影一区二区三区| 丁香六月综合激情| 日产精品久久久久久久性色| 国产精品看片你懂得| 91精品国产综合久久久蜜臀图片 | 日韩欧美国产高清| 色综合久久中文字幕| 黑人精品欧美一区二区蜜桃| 伊人开心综合网| 欧美高清在线一区二区| 91精品国产色综合久久| 色哟哟在线观看一区二区三区| 韩国毛片一区二区三区| 亚洲午夜视频在线观看| 国产免费久久精品| 日韩精品一区二区在线| 欧美最新大片在线看| 成人激情综合网站| 久久66热偷产精品| 日韩在线播放一区二区| 国产精品无圣光一区二区| 欧美一区二区啪啪| 欧美这里有精品| 97se亚洲国产综合自在线观| 国产精品一区专区| 麻豆极品一区二区三区| 亚洲国产美女搞黄色| 日韩美女视频19| 国产欧美精品区一区二区三区| 91麻豆精品国产91久久久使用方法 | 在线电影一区二区三区| 色狠狠av一区二区三区| 成人18视频日本| 国产精品自拍三区| 精品一区二区三区免费| 蜜桃精品视频在线| 午夜不卡在线视频| 亚洲成人资源网| 亚洲一区在线观看免费 | 国产精品女主播在线观看| 日韩欧美国产一区二区在线播放| 欧美无人高清视频在线观看| 91美女片黄在线观看91美女| 成人ar影院免费观看视频| 丁香亚洲综合激情啪啪综合| 国产精品一区久久久久|