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

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

?? kapi.h

?? ecos下的gui開發(fā)源代碼
?? H
?? 第 1 頁 / 共 2 頁
字號:
#ifndef CYGONCE_KERNEL_KAPI_H
#define CYGONCE_KERNEL_KAPI_H

/*==========================================================================
//
//      kapi.h
//
//      Native API for Kernel
//
//==========================================================================
//####ECOSGPLCOPYRIGHTBEGIN####
// -------------------------------------------
// This file is part of eCos, the Embedded Configurable Operating System.
// Copyright (C) 2002 Bart Veer
// Copyright (C) 2002 Nick Garnett
// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
//
// eCos is free software; you can redistribute it and/or modify it under
// the terms of the GNU General Public License as published by the Free
// Software Foundation; either version 2 or (at your option) any later version.
//
// eCos is distributed in the hope that it will be useful, but WITHOUT ANY
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
// for more details.
//
// You should have received a copy of the GNU General Public License along
// with eCos; if not, write to the Free Software Foundation, Inc.,
// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
//
// As a special exception, if other files instantiate templates or use macros
// or inline functions from this file, or you compile this file and link it
// with other works to produce a work based on this file, this file does not
// by itself cause the resulting work to be covered by the GNU General Public
// License. However the source code for this file must still be made available
// in accordance with section (3) of the GNU General Public License.
//
// This exception does not invalidate any other reasons why a work based on
// this file might be covered by the GNU General Public License.
//
// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
// at http://sources.redhat.com/ecos/ecos-license/
// -------------------------------------------
//####ECOSGPLCOPYRIGHTEND####
//==========================================================================
//#####DESCRIPTIONBEGIN####
//
// Author(s):   nickg, dsm
// Contributors:        nickg
// Date:        1998-03-02
// Purpose:     Native API for Kernel
// Description: This file describes the native API for using the kernel.
//              It is essentially a set of C wrappers for the C++ class
//              member functions.
// Usage:       #include <cyg/kernel/kapi.h>
//
//####DESCRIPTIONEND####
//
//========================================================================*/

#include <pkgconf/system.h>
#include <pkgconf/kernel.h>

#ifdef CYGFUN_KERNEL_API_C
#include <cyg/infra/cyg_type.h>

/*---------------------------------------------------------------------------*/

