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

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

?? configif.h

?? TITMS6000 DM642 串口程序 uart
?? H
字號:
//--------------------------------------------------------------------------
// Network Tooks Library
//--------------------------------------------------------------------------
// CONFIGIF.H
//
// Configuration Manager Interface Functions
//
// Author: Michael A. Denio
// Copyright 2000 by Texas Instruments Inc.
//-------------------------------------------------------------------------
#ifndef _CONFIGIF_H
#define _CONFIGIF_H

//-----------------------------------------------------------------------
// Config API
//-----------------------------------------------------------------------

//-----------------------------------------------------------------------
// CfgNew()
//
// Create a new configuration
//-----------------------------------------------------------------------
_extern HANDLE CfgNew();

//-----------------------------------------------------------------------
// CfgFree( HANDLE hCfg )
//
// Destroy a configuration
//-----------------------------------------------------------------------
_extern void CfgFree( HANDLE hCfg );

//-----------------------------------------------------------------------
// CfgSetDefault()
//
// Set the default configuration
//-----------------------------------------------------------------------
_extern void CfgSetDefault( HANDLE hCfg );

//-----------------------------------------------------------------------
// CfgGetDefault()
//
// Get the default configuration
//-----------------------------------------------------------------------
_extern HANDLE CfgGetDefault();

//-----------------------------------------------------------------------
// CfgLoad()
//
// Load a configuration from memory buffer
//
// Returns the number of bytes processed, or <0 on error
//-----------------------------------------------------------------------
_extern int  CfgLoad( HANDLE hCfg, int Size, UINT8 *pData );

//-----------------------------------------------------------------------
// CfgSave()
//
// Save configuration to a memory buffer
//
// *pSize is set to the size of the supplied buffer, or zero to get
// required size (the pointer pSize must be valid, but the value at
// the pointer can be zero).
//
// Returns the number of bytes written (0 on size check, <0 on error)
// *pSize is set to the number of bytes required.
//-----------------------------------------------------------------------
_extern int  CfgSave( HANDLE hCfg, int *pSize, UINT8 *pData );

//-----------------------------------------------------------------------
// CfgSetExecuteOrder()
//
// Establishes the order in which Tags are loaded and unloaded when
// the Execute status changes.
//
// When a configuration is first created, the order set in ascending
// Tag value order.
//
// The valute of Tags must be set to the EXACT number of tags in the
// configuration system.
//
// Returns 0 on success, or <0 on error
//-----------------------------------------------------------------------
_extern int CfgSetExecuteOrder( HANDLE hCfg, uint Tags,
                        uint *pOpenOrder, uint *pCloseOrder );

//-----------------------------------------------------------------------
// CfgExecute()
//
// Executes the configuration - loads all loadable entries
//
// When a configuration is first created, config changes do not
// alter the state of the system. Once the configuration is executed,
// all past settings take effect, and any new settings are immediately
// invoked.
//
// When fExecute is set to 0, all invoked entries are shutdown.
//
// Returns 0 on success, or <0 on error
//-----------------------------------------------------------------------
_extern int  CfgExecute( HANDLE hCfg, uint fExecute );

//-----------------------------------------------------------------------
// CfgSetService()
//
// Sets the service function for a particular config TAG. Service
// functions default to NULL, and when so, no service is performed.
//
// When invoked, the service callback function is passed back information
// about the affected entry.
//
//   int CbSrv( HANDLE hCfg, uint Tag, uint Item, uint Op, HANDLE hCfgEntry )
//        hCfg      = HANDLE to Config
//        Tag       = Tag value of entry changed
//        Item      = Item value of entry changed
//        Op        = CFGCOP_ADD or CFGOP_REMOVE
//        hCfgEntry = Non-Ref'd HANDLE to entry added or removed
//
//    Returns 1 on success, 0 on "pass", and <0 on error.
//
// Note: The config entry handle passed to the callback is NOT Ref'd,
//       in that its scope expires when the callback function returns.
//
// Returns 0 on success, <0 on error.
//-----------------------------------------------------------------------
_extern int  CfgSetService( HANDLE hCfg, uint Tag,
                           int (*pCb) (HANDLE, uint, uint, uint, HANDLE) );
#define CFGOP_REMOVE    0
#define CFGOP_ADD       1

