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

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

?? gio.h

?? SEED的VPM642測試程序-板級支持庫
?? H
字號:
/*
 *  Copyright 2003 by Texas Instruments Incorporated.
 *  All rights reserved. Property of Texas Instruments Incorporated.
 *  Restricted rights to use, duplicate or disclose this code are
 *  granted through contract.
 *  
 */
/* "@(#) DSP/BIOS 4.90.270 12-18-03 (barracuda-o04)" */
/*
 *  ======== gio.h ========
 *
 *  General Input/Output Module's public header file.
 *
 */

#ifndef GIO_
#define GIO_

#include <iom.h>

#ifdef __cplusplus
extern "C" {
#endif

/*
 *  These function pointers are used to bind blocking functions to IOM.
 *  In DSP/BIOS TSK based applications, these function pointers
 *  will be assigned to SEM_create, SEM_delete, SEM_pend and SEM_post. These
 *  pointers can be assigned to simple block/unblock operations for users
 *  who aren't using TSK.
 */
typedef Ptr  (*GIO_TsemCreate)(Int count, Ptr attrs);
typedef Void (*GIO_TsemDelete)(Ptr semHandle);
typedef Bool (*GIO_TsemPend)(Ptr semHandle, Uns timeout);
typedef Void (*GIO_TsemPost)(Ptr semHandle);

/*
 *  A pointer named 'GIO' and a global GIO_CONFIG structure will be initialized
 *  by the configuration tool to point to an GIO_Config structure.  This 
 *  structure will be referenced at run-time so that GIO will not have any
 *  hard-coded reference to SEM_pend, SEM_post, etc. This will allow GIO to
 *  be used in TSK and non-TSK based applications.
 */
typedef struct GIO_Config {
    GIO_TsemCreate	SEMCREATE;	/* typically SEM_create */
    GIO_TsemDelete	SEMDELETE;	/* typically SEM_delete */
    GIO_TsemPend	SEMPEND;	/* typically SEM_pend */
    GIO_TsemPost	SEMPOST;	/* typically SEM_post */
} GIO_Config;

/*
 *  This attributes structure is passed to GIO_create() to specify channel-
 *  specific parameters.
 */
typedef struct GIO_Attrs  {
    Int		nPackets; 	/* number of asynch I/O packets */
    Uns		timeout;	/* for blocking calls (SYS_FOREVER) */
} GIO_Attrs;

/*
 *  This is the application-level callback function.
 */
typedef Void	(*GIO_TappCallback)(Ptr arg, Int status, Ptr bufp, Uns size);

/*
 *  Application layer code can pass a pointer to one of these structures
 *  for the optional asynchronous call extensions.  The callback
 *  function 'fxn' is called with 'arg' and the other params as defined
 *  by the GIO_TappCallback typedef.
 */
typedef struct GIO_AppCallback {
    GIO_TappCallback	fxn;
    Ptr			arg;
} GIO_AppCallback;

/*
 *  GIO_create() allocates and returns a pointer to one of these structures
 *  when successful.  This structure contains all of the fields necessary
 *  for subsequent calls to GIO.
 */
typedef struct GIO_Obj {
    IOM_Fxns	*fxns;		/* pointer to mini-driver function table */
    Uns		mode;		/* IOM_INPUT, IOM_OUTPUT or IOM_INOUT */
    Uns		timeout;	/* timeout parameter used for blocking calls */
    IOM_Packet	syncPacket;	/* used only for synchronous operations */
    QUE_Obj	freeList;	/* available frames for asynchronous I/O */
    Ptr		syncObj;	/* opaque pointer to synchronization object */
    Ptr		mdChan;		/* pointer to mini-driver channel object */
} GIO_Obj, *GIO_Handle;

/*
 *  Default IOM Attributes structure.  This structure is used to assign
 *  GIO_Attrs defaults and when 'NULL' is passed to GIO_create().
 */
extern GIO_Attrs GIO_ATTRS;

/*
 *  Pointer to global GIO_Config structure (GIO_CONFIG). GIO_CONFIG is 
 *  defined by the configuration tool.  
 */
extern GIO_Config *GIO;

/*
 *  -------- class APIs --------
 */
extern Void GIO_init();

/*
 *  ======== GIO_abort ========
 *  Abort all input and output.  GIO_abort() is a synchronous call and only 
 *  returns when all I/O has been successfully aborted.
 */
#define	GIO_abort(gioChan) \
	GIO_submit(gioChan, IOM_ABORT, NULL, NULL, NULL)

/*
 *  ======== IOM_control ========
 *  Device specific control call. 
 */
extern Int GIO_control(GIO_Handle gioChan, Uns cmd, Ptr args);


/*
 *  ======== GIO_create ========
 *  GIO_create() allocates and initializes an GIO_Obj structure.  GIO_create()
 *  returns a non-NULL GIO_Handle object on success and NULL for failure.
 *  The 'name' parameter is used to find a matching name in the device
 *  table.  Associated IOM_Fxns table and params structure are then used
 *  to create a channel for that device.   The 'attrs->nPackets' parameter
 *  specifies the maximum number of queued asynchronous requests that
 *  can be outstanding.
 */
extern GIO_Handle GIO_create(String name, Int mode, Int *status, Ptr optArgs,
         GIO_Attrs *attrs);

/*
 *  ======== GIO_delete ========
 *  GIO_delete() deletes the underlying mini-drivers and then frees up
 *  the GIO_Obj structure and any associated GIO_Packet structures.
 */
extern Int GIO_delete(GIO_Handle gioChan);


/*
 *  ======== GIO_flush ========
 *  Flush all input and output.  Flush drains all output buffers and discards
 *  any pending input.  GIO_flush() is synchronous and only returns when
 *  all I/O has been successfully flushed.
 */
#define	GIO_flush(gioChan) \
	GIO_submit(gioChan, IOM_FLUSH, NULL, NULL, NULL)


/*
 *  ======== GIO_read ========
 *  Synchronous read command.  GIO_read() returns 'IOM_COMPLETE' when I/O
 *  is complete. GIO_read() returns 'IOM_ETIMEOUT' error if timeout occured
 *  before read could complete.
 */
#define	GIO_read(gioChan, bufp, psize) \
	GIO_submit(gioChan, IOM_READ, bufp, psize, NULL)


/*
 *  ======== GIO_submit ========
 *  GIO_submit() is not typically called by the application level. Assorted
 *  macros use GIO_submit() to do the needed work.
 * 
 *  The appCallback parameter causes GIO_submit() to be synchronous or
 *  asynchronous.  If appCallback is  NULL, GIO_submit() will call the 
 *  GIO->PEND blocking function(synchronous).  Otherwise, GIO_submit()
 *  will call the callback function and argument when the I/O operation 
 *  completes(asynchronous).
 */
extern Int GIO_submit(GIO_Handle gioChan, Uns cmd, Ptr bufp,
        Uns *psize, GIO_AppCallback *appCallback);


/*
 *  ======== GIO_write ========
 *  Synchronous write command.  Same semantics as GIO_read() above.
 */
#define	GIO_write(gioChan, bufp, psize) \
	GIO_submit(gioChan, IOM_WRITE, bufp, psize, NULL)


#ifdef __cplusplus
}
#endif /* extern "C" */

