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

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

?? freemaster_tsa.h

?? BCM 控制demo源代碼
?? H
字號:
/******************************************************************************
*
* Freescale Semiconductor Inc.
* (c) Copyright 2004-2005 Freescale Semiconductor, Inc.
* (c) Copyright 2001-2004 Motorola, Inc.
* ALL RIGHTS RESERVED.
*
****************************************************************************//*!
*
* @file   freemaster_tsa.h
*
* @brief  FreeMaster Driver TSA feature
*
* @version 1.0.1.0
* 
* @date Oct-12-2006
* 
*******************************************************************************/

#ifndef __FREEMASTER_TSA_H
#define __FREEMASTER_TSA_H

#include "freemaster_cfg.h"

/*****************************************************************************
 Target-side Address translation structures and macros
******************************************************************************/

/// current TSA version 
#define FMSTR_TSA_VERSION 2     

// TSA flags carried in TSA_ENTRY.info (except the first entry in table)
#define FMSTR_TSA_INFO_ENTRYTYPE_MASK 0x0003    ///< flags reserved for TSA_ENTRY use
#define FMSTR_TSA_INFO_STRUCT         0x0000    ///< ENTRYTYPE: structure parent type
#define FMSTR_TSA_INFO_RO_VAR         0x0001    ///< ENTRYTYPE: read-only variable
#define FMSTR_TSA_INFO_MEMBER         0x0002    ///< ENTRYTYPE: structure member
#define FMSTR_TSA_INFO_RW_VAR         0x0003    ///< ENTRYTYPE: read-write variable
#define FMSTR_TSA_INFO_VAR_FLAG       0x0001    ///< ENTRYTYPE: FLAG: any variable
#define FMSTR_TSA_INFO_RWV_FLAG       0x0002    ///< ENTRYTYPE: FLAG: R/W access

// TSA table index and size (both unsigned, at least 16 bit wide)
typedef FMSTR_SIZE FMSTR_TSA_TINDEX;
typedef FMSTR_SIZE FMSTR_TSA_TSIZE;

// pointer types used in TSA tables can be overridden in freemaster.h
// (this is why macros are used instead of typedefs)
#ifndef FMSTR_TSATBL_STRPTR 
#define FMSTR_TSATBL_STRPTR  const char*
#endif
#ifndef FMSTR_TSATBL_STRPTR_CAST
#define FMSTR_TSATBL_STRPTR_CAST(x) ((FMSTR_TSATBL_STRPTR)(x))
#endif
#ifndef FMSTR_TSATBL_VOIDPTR 
#define FMSTR_TSATBL_VOIDPTR const void*
#endif
#ifndef FMSTR_TSATBL_VOIDPTR_CAST 
#define FMSTR_TSATBL_VOIDPTR_CAST(x) ((FMSTR_TSATBL_VOIDPTR)(x))
#endif

/// TSA table entry. The unions inside assures variables sized enough to
/// accomodate both the C-pointer and the user-requested size (FMSTR_ADDR)
typedef struct
{
    union { FMSTR_TSATBL_STRPTR  p; FMSTR_ADDR n; } name;
    union { FMSTR_TSATBL_STRPTR  p; FMSTR_ADDR n; } type;
    union { FMSTR_TSATBL_VOIDPTR p; FMSTR_ADDR n; } addr;
    union { FMSTR_TSATBL_VOIDPTR p; FMSTR_ADDR n; } info;
} FMSTR_TSA_ENTRY;

// TSA table allocation modifier
#ifndef FMSTR_USE_TSA_INROM
#define FMSTR_USE_TSA_INROM 0
#endif
#if FMSTR_USE_TSA_INROM
#define FMSTR_TSA_CDECL const
#else
#define FMSTR_TSA_CDECL 
#endif

///////////////////////////////////////////////////
// single table-building macros

#define FMSTR_TSA_FUNC(id)  FMSTR_TsaGetTable_##id
#define FMSTR_TSA_FUNC_PROTO(id) const FMSTR_TSA_ENTRY* FMSTR_TSA_FUNC(id) (FMSTR_TSA_TSIZE* pTableSize)