//-----------------------------------------------------------------------
// CfgAddEntry()
//
// Add a configuration entry to a configuration.
//
// When the pointer phCfgEntry is non-zero, this function write a
// referenced HANDLE to this location.
//
// When finished with a referenced entry HANDLE, an application must
// DeRef it by calling one of the following functions:
//   CfgEntryDeRef()          - Stop using the entry
//   CfgRemoveEntry()         - Stop using entry and remove it from cfg
//   CfgGetNextEntry()        - Stop using entry and get next entry
//
// Returns 1 on successful add and processing.
// Returns 0 on successful add with no processing.
// Returns <0 but > CFGERROR_SERVICE on configuration error
// Returns <= CFGERROR_SERVICE on successful add, but service error
//
//-----------------------------------------------------------------------
_extern int  CfgAddEntry( HANDLE hCfg, uint Tag, uint Item, uint Mode,
                         int Size, UINT8 *pData, HANDLE *phCfgEntry );

// Add Entry Flags
#define CFG_ADDMODE_UNIQUE      0x0001  // Replace all previous instances
#define CFG_ADDMODE_DUPLICATE   0x0002  // Allow duplicate data entry
#define CFG_ADDMODE_NOSAVE      0x0004  // Don't include this entry in CfgSave

//-----------------------------------------------------------------------
// CfgRemoveEntry()
//
// Performs a single DeRef on a configuration entry, and removes it from
// the configuration structure.
//
// Returns 0 on success, or <0 on error
//-----------------------------------------------------------------------
_extern int  CfgRemoveEntry( HANDLE hCfg, HANDLE hCfgEntry );

//-----------------------------------------------------------------------
// CfgGetEntryCnt()
//
// Returns the number of entries on a specific tag/item, or <0 on error
//-----------------------------------------------------------------------
_extern int  CfgGetEntryCnt( HANDLE hCfg, uint Tag, uint Item );

//-----------------------------------------------------------------------
// CfgGetEntry()
//
// Get a referenced HANDLE to a configuration entry
//
// Index is a relative value (the "n'th" 1-based entry in a list)
//
// DO NOT use the index value to enumerate entry entry in the list.
// The index is valid only at the time of the call as an item can
// move up and down in the list as config changes are made. To
// enumerate every entry for a Tag/Item pair, start with index 1 and
// then use GetNextEntry() to get additional entries.
//
// When finished with this entry, an application must deref it
// by calling one of the following functions:
//   CfgEntryDeRef()          - Stop using the entry
//   CfgRemoveEntry()         - Stop using entry and remove it from cfg
//   CfgGetNextEntry()        - Stop using entry and get next entry
//
// Function returns 1 on success, 0 on "not found", and <0 on error.
//-----------------------------------------------------------------------
_extern int  CfgGetEntry( HANDLE hCfg, uint Tag, uint Item,
                         uint Index, HANDLE *phCfgEntry );

//-----------------------------------------------------------------------
// CfgGetNextEntry()
//
// DeRef supplied entry HANDLE and get referenced HANDLE of
// next configuration entry in the enumerated list.
//
// When finished with this entry, an application must deref it
// by calling one of the following functions:
//   CfgEntryDeRef()          - Stop using the entry
//   CfgRemoveEntry()         - Stop using entry and remove it from cfg
//   CfgGetNextEntry()        - Stop using entry and get next entry
//
// Function returns 1 on success, 0 on "not found", and <0 on error.
//-----------------------------------------------------------------------
_extern int  CfgGetNextEntry( HANDLE hCfg, HANDLE hCfgEntry,
                             HANDLE *phCfgEntryNext );

//-----------------------------------------------------------------------
// CfgGetImmediate()
//
// This function is intened for when an entry is known to most likely
// exist and is of a fixed size. It looks-up the entry, copies the data,
// and de-refs the entry all in one call.
//
// Returns the number of bytes copied.
//-----------------------------------------------------------------------
_extern int CfgGetImmediate( HANDLE hCfg, uint Tag, uint Item, uint Instance,
                            int MaxSize, UINT8 *pData );

//-----------------------------------------------------------------------
// CfgEntryRef()
//
// Add a reference a configuration entry handle
//
// This function is called by an application when it intends to use an
// entry handle beyond the scope of the function which obtained it
// from the configuration.
//
// When finished with this entry, an application must deref it
// by calling one of the following functions:
//   CfgEntryDeRef()          - Stop using the entry
//   CfgRemoveEntry()         - Stop using entry and remove it from cfg
//   CfgGetNextEntry()        - Stop using entry and get next entry
//
// Returns 0 on success, <0 on error.
//-----------------------------------------------------------------------
_extern int  CfgEntryRef( HANDLE hCfgEntry );

