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

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

?? sordi.h

?? ARM公司關于調試接口RDI的最新頭文件
?? H
字號:
/* SORDI - Shared Object RDI
   Copyright (C) 2001 Free Software Foundation, Inc.


This file is part of GDB.


GDB 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.


GDB 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 GDB; see the file COPYING.  If not, write to the Free
Software Foundation, 59 Temple Place - Suite 330, Boston, MA
02111-1307, USA.  */

/* -*-C-*-
 *
 * $Revision: 1.16.16.1 $
 *   $Author: hbullman $
 *     $Date: 2001/01/17 15:47:44 $
 *
 */

#ifndef sordi_h
#define sordi_h

#include "host.h"
#include "toolconf.h"
#include "rdi.h"

#ifdef __cplusplus
extern "C" {
#endif

/*
 * SORDI: "Shared Object RDI"
 * ==========================
 *
 * SORDI defines platform independent C entry points for RDI targets
 * embedded in shared objects of some description (e.g., .so, .sl, .dll)
 * In this file "shared object" refers to a shared object, a shared library,
 * or a DLL.
 *
 * There is a very simple mapping between SORDI and WinRDI, so that on
 * windowing platforms, a platform and environment specific WinRDI wrapper
 * can be supplied.
 *
 * The main reason that we bother to define SORDI_*, rather than reusing
 * WinRDI_*, is because WinRDI is defined to use the windows specific
 * WINAPI calling convention, whereas SORDI uses the standard 'C' calling
 * conventions.
 *
 * WinRDI                          => SORDI
 * ======                             =====
 * WinRDI_Valid_RDI_DLL            => SORDI_Valid_RDI_DLL
 * WinRDI_GetVersion               => SORDI_GetVersion
 * WinRDI_SetVersion               => SORDI_SetVersion
 * WinRDI_GetRDIProcVec            => SORDI_GetRDIProcVec
 * WinRDI_Initialise               => SORDI_Initialise
 * WinRDI_Config                   => no SORDI equivalent
 *                                    WinRDI provides implementation
 * WinRDI_Register_Yield_Callback  => SORDI_RegisterYieldCallback
 * WinRDI_SetProgressFunc          => SORDI_SetProgressFunc
 * WinRDI_ZeroProgressValues       => SORDI_ZeroProgressValues
 */

/*
 * How to use SORDI
 * ================
 *
 * SORDI can be used standalone, to communicate between a non-windowing
 * debug controller and a debug target (Figure 1), and it can be used
 * in conjunction with WinRDI to communicate between a windowing debug
 * controller and a debug target (Figure 2).
 *
 * SORDI Controller   (The debug controller)
 *       |
 *       | SORDI
 *       |
 * SORDI Target       (The debug target)
 *
 * Figure 1
 *
 *
 *
 * WinRDI Controller  (The debug controller)
 *        |
 *        | WinRDI
 *        |
 * WinRDI Target and  (A thin layer providing WinRDI_Config implementation,
 * SORDI Controller    and conduits to SORDI_*)
 *        |
 *        | SORDI
 *        |
 * SORDI Target       (The debug target)
 *
 * Figure 2
 */

/*
 * How to use this file
 * ====================
 *
 * This file defines a type for each SORDI procedure:
 *
 * SORDI_*Proc   : Type definition for entry point
 *
 * This file also defines three things for each SORDI exported symbol:
 *
 * Symbol_*Proc   : Type definition for entry point
 * Symbol         : Prototype for entry point
 * Symbol_*String : String containing name of entry point
 *
 * At present, there is only one SORDI defined exported symbol: QuerySORDI
 *
 *
 * SORDI Target use
 * ================
 *
 * The SORDI target #include's "sordi.h", and then provides implementations
 * for SORDI_*.
 *
 *
 * SORDI Controller use
 * ====================
 *
 * The SORDI controller #include's "sordi.h", and reads the SORDI entry points
 * out of the target, in the following recommended host-specific ways:
 *
 *
 *    Win32
 *    -----
 *
 *       #include <windows.h>
 *
 *       HINSTANCE     *dllHandle;
 *       SORDI_*Proc   *entry;
 *
 *       soHandle = LoadLibrary(...);
 *       entry    = (SORDI_*Proc *)GetProcAddress(dllHandle, SORDI_*String);
 *
 *
 *    Solaris
 *    -------
 *       #include <dlcfn.h>
 *
 *       void        *soHandle;
 *       SORDI_*Proc *entry;
 *
 *       soHandle = dlopen(...);
 *       entry    = (SORDI_*Proc *)dlsym(soHandle, SORDI_*String);
 *
 *
 *    HPUX
 *    ----
 *       #include <dl.h>
 *
 *       shl_t        slHandle;
 *       SORDI_*Proc *entry;
 *
 *       slHandle = shl_load(...);
 *       shl_findsym(&slHandle, SORDI_*String, TYPE_PROCEDURE, (void *)&entry);
 *
 *
 *
 * SORDI Controllers that are also WinRDI Targets
 * ==============================================
 *
 * Aside from the WinRDI_Config call, a complete implementation which should
 * suit all WinRDI/SORDI conversion layers can be found in winsordi.c.  This
 * should be compiled as required by the host WinRDI environment.
 */

/************* Initialization, negotiation and validation ********************/

/*
 * Function: SORDI_Valid_RDI_DLL (required)
 *
 *  Purpose: Identify that this is an SORDI Debug Target
 *
 *  Returns: TRUE if this DLL exports SORDI, FALSE otherwise
 */
typedef bool SORDI_Valid_RDI_DLLProc(void);


/*
 * Function: SORDI_SetVersion (optional - multi-lingual targets only)
 *
 *  Purpose: SORDI Controller requests to use this version of RDI
 */
typedef void SORDI_SetVersionProc(int version);


/*
 * Function: SORDI_SetVersion (required)
 *
 *  Purpose: Target informs controller which RDI version it is using
 */
typedef int SORDI_GetVersionProc(void);


/*
 * Function: SORDI_Get_DLL_Description (required)
 *
 *  Purpose: Supply a static message describing the DLL. The string should be
 *           limited to 200 characters in length. This allows the Debug
 *           Controller to estimate the amount of window space required to
 *           display the string.
 */
typedef char *SORDI_Get_DLL_DescriptionProc(void);


/*
 * Function: SORDI_GetRDIProcVec (required)
 *
 *  Purpose: Return a pointer to the RDI_ProcVec exported by this DLL.
 */
typedef RDI_ProcVec *SORDI_GetRDIProcVecProc(void);

/*
 * Function: SORDI_Initialise (optional)
 *
 *  Purpose: To be called before RDI_<anything>
 *           Note: SORDI_Initialise differs from WinRDI_Intialise in that it
 *                 does not accept a windows handle, but it does supply an
 *                 error string, if required.  See winsordi.c for an example.
 *
 *  Returns: TRUE if successful, FALSE otherwise. 
 *           The SORDI controller should display errstring
 *           string in a message box if initialisation was unsuccessful
 */
typedef bool SORDI_InitialiseProc(char const **errstring,
                                  RDI_ConfigPointer config);


/************* Yielding Control **********************************************/


typedef struct SORDI_OpaqueYieldArgStr SORDI_YieldArg;
typedef void   SORDI_YieldProc(SORDI_YieldArg *);


/*
 * Function: SORDI_Register_Yield_Callback (required)
 *
 *  Purpose: Supply a callback to yield control to other processes
 *           during Target execution. The callback is passed as a
 *           function/argument closure.
 */
typedef void SORDI_Register_Yield_CallbackProc(SORDI_YieldProc *yieldcallback,
                                               SORDI_YieldArg *hyieldcallback);


/************* Process Indicators ********************************************/


typedef struct SORDI_OpaqueProgressArgStr SORDI_ProgressArg;
typedef struct {
    SORDI_ProgressArg *handle; /* handle passed to SetProgressFunc */
    int nRead;     /* number of bytes read from channel */
    int nWritten;  /* number of bytes written           */
} SORDI_ProgressInfo;

typedef void SORDI_ProgressFuncProc(SORDI_ProgressInfo *info);


/*
 * Function: SORDI_SetProgressFunc (optional)
 *
 *  Purpose: Register a callback for the Debug Target to call
 *           periodically during download. The callback function
 *           receives data (counters) indicating the progress made so
 *           far, and typically displays this in a user-interface
 *           component.
 */
typedef void SORDI_SetProgressFuncProc(SORDI_ProgressFuncProc *func,
                                       SORDI_ProgressArg *handle);


/*
 * Function: SORDI_ZeroProgressValues (optional)
 *
 *  Purpose: Zero the progress counters
 */
typedef void SORDI_ZeroProgressValuesProc(void);

/************* Info **********************************************************/

/*
 *        Function: SORDI_Info
 *         Purpose: A general purpose SORDI call, used to communicate issues
 *                  concerning configuration, initialisation and capabilities
 *
 *  Pre-conditions: Should be called immediately following SORDI_Initialise,
 *                  and before any call to SORDI_Config, or any RDI_* call.
 *
 *          Params:
 *                   In: config - toolconf
 *                       reason - Reason for calling
 *                       arg1 - (void *) argument: meaning defined by reason
 *                       arg2 - (void *) argument: meaning defined by reason
 *
 *    Return value:  As defined by reason, or RDIError_UnimplementedMessage
 *                   if reason is not understood/implemented.
 */
typedef unsigned SORDI_InfoProc(toolconf config, unsigned reason,
                                void *arg1, void *arg2);


/*
 *        Function: SORDI_Info#SORDIInfo_ControllerCapabilities
 *         Purpose: Allows the controller to indicate that it can understand
 *                  certain RDI features.
 *
 *          Params:
 *                   In: reason = SORDIInfo_ControllerCapabilities
 *                   In: *((uint32 *)arg1) = Bitfield describing
 *                                           controller capabilities
 *
 *    Return value: RDIError_NoError - OK
 *                  RDIError_IncompatibleRDILevels - The target can not be
 *                                                   debugged by a controller
 *                                                   with these capabilities
 *                                  
 */
#define SORDIInfo_ControllerCapabilities 0x1000

#define RDIControllerCapability_ETMModules 1 /* Controller understands ETM */
#define RDIControllerCapability_SelfDescribingModules 2
                                             /* Controller understands sdm */
#define RDIControllerCapability_Trace 4 /* Controller can use trace (ETM) */

/*
 *        Function: SORDI_Info#SORDIInfo_TargetCapabilities
 *         Purpose: Allows the target to advertise that, if configured with
 *                  the supplied toolconf, it will have a particular set of
 *                  RDI features.
 *
 *  Pre-conditions: Should be called immediately following a call to
 *                  SORDI_TargetCapabilities
 *
 *          Params:
 *                   In: toolconf
 *                  Out: *((uint32 *)arg1 Target capability bitfield
 *                  Out: *((uint32 *)arg2 Level of understanding bitfield
 *
 *                       arg1[n] arg2[n]
 *                         0       0     Feature [n] has no meaning to target
 *                         0       1     Target incapable of feature [n]
 *                         1       0     Target understands [n], but is unable
 *                                       to provide an answer
 *                         1       1     Target capable of feature [n]
 *
 *    Return value: RDIError_NoError
 *
 */
#define SORDIInfo_TargetCapabilities 0x1001

/*
 * HGB 28/03/2000 - Removed spurious #undefs, checked in by plg.  If there is
 * a genuine reason for these #undefs, will plg please get in touch.
 */
#define RDITargetCapability_CallDuringExecute 0x01
                                          /* Can accept calls during execute */
#define RDITargetCapability_RT       0x02 /* Target has RDI 1.5.1rt */
#define RDITargetCapability_TX       0x04 /* Target has RDI 1.5.1tx */
#define RDITargetCapability_TXRun    0x08 /* Target has RDI 1.5.1tx run */
#define RDITargetCapability_TXBuffer 0x10 /* Target has RDI 1.5.1tx buffer */
#define RDITargetCapability_Asynch   0x20 /* Target can use asynch RDI */
#define RDITargetCapability_Synch    0x40 /* Target can use synch RDI */


/************* Obtaining the interface ***************************************/

typedef struct SORDI_ProcVec
{
    uint32                             size;     /* = sizeof (SORDI_ProcVec) */
    uint32                             reserved; /* Should be zero */

    SORDI_Valid_RDI_DLLProc           *isvalid;
    SORDI_SetVersionProc              *setversion;
    SORDI_GetVersionProc              *getversion;
    SORDI_Get_DLL_DescriptionProc     *description;
    SORDI_GetRDIProcVecProc           *getrdi;

    SORDI_InitialiseProc              *init;

    SORDI_Register_Yield_CallbackProc *regyield;
    SORDI_SetProgressFuncProc         *setprog;
    SORDI_ZeroProgressValuesProc      *zeroprog;

    SORDI_InfoProc                    *info;

    /*  SORDI_DescribeConfig              *descconfig;*/

} SORDI_ProcVec;

/*
 * Function: QuerySORDI
 *    Notes: This function is exported as a shared symbol
 *
 *  Purpose: Retrieve the SORDI interface
 *
 *  Returns: SORDI_ProcVec
 */
typedef SORDI_ProcVec const *QuerySORDI_Proc(void);
extern                       QuerySORDI_Proc QuerySORDI;
#define                      QuerySORDI_String "QuerySORDI"

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

#endif /* !def sordi_h */

/* EOF sordi.h */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美无砖专区一中文字| 欧美日韩国产一二三| 亚洲欧美在线aaa| 欧美日韩国产另类不卡| 国产老妇另类xxxxx| 亚洲乱码中文字幕| www日韩大片| 欧美日韩国产在线观看| 成人一级视频在线观看| 美国欧美日韩国产在线播放| 一区二区三区四区亚洲| 国产日韩欧美精品电影三级在线| 3751色影院一区二区三区| 蜜臀av亚洲一区中文字幕| 欧美一级黄色录像| 色综合一区二区| 国产成人午夜精品影院观看视频 | 日本一区二区视频在线| 在线成人av影院| 91国模大尺度私拍在线视频| 色综合天天综合网天天看片| 成人性生交大合| 成人免费视频免费观看| 国产sm精品调教视频网站| 国产成人综合视频| 亚洲九九爱视频| 亚洲欧美日韩在线| 亚洲国产精品精华液ab| 日韩一区二区三区精品视频| 亚洲最新在线观看| 国产精品美女www爽爽爽| 欧美日韩在线观看一区二区| 色婷婷久久久综合中文字幕 | 粉嫩av亚洲一区二区图片| 日韩av一区二区在线影视| 久久影院视频免费| 欧美精品一区二区三| 欧美精品一区二区久久婷婷| 成人午夜电影久久影院| 成人网在线免费视频| 亚洲欧美乱综合| 亚洲国产美国国产综合一区二区 | 91麻豆精品久久久久蜜臀| 伦理电影国产精品| 亚洲欧洲性图库| 亚洲欧美一区二区视频| 一区二区三区视频在线看| 亚洲在线免费播放| 亚洲一区二区视频在线| 天天综合天天综合色| 国产精品久久久久天堂| 亚洲欧美区自拍先锋| 亚洲欧美欧美一区二区三区| 日韩免费视频一区| 国产欧美精品区一区二区三区| 在线综合+亚洲+欧美中文字幕| 欧美一区二区美女| 久久久不卡影院| 国产精品久久777777| 亚洲欧美福利一区二区| 亚洲国产中文字幕在线视频综合| 日韩精品免费专区| 精品一区二区三区免费毛片爱 | 在线免费观看视频一区| 91久久精品一区二区三| 777久久久精品| 中文一区在线播放| 日韩av一区二区在线影视| 国产精品资源站在线| 色综合久久久网| 久久久久国产精品免费免费搜索| 毛片av一区二区三区| 6080午夜不卡| 亚洲h动漫在线| 欧美视频一区二区在线观看| 亚洲精品高清视频在线观看| 成人免费视频播放| 国产欧美日韩精品在线| 国产精品99久久久| 日韩欧美专区在线| 日本成人在线视频网站| 日韩免费视频线观看| 蜜臀av性久久久久av蜜臀妖精| 日韩欧美视频在线| 久久国产综合精品| 久久夜色精品国产噜噜av| 久久99精品国产麻豆不卡| 精品sm捆绑视频| 国产精品资源网站| 国产精品成人网| 在线视频欧美精品| 午夜精品福利视频网站| 日韩欧美一级特黄在线播放| 午夜精品一区二区三区电影天堂 | 国产精品1区2区3区在线观看| 国产精品一区二区三区乱码| 丝袜亚洲另类丝袜在线| 日韩黄色免费电影| 国产精品亚洲综合一区在线观看| 欧美色视频在线观看| 亚洲欧洲性图库| 国产综合久久久久影院| 在线不卡免费av| 亚洲欧美偷拍卡通变态| 丁香天五香天堂综合| 26uuuu精品一区二区| 男人操女人的视频在线观看欧美| 欧美性videosxxxxx| 亚洲男人的天堂一区二区| 国产精品123区| 国产精品视频你懂的| 国产精品一级在线| 欧美本精品男人aⅴ天堂| 国产精品一二三四区| 中文字幕久久午夜不卡| 成人免费的视频| 亚洲欧洲日韩一区二区三区| 色综合久久中文字幕综合网| 日精品一区二区| 91精品国产综合久久久久久久久久| 亚洲精品综合在线| 国产精品18久久久久久vr| 国产精品久久久久一区| 99免费精品视频| 亚洲无线码一区二区三区| 欧美mv日韩mv亚洲| 成人天堂资源www在线| 亚洲一区二区三区四区在线| 欧美久久一区二区| 久久99国产精品麻豆| 国产精品国产三级国产有无不卡 | 综合婷婷亚洲小说| 欧美一区二区高清| 成人久久18免费网站麻豆| 偷拍与自拍一区| 亚洲视频一区二区在线观看| 精品久久一区二区三区| 91精品免费观看| 欧美三级电影网| 国产夫妻精品视频| 日韩av电影天堂| 久久影音资源网| 欧美优质美女网站| 国模娜娜一区二区三区| 亚洲午夜国产一区99re久久| 亚洲激情在线播放| 国产精品国模大尺度视频| 欧美一区二区三区四区在线观看 | 3751色影院一区二区三区| 欧美系列一区二区| caoporn国产一区二区| www..com久久爱| 91免费视频网址| 91久久线看在观草草青青| 91蜜桃免费观看视频| 一本色道久久综合精品竹菊| 欧美视频三区在线播放| 91精品国产一区二区三区香蕉| 欧美美女直播网站| 欧美大度的电影原声| 久久久久久久久久久久久女国产乱 | 91九色最新地址| 欧美私模裸体表演在线观看| 日韩精品一区二区三区swag| 懂色av中文一区二区三区| 在线影视一区二区三区| 亚洲风情在线资源站| 欧美xxxx在线观看| 久久国产日韩欧美精品| 精品国产伦一区二区三区观看体验| 性做久久久久久免费观看欧美| 欧美自拍偷拍一区| 日本美女视频一区二区| 国产精品久久影院| 欧美一区二区免费观在线| 99在线热播精品免费| 婷婷夜色潮精品综合在线| 久久综合中文字幕| www.日韩在线| 日韩精品91亚洲二区在线观看| 精品国内片67194| 日本二三区不卡| 国产成人精品午夜视频免费| 图片区小说区区亚洲影院| 中文字幕五月欧美| 欧美激情一区二区| 日韩欧美在线影院| 91老师片黄在线观看| 日韩精品视频网站| 亚洲精品综合在线| 久久精品亚洲精品国产欧美 | 九色综合狠狠综合久久| 亚洲图片一区二区| 日韩一区在线看| 亚洲视频一区在线观看| 久久久亚洲国产美女国产盗摄| 日韩一区二区三区免费看 | 国产精品亚洲一区二区三区妖精| 香蕉久久一区二区不卡无毒影院| **欧美大码日韩|