#define FMSTR_TSA_TABLE_BEGIN(id) \
    FMSTR_TSA_FUNC_PROTO(id); \
    FMSTR_TSA_FUNC_PROTO(id) { \
        static FMSTR_TSA_CDECL FMSTR_TSA_ENTRY fmstr_tsatable[] = { 

// entry info 
#define FMSTR_TSA_INFO1(elem, flags) FMSTR_TSATBL_VOIDPTR_CAST(((sizeof(elem))<<2)|(flags))
#define FMSTR_TSA_INFO2(size, flags) FMSTR_TSATBL_VOIDPTR_CAST(((size)<<2)|(flags))

#define FMSTR_TSA_STRUCT(name)  \
    { FMSTR_TSATBL_STRPTR_CAST(#name), FMSTR_TSATBL_STRPTR_CAST(NULL), FMSTR_TSATBL_VOIDPTR_CAST(NULL), FMSTR_TSA_INFO1(name, FMSTR_TSA_INFO_STRUCT) },
    
#define FMSTR_TSA_MEMBER(parenttype,name,type) \
    { FMSTR_TSATBL_STRPTR_CAST(#name), FMSTR_TSATBL_STRPTR_CAST(type), FMSTR_TSATBL_VOIDPTR_CAST(&((parenttype*)0)->name), FMSTR_TSA_INFO1(((parenttype*)0)->name, FMSTR_TSA_INFO_MEMBER) },
    
#define FMSTR_TSA_RO_VAR(name,type) \
    { FMSTR_TSATBL_STRPTR_CAST(#name), FMSTR_TSATBL_STRPTR_CAST(type), FMSTR_TSATBL_VOIDPTR_CAST(&(name)), FMSTR_TSA_INFO1(name, FMSTR_TSA_INFO_RO_VAR) },

#define FMSTR_TSA_RW_VAR(name,type) \
    { FMSTR_TSATBL_STRPTR_CAST(#name), FMSTR_TSATBL_STRPTR_CAST(type), FMSTR_TSATBL_VOIDPTR_CAST(&(name)), FMSTR_TSA_INFO1(name, FMSTR_TSA_INFO_RW_VAR) },

#define FMSTR_TSA_RO_MEM(name,type,addr,size) \
    { FMSTR_TSATBL_STRPTR_CAST(#name), FMSTR_TSATBL_STRPTR_CAST(type), FMSTR_TSATBL_VOIDPTR_CAST(addr), FMSTR_TSA_INFO2(size, FMSTR_TSA_INFO_RO_VAR) },

#define FMSTR_TSA_RW_MEM(name,type,addr,size) \
    { FMSTR_TSATBL_STRPTR_CAST(#name), FMSTR_TSATBL_STRPTR_CAST(type), FMSTR_TSATBL_VOIDPTR_CAST(addr), FMSTR_TSA_INFO2(size, FMSTR_TSA_INFO_RW_VAR) },

#define FMSTR_TSA_TABLE_END() }; \
    if(pTableSize) *pTableSize = sizeof(fmstr_tsatable); \
    return fmstr_tsatable; }

////////////////////////////////////////////////////////////////////////
// TSA "Base Types", all are implemented as a one-char strings
// retrieved by PC and parsed according to the binary scheme
// "111STTZZ" where TT=type[int,frac,fp,x] S=signed ZZ=size[1,2,4,8]

#define FMSTR_TSA_UINT8   "\xE0"
#define FMSTR_TSA_UINT16  "\xE1"
#define FMSTR_TSA_UINT32  "\xE2"
#define FMSTR_TSA_UINT64  "\xE3"
#define FMSTR_TSA_SINT8   "\xF0"
#define FMSTR_TSA_SINT16  "\xF1"
#define FMSTR_TSA_SINT32  "\xF2"
#define FMSTR_TSA_SINT64  "\xF3"
#define FMSTR_TSA_UFRAC16 "\xE5"
#define FMSTR_TSA_UFRAC32 "\xE6"
#define FMSTR_TSA_FRAC16  "\xF5"
#define FMSTR_TSA_FRAC32  "\xF6"
#define FMSTR_TSA_FLOAT   "\xFA"
#define FMSTR_TSA_DOUBLE  "\xFB"

// macro used to describe "User Type"
#define FMSTR_TSA_USERTYPE(type) #type

// macro used to describe pure memory space
#define FMSTR_TSA_MEMORY NULL


///////////////////////////////////////////////////
// master TSA table-retrival building macros

#define FMSTR_TSA_TABLE_LIST_BEGIN() \
    const FMSTR_TSA_ENTRY* FMSTR_TsaGetTable(FMSTR_TSA_TINDEX nTableIndex, FMSTR_TSA_TSIZE* pTableSize) {
        
#define FMSTR_TSA_TABLE(id) \
    if(!nTableIndex--) { \
        FMSTR_TSA_FUNC_PROTO(id); \
        return FMSTR_TSA_FUNC(id)(pTableSize); \
    } else
        
#define FMSTR_TSA_TABLE_LIST_END() \
    { return NULL; } }

/*****************************************************************************
 Target-side Address translation functions
******************************************************************************/

/// master TSA table-retrival function
const FMSTR_TSA_ENTRY* FMSTR_TsaGetTable(FMSTR_TSA_TINDEX nTableIndex, FMSTR_TSA_TSIZE* pTableSize);

#endif /* __FREEMASTER_TSA_H */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲午夜av在线| 国产欧美一区二区三区在线看蜜臀| 久久久久88色偷偷免费| 激情久久久久久久久久久久久久久久| 欧美一区二区大片| 国产.精品.日韩.另类.中文.在线.播放| 久久精品一区二区三区不卡牛牛| 国产一区二区精品在线观看| 亚洲国产激情av| 欧美一区二区精品在线| 不卡的看片网站| 免费成人在线视频观看| 亚洲国产精品99久久久久久久久| 91国偷自产一区二区三区成为亚洲经典 | 成人国产精品免费网站| 日韩在线a电影| 亚洲桃色在线一区| 欧美午夜精品一区二区蜜桃| 午夜精品福利久久久| 亚洲三级电影全部在线观看高清| 欧美福利视频导航| 95精品视频在线| 蜜桃传媒麻豆第一区在线观看| 亚洲人成在线观看一区二区| 久久久久久97三级| 久久亚洲二区三区| 欧美一二三在线| 欧美久久久久久蜜桃| 欧美三级中文字幕| 欧美日韩日日摸| 91精品在线观看入口| 91麻豆精品久久久久蜜臀| 欧美巨大另类极品videosbest | 日韩午夜在线影院| 欧美一区在线视频| 日韩欧美自拍偷拍| 日韩一区和二区| 欧美一区二区三区的| 日韩欧美国产一二三区| 日韩三级视频中文字幕| 国产欧美一区视频| 国产精品美女久久久久久2018| 国产精品久久久久久久久果冻传媒 | 悠悠色在线精品| 日本不卡123| 日本成人在线不卡视频| 午夜成人免费电影| 激情六月婷婷综合| 成人理论电影网| 欧美日韩一区成人| 日韩欧美国产麻豆| 国产精品久久久久精k8| 五月婷婷综合激情| 国产成人av福利| 精品国产污污免费网站入口| 国产精品女主播av| 亚洲v中文字幕| 91在线视频在线| 久久久综合视频| 精品美女一区二区| 久久久噜噜噜久噜久久综合| 亚洲免费观看高清完整版在线观看熊| 日日夜夜免费精品视频| 不卡欧美aaaaa| 精品国产乱码久久久久久1区2区| 欧美国产一区在线| 一区二区三区中文字幕电影| 国产精品一区二区久激情瑜伽| 欧美色网一区二区| 中文字幕五月欧美| 国产尤物一区二区| 欧美sm美女调教| 久久国产精品72免费观看| 欧美一区二区三区四区五区 | 国产精品1区2区3区在线观看| 欧美一区在线视频| 蜜臀av性久久久久蜜臀aⅴ流畅| 欧美日韩国产成人在线免费| 亚洲已满18点击进入久久| 91福利精品视频| 婷婷成人激情在线网| 欧美精三区欧美精三区| 日本欧美一区二区三区乱码| 欧美日韩中文字幕一区| 亚洲一区中文日韩| 精品黑人一区二区三区久久| 日韩成人免费看| 精品免费国产一区二区三区四区| 一区二区三区蜜桃| 日韩欧美国产午夜精品| 粉嫩av亚洲一区二区图片| 中文字幕欧美一| 日韩一级完整毛片| 黄网站免费久久| 欧美tickling网站挠脚心| 成人av电影免费观看| 视频一区在线播放| 中文字幕av一区二区三区高| 欧美日韩在线播放| 9久草视频在线视频精品| 亚洲123区在线观看| 一区二区三区四区不卡在线| 欧美日韩一区二区三区四区五区| 久久av资源网| 日韩电影在线一区二区| 成人免费视频国产在线观看| 久久久av毛片精品| 久久久国产精品不卡| 日韩精品影音先锋| 91久久精品网| 美女看a上一区| 一区二区三区日本| 国产欧美日韩亚州综合| 日韩精品一区二区三区swag| 日韩一区在线播放| 91精品国产91久久综合桃花| 9久草视频在线视频精品| 国产成人午夜99999| 日本最新不卡在线| 夜夜夜精品看看| 午夜不卡av免费| 精品一区二区三区香蕉蜜桃| 国产乱人伦精品一区二区在线观看| 日韩av一区二区三区| 久久成人麻豆午夜电影| www.激情成人| 欧美精品视频www在线观看| 在线一区二区三区四区五区| 国产一区欧美一区| 一区二区三区中文字幕| 亚洲午夜三级在线| 99久久99久久精品免费看蜜桃| av中文字幕一区| 欧美刺激午夜性久久久久久久| 国产欧美一区二区精品婷婷| 日韩不卡一二三区| 国产精品一区二区视频| 色综合激情久久| 久久精品一区二区| 五月天激情小说综合| 成人综合婷婷国产精品久久免费| 9191久久久久久久久久久| 久久午夜老司机| 亚洲国产一区二区三区青草影视| 无码av免费一区二区三区试看| 91色porny在线视频| 一区二区三区中文字幕在线观看| 成人爽a毛片一区二区免费| 久久久国产精品不卡| 粉嫩嫩av羞羞动漫久久久| 国产精品区一区二区三区| 成人国产视频在线观看| 亚洲欧洲性图库| 欧美日韩国产另类不卡| 日韩av不卡一区二区| 久久久精品国产免大香伊 | 日韩一区精品视频| 久久影院午夜论| 91麻豆精品91久久久久久清纯| 国产精品一区二区久久精品爱涩| 中文字幕在线观看不卡视频| 91最新地址在线播放| 亚洲欧洲综合另类| 色狠狠一区二区| 亚洲欧美激情一区二区| 91丨porny丨中文| 日韩和欧美的一区| 日韩一区二区三区在线观看| 成人国产精品免费网站| 婷婷激情综合网| 国产精品黄色在线观看| 日韩欧美在线网站| 91久久精品国产91性色tv| 美女视频一区在线观看| 亚洲久本草在线中文字幕| 91麻豆精品国产自产在线| 成人毛片视频在线观看| 免费精品99久久国产综合精品| 国产精品网曝门| 国产婷婷精品av在线| 日韩精品电影在线| 亚洲精品老司机| 国产拍欧美日韩视频二区| 欧美成人在线直播| 精品视频999| 色av综合在线| 99精品久久99久久久久| av在线不卡观看免费观看| 国产一区二区调教| 国内精品国产成人国产三级粉色 | 久久精品国产秦先生| 亚洲国产三级在线| 亚洲国产精品久久艾草纯爱| 亚洲男人的天堂av| 亚洲精品免费在线观看| 亚洲天堂a在线| 中文字幕一区二区三区在线播放| 国产精品不卡在线| 亚洲欧美激情视频在线观看一区二区三区 | 亚洲亚洲人成综合网络|