//-----------------------------------------------------------------------
// CfgEntryDeRef();
//
// Dereference a configuration entry handle
//
// Returns 0 on success, <0 on error.
//-----------------------------------------------------------------------
_extern int  CfgEntryDeRef( HANDLE hCfgEntry );

//-----------------------------------------------------------------------
// CfgEntryGetData()
//
// Get configuration entry user data
//
// *pSize is set to the size of the supplied buffer, or zero to get
// required size (the pointer pSize must be valid, but the value at
// the pointer can be zero).
//
// Returns the number of bytes written. If the supplied size is ZERO or
// too small, the function returns 0 and *pSize is set to the number of
// bytes required. Returns <0 on non-size related error.
//-----------------------------------------------------------------------
_extern int  CfgEntryGetData( HANDLE hCfgEntry, int *pSize, UINT8 *pData );

//-----------------------------------------------------------------------
// CfgEntrySetData()
//
// Set configuration entry user data
//
// Size is set to the size of item to replace. It must be an exact
// match for the current entry size. Also, no processing is done on
// the altered data.
//
// * USE WITH CARE *
//
// Returns the number of bytes written. If the supplied size doesn't
// match the old size, function returns 0.
// Returns <0 on non-size related error.
//-----------------------------------------------------------------------
_extern int  CfgEntrySetData( HANDLE hCfgEntry, int Size, UINT8 *pData );

//-----------------------------------------------------------------------
// CfgEntryInfo()
//
// Get configuration entry user data info
//
// Returns configuration size and data pointer. When either size or
// data information is not required, the pointer arguments can be NULL.
//
// Returns ZERO on successm or <0 on error
//-----------------------------------------------------------------------
_extern int  CfgEntryInfo( HANDLE hCfgEntry, int *pSize, UINT8 **ppData );

//-----------------------------------------------------------------------
// Config API Error Codes
//-----------------------------------------------------------------------
#define CFGERROR_BADHANDLE      -1      // Invalid Cfg handle
#define CFGERROR_BADPARAM       -2      // Invalid function parameter
#define CFGERROR_RESOURCES      -3      // Memory allocation error
#define CFGERROR_REFERROR       -4      // Reference count mismatch
#define CFGERROR_ALREADY        -5      // Already in desired state
#define CFGERROR_SERVICE        -100    // First service error