#endif /* GIO_ */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久亚洲影视婷婷| 亚洲精品高清在线观看| 中文字幕一区二区在线观看| 亚洲国产精品久久一线不卡| 国产福利一区二区三区视频在线| 91精品办公室少妇高潮对白| 久久丝袜美腿综合| 午夜精品久久久久久久| a在线播放不卡| 欧美精品一区二区在线播放| 亚洲一区二区三区自拍| 欧美情侣在线播放| 综合激情成人伊人| 国产999精品久久| 日韩欧美国产综合在线一区二区三区| 亚洲激情自拍视频| 国产69精品久久777的优势| 日韩亚洲欧美成人一区| 亚洲成人午夜电影| 91精品福利视频| 国产精品国产三级国产| 国产麻豆一精品一av一免费| 欧美精品在欧美一区二区少妇| 亚洲图片欧美激情| 成人av在线影院| 国产三级精品三级在线专区| 精品一区二区成人精品| 欧美精品日韩一区| 亚洲国产精品久久一线不卡| 欧美在线999| 亚洲影视资源网| 91麻豆国产福利在线观看| 国产精品久久久久久久久动漫| 激情av综合网| 国产亚洲一二三区| 成人免费福利片| 亚洲美女电影在线| 欧美亚洲禁片免费| 亚洲精品中文在线观看| 在线观看欧美黄色| 亚洲一区电影777| 欧美性xxxxxx少妇| 亚洲成人激情自拍| 欧美一区二区精品在线| 久久成人免费电影| 久久久电影一区二区三区| 国产揄拍国内精品对白| 91精品国产一区二区三区 | 99re亚洲国产精品| 国产91精品精华液一区二区三区| 久久99精品国产91久久来源| 不卡的电影网站| 欧美二区在线观看| 成人一区在线观看| 国产在线不卡一卡二卡三卡四卡| 亚洲一区二区三区国产| 欧美性受xxxx黑人xyx| 亚洲欧美日韩国产一区二区三区| 午夜久久久久久| 麻豆91在线播放| 韩国av一区二区| 91国偷自产一区二区三区观看| 色悠悠久久综合| 日韩欧美国产午夜精品| 国产女同互慰高潮91漫画| 亚洲欧洲av色图| 国精产品一区一区三区mba桃花| 成人免费视频网站在线观看| 91久久国产综合久久| 久久在线观看免费| 裸体健美xxxx欧美裸体表演| 国产91精品久久久久久久网曝门| 91成人网在线| 亚洲素人一区二区| 国模一区二区三区白浆| 欧美精三区欧美精三区| 亚洲激情自拍偷拍| 成人精品免费网站| 亚洲视频中文字幕| 国产成人午夜精品5599 | 亚洲一区在线观看视频| 国产精品三级av| 另类的小说在线视频另类成人小视频在线| 成人午夜伦理影院| 亚洲国产乱码最新视频| 一区二区三区四区中文字幕| 久久久久久久av麻豆果冻| 亚洲电影一区二区三区| 久久婷婷成人综合色| 欧美日韩一级二级三级| 成人一道本在线| 美女脱光内衣内裤视频久久影院| 成人免费一区二区三区视频 | 欧美性受xxxx黑人xyx性爽| 国产伦精一区二区三区| 欧美视频精品在线观看| 亚洲色图视频网站| 欧美性猛交xxxxxx富婆| 一区二区三区视频在线看| 337p亚洲精品色噜噜噜| 狠狠色狠狠色综合日日91app| 亚洲精品国产无天堂网2021| 色综合天天综合网天天狠天天| 国产激情偷乱视频一区二区三区| 一区二区免费看| 1024国产精品| 国产精品成人免费| 中文欧美字幕免费| 久久久亚洲午夜电影| 日韩亚洲电影在线| 欧美一区二区观看视频| 欧美综合一区二区| 色婷婷综合久久| 色综合天天综合色综合av| av一区二区三区四区| 成人app下载| 成人自拍视频在线观看| 懂色av噜噜一区二区三区av| 激情六月婷婷综合| 国产精品99久久久久久宅男| 韩日欧美一区二区三区| 韩国成人福利片在线播放| 麻豆91小视频| 国产91精品免费| 91丨porny丨中文| 在线免费av一区| 欧美精品久久久久久久多人混战| 欧美日韩国产电影| 日韩三级.com| 国产亚洲女人久久久久毛片| 日本一区二区三区在线不卡| 国产精品久久久久四虎| 一区二区三区四区激情| 亚洲aaa精品| 九九精品一区二区| zzijzzij亚洲日本少妇熟睡| 色婷婷综合久久久中文一区二区 | 日韩国产欧美在线观看| 蜜臀精品久久久久久蜜臀| 美女网站视频久久| 国产精品自拍av| 99在线热播精品免费| 在线看国产一区| 日韩视频中午一区| 中文字幕精品—区二区四季| 亚洲男人的天堂在线观看| 亚洲午夜视频在线观看| 麻豆精品一区二区综合av| 国产一区福利在线| 一本高清dvd不卡在线观看| 欧美日韩国产片| 久久亚洲一级片| 亚洲桃色在线一区| 免费在线欧美视频| 丰满少妇在线播放bd日韩电影| 色999日韩国产欧美一区二区| 91麻豆精品国产综合久久久久久| 久久久久久久综合色一本| 亚洲精品日日夜夜| 麻豆国产精品官网| 91丝袜呻吟高潮美腿白嫩在线观看| 欧美年轻男男videosbes| 国产目拍亚洲精品99久久精品| 一级女性全黄久久生活片免费| 黄色小说综合网站| 欧美视频完全免费看| 日本一区二区三区四区在线视频| 亚瑟在线精品视频| 成人免费视频播放| 欧美日本免费一区二区三区| 国产精品美日韩| 久久精品国内一区二区三区| 一本色道亚洲精品aⅴ| 26uuu亚洲婷婷狠狠天堂| 亚洲线精品一区二区三区八戒| 韩国成人精品a∨在线观看| 欧美日韩精品一区二区天天拍小说| 久久久久久久久久看片| 婷婷一区二区三区| 欧美在线观看你懂的| 国产精品福利在线播放| 精品系列免费在线观看| 777午夜精品视频在线播放| 亚洲午夜精品一区二区三区他趣| 成人免费电影视频| 国产色一区二区| 极品少妇xxxx精品少妇偷拍| 91精品国产综合久久精品| 亚洲一区在线看| 日本韩国欧美在线| 国产精品久久久久永久免费观看| 久久精品国产精品亚洲精品| 欧美人妖巨大在线| 一区二区在线免费| 色成年激情久久综合| 亚洲欧洲精品成人久久奇米网| 国产99精品国产| 久久免费电影网| 国产麻豆91精品| 国产欧美精品一区aⅴ影院 |