#ifdef __cplusplus
extern "C" {
#endif

/*---------------------------------------------------------------------------*/
/* The following are derived types, they may have different                  */
/* definitions from these depending on configuration.                        */

typedef CYG_ADDRWORD   cyg_addrword_t;      /* May hold pointer or word      */
typedef cyg_addrword_t cyg_handle_t;        /* Object handle                 */
typedef cyg_uint32     cyg_priority_t;      /* type for priorities           */
typedef cyg_int32      cyg_code_t;          /* type for various codes        */
typedef cyg_uint32     cyg_vector_t;        /* Interrupt vector id           */
typedef cyg_uint32     cyg_cpu_t;           /* CPU id type                   */

typedef cyg_uint64 cyg_tick_count_t;

typedef int cyg_bool_t;

/* Exception handler function definition                                     */
typedef void cyg_exception_handler_t(
    cyg_addrword_t data,
    cyg_code_t   exception_number,
    cyg_addrword_t info
);

/*---------------------------------------------------------------------------*/
struct cyg_thread;
typedef struct cyg_thread cyg_thread;

struct cyg_interrupt;
typedef struct cyg_interrupt cyg_interrupt;

struct cyg_counter;
typedef struct cyg_counter cyg_counter;

struct cyg_clock;
typedef struct cyg_clock cyg_clock;

struct cyg_alarm;
typedef struct cyg_alarm cyg_alarm;

struct cyg_mbox;
typedef struct cyg_mbox cyg_mbox;

struct cyg_sem_t;
typedef struct cyg_sem_t cyg_sem_t;

struct cyg_flag_t;
typedef struct cyg_flag_t cyg_flag_t;

struct cyg_mutex_t;
typedef struct cyg_mutex_t cyg_mutex_t;

struct cyg_cond_t;
typedef struct cyg_cond_t cyg_cond_t;

struct cyg_spinlock_t;
typedef struct cyg_spinlock_t cyg_spinlock_t;

/*---------------------------------------------------------------------------*/
/* Scheduler operations */

/* Starts scheduler with created threads.  Never returns. */
void cyg_scheduler_start(void) __THROW CYGBLD_ATTRIB_NORET;

/* Lock and unlock the scheduler. When the scheduler is   */
/* locked thread preemption is disabled.                  */
void cyg_scheduler_lock(void) __THROW;

void cyg_scheduler_unlock(void) __THROW;

/* Just like 'cyg_scheduler_lock()', but never take the lock higher than 1  */
/* Thus this call is safe even if the scheduler is already locked and a     */
/* subsequent call to 'cyg_scheduler_unlock()' will completely unlock.      */
void cyg_scheduler_safe_lock(void) __THROW;
    
/* Read the scheduler lock value. */
cyg_ucount32 cyg_scheduler_read_lock(void) __THROW;

/*---------------------------------------------------------------------------*/
/* Thread operations */

typedef void cyg_thread_entry_t(cyg_addrword_t);

void cyg_thread_create(
    cyg_addrword_t      sched_info,             /* scheduling info (eg pri)  */
    cyg_thread_entry_t  *entry,                 /* entry point function      */
    cyg_addrword_t      entry_data,             /* entry data                */
    char                *name,                  /* optional thread name      */
    void                *stack_base,            /* stack base, NULL = alloc  */
    cyg_ucount32        stack_size,             /* stack size, 0 = default   */
    cyg_handle_t        *handle,                /* returned thread handle    */
    cyg_thread          *thread                 /* put thread here           */
) __THROW;
    
void cyg_thread_exit(void) __THROW;

/* It may be necessary to arrange for the victim to run for it to disappear */
cyg_bool_t cyg_thread_delete(cyg_handle_t thread) __THROW; /* false if NOT deleted */

void cyg_thread_suspend(cyg_handle_t thread) __THROW;

void cyg_thread_resume(cyg_handle_t thread) __THROW;

void cyg_thread_kill(cyg_handle_t thread) __THROW;

void cyg_thread_release(cyg_handle_t thread) __THROW;    
    
void cyg_thread_yield(void) __THROW;

cyg_handle_t cyg_thread_self(void) __THROW;

cyg_handle_t cyg_thread_idle_thread(void) __THROW;

/* Priority manipulation */

void cyg_thread_set_priority(cyg_handle_t thread, cyg_priority_t priority ) __THROW;

cyg_priority_t cyg_thread_get_priority(cyg_handle_t thread) __THROW;              
cyg_priority_t cyg_thread_get_current_priority(cyg_handle_t thread) __THROW; 

/* Deadline scheduling control (optional) */

void cyg_thread_deadline_wait( 
    cyg_tick_count_t    start_time,             /* abs earliest start time   */
    cyg_tick_count_t    run_time,               /* worst case execution time */
    cyg_tick_count_t    deadline                /* absolute deadline         */
) __THROW; 

void cyg_thread_delay(cyg_tick_count_t delay) __THROW;

/* Stack information */
cyg_addrword_t cyg_thread_get_stack_base(cyg_handle_t thread) __THROW;

cyg_uint32 cyg_thread_get_stack_size(cyg_handle_t thread) __THROW;

#ifdef CYGFUN_KERNEL_THREADS_STACK_MEASUREMENT
cyg_uint32 cyg_thread_measure_stack_usage(cyg_handle_t thread) __THROW;
#endif

/*---------------------------------------------------------------------------*/
/* Thread enumeration and information                                        */
    
typedef struct
{
    cyg_handle_t        handle;
    cyg_uint16          id;
    cyg_uint32          state;
    char                *name;
    cyg_priority_t      set_pri;
    cyg_priority_t      cur_pri;
    cyg_addrword_t      stack_base;
    cyg_uint32          stack_size;
    cyg_uint32          stack_used;
} cyg_thread_info;
    
cyg_bool_t cyg_thread_get_next( cyg_handle_t *thread, cyg_uint16 *id ) __THROW;

cyg_bool_t cyg_thread_get_info( cyg_handle_t thread,
                                cyg_uint16 id,
                                cyg_thread_info *info ) __THROW;

cyg_uint16 cyg_thread_get_id( cyg_handle_t thread ) __THROW;

cyg_handle_t cyg_thread_find( cyg_uint16 id ) __THROW;
    
/*---------------------------------------------------------------------------*/
/* Per-thread Data                                                           */

#ifdef CYGVAR_KERNEL_THREADS_DATA

cyg_ucount32 cyg_thread_new_data_index(void) __THROW;

void cyg_thread_free_data_index(cyg_ucount32 index) __THROW;

CYG_ADDRWORD cyg_thread_get_data(cyg_ucount32 index) __THROW;

CYG_ADDRWORD *cyg_thread_get_data_ptr(cyg_ucount32 index) __THROW;

void cyg_thread_set_data(cyg_ucount32 index, CYG_ADDRWORD data) __THROW;

#endif
    
/*---------------------------------------------------------------------------*/
/* Thread destructors                                                        */

#ifdef CYGPKG_KERNEL_THREADS_DESTRUCTORS

typedef void (*cyg_thread_destructor_fn)(cyg_addrword_t);

cyg_bool_t cyg_thread_add_destructor( cyg_thread_destructor_fn fn,
                                      cyg_addrword_t data ) __THROW;
cyg_bool_t cyg_thread_rem_destructor( cyg_thread_destructor_fn fn,
                                      cyg_addrword_t data ) __THROW;
#endif
    
/*---------------------------------------------------------------------------*/
/* Exception handling.                                                       */

/* Replace current exception handler, this may apply to either the           */
/* current thread, or to a global exception handler. The exception           */
/* number may be ignored, or used to specify a particular handler.           */

void cyg_exception_set_handler(
    cyg_code_t                  exception_number,
    cyg_exception_handler_t     *new_handler,
    cyg_addrword_t                new_data,
    cyg_exception_handler_t     **old_handler,
    cyg_addrword_t                *old_data
) __THROW;

/* Clear exception hander to default value                                   */
void cyg_exception_clear_handler(
    cyg_code_t                  exception_number
) __THROW;
    
/* Invoke exception handler                                                  */
void cyg_exception_call_handler(
    cyg_handle_t                thread,
    cyg_code_t                  exception_number,
    cyg_addrword_t              exception_info
) __THROW;


/*---------------------------------------------------------------------------*/
/* Interrupt handling                                                        */
typedef void            cyg_VSR_t(void);
typedef cyg_uint32      cyg_ISR_t(cyg_vector_t vector, cyg_addrword_t data);
typedef void            cyg_DSR_t( cyg_vector_t vector,
                                   cyg_ucount32 count,
                                   cyg_addrword_t data);


enum cyg_ISR_results
{
    CYG_ISR_HANDLED  = 1,               /* Interrupt was handled             */
    CYG_ISR_CALL_DSR = 2                /* Schedule DSR                      */
};

void cyg_interrupt_create(
    cyg_vector_t        vector,         /* Vector to attach to               */
    cyg_priority_t      priority,       /* Queue priority                    */
    cyg_addrword_t      data,           /* Data pointer                      */
    cyg_ISR_t           *isr,           /* Interrupt Service Routine         */
    cyg_DSR_t           *dsr,           /* Deferred Service Routine          */
    cyg_handle_t        *handle,        /* returned handle                   */
    cyg_interrupt       *intr           /* put interrupt here                */
) __THROW;

void cyg_interrupt_delete( cyg_handle_t interrupt ) __THROW;

void cyg_interrupt_attach( cyg_handle_t interrupt ) __THROW;

void cyg_interrupt_detach( cyg_handle_t interrupt ) __THROW;
    
/* VSR manipulation */

void cyg_interrupt_get_vsr(
    cyg_vector_t        vector,         /* vector to get                     */
    cyg_VSR_t           **vsr           /* vsr got                           */
) __THROW;

void cyg_interrupt_set_vsr(
    cyg_vector_t        vector,         /* vector to set                     */
    cyg_VSR_t           *vsr            /* vsr to set                        */
) __THROW;

/* CPU level interrupt mask                                                  */
void cyg_interrupt_disable(void) __THROW;

void cyg_interrupt_enable(void) __THROW;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91高清视频在线| 一本一道久久a久久精品| 在线影院国内精品| 欧美国产综合色视频| 日韩av电影天堂| 一本大道久久a久久精品综合| 日韩欧美一卡二卡| 午夜视频在线观看一区二区三区 | 欧美变态tickle挠乳网站| 亚洲日本韩国一区| 国产精品影视天天线| 5566中文字幕一区二区电影| 亚洲欧美综合色| 国产成人亚洲综合a∨婷婷图片| 欧美精品aⅴ在线视频| 日韩毛片高清在线播放| 国产成人午夜精品影院观看视频| 欧美精品乱码久久久久久按摩 | 欧美揉bbbbb揉bbbbb| 亚洲国产精华液网站w| 激情综合色播五月| 日韩精品三区四区| 91福利小视频| 亚洲视频在线一区| www.激情成人| 国产精品美女久久久久aⅴ| 久久99精品久久久| 日韩美女在线视频 | 欧美国产综合一区二区| 国内精品视频一区二区三区八戒| 日韩一区二区三区四区五区六区 | 国产欧美久久久精品影院| 久久精品国产亚洲一区二区三区 | jvid福利写真一区二区三区| 国产无一区二区| 国产黄色精品网站| 国产日韩欧美不卡在线| 国产很黄免费观看久久| 久久久久久久久久久久久夜| 国内精品伊人久久久久av一坑| 欧美xxxxx牲另类人与| 精品影院一区二区久久久| 91精品国产综合久久精品app| 视频一区在线播放| 欧美一区二区不卡视频| 免费看日韩精品| 日韩精品专区在线| 国产一二精品视频| 国产欧美精品一区二区色综合| 国产成人免费视频一区| 欧美国产在线观看| 99久久综合99久久综合网站| 国产精品传媒在线| 日本电影亚洲天堂一区| 亚洲男人天堂一区| 欧美天堂一区二区三区| 午夜电影久久久| 日韩免费观看高清完整版在线观看| 婷婷综合在线观看| 精品美女被调教视频大全网站| 国产美女精品在线| 国产精品久久久久久亚洲毛片| 99久久精品国产麻豆演员表| 日韩理论片一区二区| 在线视频你懂得一区二区三区| 亚洲第一二三四区| 日韩精品中午字幕| 国产一区二区三区四区五区美女 | 精品国产一区二区三区不卡| 国产一区在线观看麻豆| 国产亚洲女人久久久久毛片| 99视频国产精品| 亚洲成av人片www| 欧美va亚洲va国产综合| 高清av一区二区| 一区二区三区免费看视频| 欧美精品1区2区| 国产成人av电影在线播放| 亚洲日本在线观看| 91精品国产综合久久福利| 国产精品99久久久久久有的能看 | 国产日本欧洲亚洲| 色av一区二区| 久久aⅴ国产欧美74aaa| 国产欧美日韩麻豆91| 色偷偷一区二区三区| 奇米一区二区三区| 中国av一区二区三区| 欧美四级电影网| 国产精品69毛片高清亚洲| 亚洲精选在线视频| 日韩精品在线一区| 色综合一区二区| 久久99久久精品欧美| 中文字幕在线观看不卡| 欧美日韩一区视频| 国产精品一区二区免费不卡| 洋洋成人永久网站入口| 久久久久久久精| 欧美日韩国产综合一区二区三区| 国产黄人亚洲片| 日韩高清一级片| 国产精品麻豆视频| 精品欧美乱码久久久久久1区2区| 一本一本大道香蕉久在线精品| 精品一区二区日韩| 亚洲国产成人av网| 国产精品狼人久久影院观看方式| 欧美日韩视频在线一区二区| 国产91清纯白嫩初高中在线观看| 亚洲成人先锋电影| 国产精品初高中害羞小美女文| 日韩欧美一区中文| 欧洲精品视频在线观看| 国产成人免费9x9x人网站视频| 午夜在线电影亚洲一区| 欧美国产日韩在线观看| 日韩视频在线你懂得| 在线精品亚洲一区二区不卡| 国产一区三区三区| 日韩二区三区四区| 一级做a爱片久久| 国产精品无码永久免费888| 日韩欧美成人一区| 91成人看片片| 99国内精品久久| 成人综合在线观看| 国产一区中文字幕| 久久国产免费看| 日韩成人精品在线| 午夜不卡av在线| 亚洲一卡二卡三卡四卡无卡久久 | 精品sm捆绑视频| 欧美日韩视频在线第一区 | 久久疯狂做爰流白浆xx| 午夜精品福利一区二区三区av| 亚洲男人的天堂在线aⅴ视频| 日本一区二区久久| 久久久久久久电影| wwwwww.欧美系列| 精品盗摄一区二区三区| 欧美一卡二卡在线观看| 欧美久久婷婷综合色| 欧美午夜精品理论片a级按摩| 91香蕉国产在线观看软件| 成人小视频免费观看| 国产a区久久久| 国产一区二区0| 国产河南妇女毛片精品久久久| 久草中文综合在线| 国产一区在线看| 国产精品一区二区在线看| 国产一区视频网站| 国产激情一区二区三区| 国产毛片精品国产一区二区三区| 国模一区二区三区白浆| 久久成人18免费观看| 麻豆91在线看| 黄色资源网久久资源365| 男女男精品网站| 精品在线亚洲视频| 国内成人自拍视频| 国产成人自拍在线| 成人激情视频网站| 91在线精品一区二区三区| 99精品国产91久久久久久| 91老司机福利 在线| 在线欧美小视频| 欧美日韩国产综合一区二区| 欧美日韩一级视频| 91精品国产乱| 精品国产凹凸成av人网站| 久久久精品免费观看| 欧美国产日韩一二三区| 成人免费在线视频| 一卡二卡三卡日韩欧美| 午夜精品视频一区| 久久国产精品第一页| 国产乱码精品一区二区三区五月婷| 国产成人在线网站| 91亚洲精品一区二区乱码| 欧美视频一区二区| 日韩精品一区二区三区老鸭窝| 久久精品一级爱片| 亚洲欧美日韩综合aⅴ视频| 一区二区三区日本| 青娱乐精品视频在线| 国产乱码一区二区三区| 99国产欧美久久久精品| 欧美日韩精品一区二区天天拍小说| 欧美一级在线免费| 久久久av毛片精品| 一区二区欧美精品| 精品亚洲成av人在线观看| 东方欧美亚洲色图在线| 日本高清无吗v一区| 日韩一区二区三区视频| 欧美国产日韩在线观看| 一二三四社区欧美黄| 久久99久久久欧美国产|