#define CFG_MAKE_CFGERROR(x)     (x+CFGERROR_SERVICE)
#define CFG_GET_SERVICE_ERROR(x) (x-CFGERROR_SERVICE)
#define CFG_IS_SERVICE_ERROR(x)  (x<=CFGERROR_SERVICE)

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人av网址在线| 欧美久久高跟鞋激| 日本欧美加勒比视频| 久久网站最新地址| 日本道色综合久久| 懂色中文一区二区在线播放| 亚洲午夜免费视频| 国产精品福利av| 久久夜色精品国产欧美乱极品| 欧美性淫爽ww久久久久无| 国产suv一区二区三区88区| 日韩精品欧美成人高清一区二区| 亚洲国产经典视频| 日韩一二三区不卡| 欧美日韩性生活| 99久久久无码国产精品| 韩国在线一区二区| 日本女人一区二区三区| 亚洲精品成人在线| 国产精品网站在线播放| 国产亚洲欧美激情| 久久久99精品免费观看不卡| 日韩亚洲欧美在线| 91精品国产91久久久久久最新毛片| 91网上在线视频| 成人手机电影网| 国产成人精品1024| 国产精品自拍av| 国产乱一区二区| 国产九色精品成人porny| 免费三级欧美电影| 日本午夜精品视频在线观看| 亚洲一区二区三区爽爽爽爽爽 | 成人激情校园春色| 激情亚洲综合在线| 精品亚洲欧美一区| 九色综合狠狠综合久久| 久久精品国产精品亚洲综合| 日本美女一区二区三区视频| 日韩国产一区二| 日韩高清国产一区在线| 美女视频免费一区| 国产一区亚洲一区| 国产精品一色哟哟哟| 成人小视频免费在线观看| 豆国产96在线|亚洲| 波波电影院一区二区三区| va亚洲va日韩不卡在线观看| caoporm超碰国产精品| eeuss鲁片一区二区三区| 97久久精品人人做人人爽50路| 91一区二区三区在线观看| 91网址在线看| 欧美日韩高清一区二区不卡| 欧美一区二区免费| 久久久久久久av麻豆果冻| 中文字幕第一区综合| 亚洲欧美乱综合| 亚洲成人精品影院| 日韩av在线播放中文字幕| 国产在线不卡视频| 不卡一区二区三区四区| 91免费看`日韩一区二区| 色婷婷亚洲精品| 91精品久久久久久蜜臀| 久久女同性恋中文字幕| 中文字幕一区二| 亚洲在线观看免费视频| 蜜桃91丨九色丨蝌蚪91桃色| 国产成人精品亚洲777人妖| 91麻豆国产在线观看| 6080国产精品一区二区| 2023国产精品自拍| 亚洲免费在线播放| 美女视频一区二区| 色综合久久综合| 日韩欧美久久一区| 亚洲理论在线观看| 久久国产综合精品| 色综合久久中文字幕| 精品日韩欧美一区二区| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 国内久久婷婷综合| 91麻豆免费看| 久久先锋资源网| 亚洲成人综合视频| 成人免费毛片app| 在线播放视频一区| 亚洲视频免费在线| 韩国欧美一区二区| 欧美日韩精品一区二区三区蜜桃| 国产视频一区二区在线观看| 亚洲国产乱码最新视频| 粉嫩13p一区二区三区| 这里是久久伊人| 亚洲欧美日韩综合aⅴ视频| 喷水一区二区三区| 欧美亚洲自拍偷拍| 国产精品初高中害羞小美女文| 日本亚洲一区二区| 在线观看亚洲一区| 国产精品久久免费看| 久久99精品久久久| 欧美美女黄视频| 国产精品灌醉下药二区| 韩国av一区二区三区四区 | 久久精品亚洲国产奇米99| 午夜精品成人在线| 91美女片黄在线观看91美女| 久久亚洲一区二区三区四区| 日韩综合一区二区| 色香色香欲天天天影视综合网| 久久久久久97三级| 裸体健美xxxx欧美裸体表演| 欧美性感一区二区三区| 国产精品久久网站| 丰满岳乱妇一区二区三区| 久久香蕉国产线看观看99| 老司机免费视频一区二区| 欧美一区二区三区性视频| 亚洲成a人片在线观看中文| 日本韩国欧美国产| 亚洲色图视频免费播放| 成人午夜免费av| 欧美国产日韩亚洲一区| 国产精品影视网| 久久精品一区四区| 国产精品白丝av| 欧美成人精品3d动漫h| 全部av―极品视觉盛宴亚洲| 欧美三级日韩三级| 亚洲国产精品自拍| 欧美日韩国产天堂| 天堂一区二区在线| 欧美妇女性影城| 日本欧洲一区二区| 欧美一级二级在线观看| 奇米色777欧美一区二区| 欧美一区二区成人| 九九国产精品视频| 久久这里只有精品首页| 国产毛片精品一区| 国产日韩欧美综合一区| 国产精品夜夜嗨| 国产精品久久久久久户外露出 | 日本高清不卡aⅴ免费网站| 亚洲欧美日韩小说| 在线不卡免费av| 韩国av一区二区三区四区| 久久久久高清精品| www.亚洲精品| 一区二区激情视频| 日韩一区二区三区四区| 国模套图日韩精品一区二区| 久久人人超碰精品| 99久久99久久精品免费观看| 亚洲一区二区影院| 欧美一级在线视频| 国产电影一区二区三区| 日韩毛片视频在线看| 欧美三级三级三级| 国产麻豆日韩欧美久久| 亚洲人成网站在线| 日韩三级免费观看| www.激情成人| 日日摸夜夜添夜夜添精品视频 | 91久久线看在观草草青青| 天天av天天翘天天综合网色鬼国产| 欧美本精品男人aⅴ天堂| 高清国产一区二区| 亚洲国产欧美在线| 久久天堂av综合合色蜜桃网| 91亚洲精品久久久蜜桃网站| 性久久久久久久| 国产欧美一区二区精品秋霞影院| 91蜜桃免费观看视频| 久久国产成人午夜av影院| 1区2区3区欧美| 精品免费国产一区二区三区四区| 成人激情免费电影网址| 图片区小说区国产精品视频 | 亚洲第一成年网| 久久午夜免费电影| 欧美性色黄大片| 福利电影一区二区| 日韩黄色一级片| 亚洲免费资源在线播放| 精品99999| 欧美午夜精品久久久久久超碰| 国产高清精品在线| 五月天久久比比资源色| 国产精品丝袜91| 精品国产91九色蝌蚪| 欧美日韩国产欧美日美国产精品| 国产成人综合精品三级| 日韩av网站免费在线| 亚洲一区二区精品视频| 国产精品丝袜在线| 久久久五月婷婷| 欧美一区二区三区视频|