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

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

?? stream.hxx

?? ecos實時嵌入式操作系統
?? HXX
字號:
#ifndef CYGONCE_LIBC_STDIO_STREAM_HXX#define CYGONCE_LIBC_STDIO_STREAM_HXX//========================================================================////      stream.hxx////      Internal C library stdio stream interface definitions////========================================================================//####ECOSGPLCOPYRIGHTBEGIN####// -------------------------------------------// This file is part of eCos, the Embedded Configurable Operating System.// 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):     jlarmour// Contributors:  // Date:          2001-03-16// Purpose:     // Description: // Usage:         #include <cyg/libc/stdio/stream.hxx>////####DESCRIPTIONEND####////========================================================================// CONFIGURATION#include <pkgconf/libc_stdio.h>   // Configuration header// INCLUDES#include <cyg/infra/cyg_type.h>    // Common project-wide type definitions#include <cyg/infra/cyg_ass.h>     // Get assertion macros, as appropriate#include <errno.h>                 // Cyg_ErrNo#include <stdio.h>                 // fpos_t and IOBUF defines#include <cyg/libc/stdio/io.hxx>     // Physical IO support#include <cyg/libc/stdio/streambuf.hxx>  // Stdio stream file buffers#ifdef CYGSEM_LIBC_STDIO_THREAD_SAFE_STREAMS#include <pkgconf/kernel.h>#include <cyg/kernel/mutex.hxx>    // Cyg_Mutex#endif// TYPE DEFINITIONSclass Cyg_StdioStream;__externC Cyg_ErrNocyg_libc_stdio_flush_all_but( Cyg_StdioStream * );class Cyg_StdioStream{    friend int setvbuf( FILE *, char *, int, size_t );    friend Cyg_ErrNo    cyg_libc_stdio_flush_all_but( Cyg_StdioStream * );private:    // error status for this file    Cyg_ErrNo error;    cyg_stdio_handle_t my_device;#ifdef CYGFUN_LIBC_STDIO_ungetc    cyg_uint8 unread_char_buf;#endif#ifdef CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO    Cyg_StdioStreamBuffer io_buf; // read/write buffer#endif    cyg_uint8 readbuf_char; // a one character emergency "buffer"                            // only used when configured to not buffer                            // (i.e. !CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO)                            // or set at runtime to not buffer (i.e.                            // buffering mode is _IONBF)    // some flags indicating the state of the file. Some of it is internal    // state, which should not be public. Use bitfields to save    // space, which means using "unsigned int" rather than cyg_uintX    struct {        unsigned int at_eof                  : 1; // Have we reached eof?        unsigned int opened_for_read         : 1; // opened_for_read and        unsigned int opened_for_write        : 1; // opened_for_write can                                                  // be set simultaneously        unsigned int binary                  : 1; // opened for binary or                                                  // text mode?        #ifdef CYGFUN_LIBC_STDIO_ungetc        unsigned int unread_char_buf_in_use  : 1; // unget buf in use?#endif#ifdef CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO        unsigned int buffering               : 1; // Is this file buffered?        unsigned int line_buffering          : 1; // If so, is it line                                                  // buffered? If it is                                                  // buffered, but NOT line                                                  // buffered, it must be                                                  // fully buffered        unsigned int last_buffer_op_was_read : 1; // did we last read from                                                  // the buffer. If not we                                                  // must have written#endif        unsigned int readbuf_char_in_use     : 1; // is the above                                                  // readbuf_char in use?            } flags;    // current position for reading/writing    fpos_t position;#ifdef CYGSEM_LIBC_STDIO_THREAD_SAFE_STREAMS    Cyg_Mutex stream_lock;  // used for locking this stream#endif // ifdef CYGSEM_LIBC_STDIO_THREAD_SAFE_STREAMS#ifdef CYGDBG_USE_ASSERTS    // a value to check that this class is hopefully valid    cyg_ucount32 magic_validity_word;#endifpublic:    // different modes when constructing (i.e. opening).    typedef enum {        CYG_STREAM_READ,        CYG_STREAM_WRITE,        CYG_STREAM_READWRITE    } OpenMode;    // CONSTRUCTORS    // This constructs the stream - effectively opens the file. This is    // used for static initialisation, and actually calls construct below    //    // dev is a valid Cyg_Device_Table_t, although it does not have to    // be a member of the device table object itself    //    // open_mode is one of CYG_STREAM_READ, CYG_STREAM_WRITE or    // CYG_STREAM_READWRITE    //    // append is true if the file position should be set at EOF on opening    //    // binary is true if this is a binary stream. Otherwise it is a text    // stream and character conversions (especially newline) may occur    //    // buffer_mode is one of _IONBF, _IOLBF, _IOFBF (from <stdio.h>)    // If buffer_mode is _IONBF, buffer_size should still be set to 0    // and buffer_addr to NULL. If buffering is not configured, none    // of buffer_mode, buffer_size and buffer_addr have any effect    //    // buffer_size is the size of buffer to use    //    // buffer_addr is the address of a user supplied buffer. By default    // (when NULL) a system one is provided.    //    // The "return code" is set by assignment to the error member of this    // stream - use the get_error() method to check    Cyg_StdioStream( cyg_stdio_handle_t dev, OpenMode open_mode,                     cyg_bool append, cyg_bool binary, int buffer_mode,                     cyg_ucount32 buffer_size=BUFSIZ,                     cyg_uint8 *buffer_addr=NULL );    Cyg_StdioStream( OpenMode open_mode,                      cyg_ucount32 buffer_size=BUFSIZ,                     cyg_uint8 *buffer_addr=NULL );private:        void initialize( cyg_stdio_handle_t dev, OpenMode open_mode,                     cyg_bool append, cyg_bool binary, int buffer_mode,                     cyg_ucount32 buffer_size=BUFSIZ,                     cyg_uint8 *buffer_addr=NULL );public:        // DESTRUCTOR    ~Cyg_StdioStream();    // MEMBER FUNCTIONS    // Close the stream. This should be called before the destructor,    // so we can see and report any errors produced.    Cyg_ErrNo close();    // Refill read buffer from the stream - note this blocks until    // something arrives on the stream    Cyg_ErrNo    refill_read_buffer( void );    // Read not more than buffer_length bytes from the read buffer into the    // user buffer.    // The number of bytes put into the user buffer is written    // into *bytes_read    Cyg_ErrNo    read( cyg_uint8 *user_buffer, cyg_ucount32 buffer_length,          cyg_ucount32 *bytes_read );    // Read a single byte from the stream. Returns EAGAIN if no character    // available or EEOF if end of file (as well as setting the EOF state)    Cyg_ErrNo    read_byte( cyg_uint8 *c );    // Read a single byte from the stream, but don't remove it. Returns    // EAGAIN if no character available or EEOF if end of file (as well    // as setting the EOF state)    Cyg_ErrNo    peek_byte( cyg_uint8 *c );    // Return a byte into the stream - basically the same as ungetc()    Cyg_ErrNo    unread_byte( cyg_uint8 c );    // the number of bytes available to read without needing to refill the    // buffer    cyg_ucount32    bytes_available_to_read( void );    Cyg_ErrNo    write( const cyg_uint8 *buffer, cyg_ucount32 buffer_length,           cyg_ucount32 *bytes_written );    Cyg_ErrNo    write_byte( cyg_uint8 c );    Cyg_ErrNo    flush_output( void );    Cyg_ErrNo    flush_output_unlocked( void );    // prevent multiple access in thread safe mode    // lock_me() returns false if it couldn't be locked, which could    // happen if the file descriptor is bad    cyg_bool    lock_me( void );    // trylock_me() returns false if it couldn't be locked, probably    // because it is already locked    cyg_bool    trylock_me( void );    void    unlock_me( void );    // get error status for this file     Cyg_ErrNo    get_error( void );    // set error status for this file.    void    set_error( Cyg_ErrNo errno_to_set );    // are we at EOF? true means we are, false means no    cyg_bool    get_eof_state( void );    // Set whether we are at EOF.    void    set_eof_state( cyg_bool eof_to_set );    // retrieve position    Cyg_ErrNo    get_position( fpos_t *pos );    // set absolute position. whence is SEEK_SET, SEEK_CUR, or SEEK_END    Cyg_ErrNo    set_position( fpos_t pos, int whence );    // Return my_device    cyg_stdio_handle_t get_dev() { return my_device; };        CYGDBG_DEFINE_CHECK_THIS};// INLINE FUNCTIONS#include <cyg/libc/stdio/stream.inl>#endif // CYGONCE_LIBC_STDIO_STREAM_HXX multiple inclusion protection// EOF stream.hxx

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜欧美在线一二页| 美腿丝袜在线亚洲一区| 亚洲一区二区精品视频| 黄一区二区三区| 一本到一区二区三区| www国产精品av| 亚洲在线视频一区| www.99精品| 精品久久一区二区| 日韩在线卡一卡二| 色综合咪咪久久| 国产日产欧产精品推荐色| 日本不卡一二三区黄网| 色先锋资源久久综合| 国产欧美中文在线| 理论电影国产精品| 欧美一区日韩一区| 伊人色综合久久天天| 成人黄色综合网站| 久久久久久久久久美女| 久久精品国产色蜜蜜麻豆| 欧美色精品在线视频| 亚洲视频在线一区| 国产成人精品综合在线观看 | 国内精品伊人久久久久av影院 | 国产精品一区在线| 日韩欧美你懂的| 亚瑟在线精品视频| 欧美私模裸体表演在线观看| 综合激情成人伊人| www.日韩大片| 国产精品青草综合久久久久99| 精品一区二区三区在线观看| 制服丝袜中文字幕一区| 亚洲福利一二三区| 欧美日韩精品欧美日韩精品 | 欧洲亚洲国产日韩| 亚洲男人的天堂在线aⅴ视频| 国产成人av影院| 亚洲国产成人一区二区三区| 成人高清在线视频| 亚洲你懂的在线视频| 91传媒视频在线播放| 亚洲黄色av一区| 欧美日韩亚洲高清一区二区| 午夜在线电影亚洲一区| 日韩一级成人av| 激情国产一区二区| 亚洲欧美在线视频| 欧美午夜一区二区| 久久精品国产第一区二区三区| 欧美刺激午夜性久久久久久久| 国产一区二区三区四| 亚洲国产成人在线| 91黄色激情网站| 日韩福利视频导航| 中文天堂在线一区| 欧洲人成人精品| 久久国产欧美日韩精品| 国产精品美女一区二区| 日本高清无吗v一区| 亚洲一区二区影院| 日韩一级片网站| av成人老司机| 亚洲成人黄色小说| 久久这里都是精品| 91在线观看免费视频| 日韩精品一二三| 国产亚洲欧美色| 欧洲亚洲精品在线| 国产精品一区一区| 日韩专区在线视频| 国产欧美视频在线观看| 欧美在线视频全部完| 精品一区二区三区免费视频| 国产精品大尺度| 欧美一区二区久久久| 成人免费视频caoporn| 五月婷婷另类国产| 国产精品久久久久久久久果冻传媒| 在线观看国产日韩| 国产成人精品影院| 麻豆成人91精品二区三区| 亚洲天堂a在线| 久久夜色精品国产欧美乱极品| 91美女在线观看| 国产精品自拍av| 午夜日韩在线观看| 亚洲精品日产精品乱码不卡| 精品国产1区二区| 欧美日韩亚洲综合一区二区三区| 高清av一区二区| 韩国在线一区二区| 蜜臀a∨国产成人精品| 亚洲男帅同性gay1069| 中文字幕不卡在线| 精品女同一区二区| 日韩一级视频免费观看在线| 一本到高清视频免费精品| 丁香婷婷综合色啪| 老司机午夜精品| 秋霞av亚洲一区二区三| 亚洲一二三级电影| 亚洲免费在线观看视频| 国产精品三级在线观看| 久久久噜噜噜久久中文字幕色伊伊| 欧美日韩精品一区二区| 欧美曰成人黄网| 一本一本久久a久久精品综合麻豆| 成人一区在线观看| 国产成人精品亚洲777人妖| 韩国欧美国产1区| 蜜桃av一区二区三区电影| 手机精品视频在线观看| 亚洲第一主播视频| 亚洲国产综合视频在线观看| 亚洲精品国产一区二区精华液 | 国产精品一二三区在线| 精品午夜一区二区三区在线观看 | 欧美久久久一区| 欧美人妇做爰xxxⅹ性高电影| 欧美在线视频你懂得| 欧美日韩一区视频| 欧美妇女性影城| 欧美一级欧美一级在线播放| 欧美一级在线视频| 亚洲精品一区二区三区精华液| 日韩欧美国产电影| 久久久久久久av麻豆果冻| 欧美极品aⅴ影院| 国产精品理论片在线观看| 综合亚洲深深色噜噜狠狠网站| 中文字幕乱码日本亚洲一区二区| 国产精品久久久久婷婷二区次| 中文字幕一区av| 一区二区三区91| 日韩黄色免费电影| 国产一区高清在线| 97国产一区二区| 欧美日韩国产另类不卡| 日韩一区和二区| 国产女主播视频一区二区| 亚洲男人的天堂网| 久久精品国产色蜜蜜麻豆| 国产sm精品调教视频网站| 99热这里都是精品| 91精品一区二区三区久久久久久| 欧美成人a∨高清免费观看| 国产精品天美传媒| 亚洲18女电影在线观看| 国产激情一区二区三区四区| 日本韩国欧美一区| 久久综合丝袜日本网| 亚洲欧美色综合| 久久精品国产77777蜜臀| av中文字幕亚洲| 日韩欧美国产综合一区 | 日韩一区二区高清| 国产精品护士白丝一区av| 亚洲激情图片小说视频| 久久电影国产免费久久电影| av午夜精品一区二区三区| 欧美男女性生活在线直播观看| 久久这里都是精品| 三级欧美在线一区| 99精品国产热久久91蜜凸| 欧美大片一区二区| 亚洲精品日产精品乱码不卡| 精油按摩中文字幕久久| 色婷婷精品久久二区二区蜜臀av| 精品国产123| 午夜视频一区在线观看| 成人黄色av网站在线| 日韩一区二区三区免费看| 亚洲精品欧美激情| 国产精品影视在线| 日韩午夜在线观看视频| 一区二区不卡在线视频 午夜欧美不卡在| 麻豆视频一区二区| 欧美日韩精品一区二区| 成人免费在线视频| 国产福利不卡视频| 欧美zozozo| 久久成人综合网| 欧美一区三区四区| 日韩精品视频网站| 在线免费不卡电影| 亚洲三级电影全部在线观看高清| 国产福利91精品一区二区三区| 91精品国产综合久久久久久久| 一区二区三区欧美久久| caoporen国产精品视频| 国产日韩精品一区二区三区在线| 精品亚洲欧美一区| 日韩久久精品一区| 久久成人久久爱| 日韩免费视频线观看| 蜜臀精品一区二区三区在线观看 | 五月综合激情网| 欧美日韩日日骚|