⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rdi_armul.h

📁 realview22.rar
💻 H
📖 第 1 页 / 共 2 页
字号:
#define PUEvent                  0x20000
#define PUEventSel (1 << (PUEvent >> 16))
#define PUEvent_Full             0x20001 /* PU fills causing Idle cycles */
#define PUEvent_Mispredict       0x20002 /* PU incorrectly predicts a branch */
#define PUEvent_Empty            0x20003 /* PU empties causing a stall */
/* Events form ARM8, ARM9 */
#define PipeEvent_Dependency     0x20004

/* Debug events */
#define DebugEvent               0x40000
#define DebugEventSel (1 << (DebugEvent >> 16))
#define DebugEvent_InToDebug     0x40001
#define DebugEvent_OutOfDebug    0x40002
#define DebugEvent_DebuggerChangedPC 0x40003
#define DebugEvent_InToSemihost  0x40004
#define DebugEvent_OutOfSemihost 0x40005
#define DebugEvent_TrickboxRead  0x40006
#define DebugEvent_TrickboxWrite 0x40007
#define DebugEvent_RunCodeSequence 0x40008
#define DebugEvent_EndCodeSequence 0x40009
/* These are very rare events, so we don't want to 
 * mix them with CoreEvents. */
#define ConfigEvent              0x50000
#define ConfigEventSel (1 << (ConfigEvent >> 16))
#define ConfigEvent_AllLoaded    0x50001
/* Note that ConfigEvent_Reset is sent to all listeners in a
 * poorly-defined order. Any model which does something to other models
 * (e.g. pagetables) should register an ARMulCallbackID_PrioritisedReset.
 */
#define ConfigEvent_Reset        0x50002
#define ConfigEvent_VectorsLoaded 0x50003 /* from semihost to FPE. */
#ifdef NotYet
# define ConfigEvent_ThingLoaded 0x50004  /* data1 tells which thing. */
#endif


#define ConfigEvent_EndiannessChanged 0x50005

/* This means the plugins are about to be unloaded (lots of closeagent()
 * calls are about to happen. It can be used by memory-models which
 * want to save their contents before the base-memory-model is removed. */
#define ConfigEvent_AboutToClose    0x50006

#define ConfigEvent_RouteLinks   0x50007  /* data1:0=>make, data1:1=>check. */
#define ConfigEvent_HighVecChanged 0x50008

/* Trace events */
#define TraceEvent               0x60000
#define TraceEventSel (1 << (TraceEvent >> 16))
#define TraceEvent_TraceLine     0x60001

/* Signals, in the same order as RDIPropID_ARMSignal_RESET ...
 * (see rdi_priv.h)
 * NB These are signals into the core.
 */
#define SignalEvent              0x7000
#define SignalEventSel (1 << (SignalEvent >> 16))
#define SignalEvent_RESET        0x7001
#define SignalEvent_UNDEF        0x7002
#define SignalEvent_SWI          0x7003 /
#define SignalEvent_PABORT       0x7004
#define SignalEvent_DABORT       0x7005
#define SignalEvent_SE           0x7006
#define SignalEvent_IRQ          0x7007
#define SignalEvent_FIQ          0x7008
#define SignalEvent_BreakPt      0x7009
#define SignalEvent_WatchPt      0x700A
#define SignalEvent_Stop         0x700B
/* There may be more, later. */

/* Sent by cycle-callable core models. */
#define CoreEvent_Dependency     PipeEvent_Dependency



/* User defined events */
#define UserEvent_Base          0x100000
#define UserEventSel (1 << (UserEvent_Base >> 16))
#define UserEvent_Top           0x10ffff
/* EventSel's are restricted to 32 bits */
#define SelectableEvent_Max     0x1fFFFF

/*
 *        Function: RDIInfo_RegisterRDIInfoExtension
 *         Purpose: Register an "unknown" RDI info handler.
 *
 *          Handle: Module or Agent.
 *
 *          Params:
 *                   In: (RDI_InfoProc *)arg1 - the infoproc.
 *                       (void*)arg2          - the handle.
 *
 *         Returns: RDIError_NoError: Callback registered
 *                  RDIError_UnimplementedMessage: Callback not registered
 */


/*
 *        Function: RDIInfo_AllLoaded
 *         Purpose: Announce that all models have been instantiated,
 *                  and all links have been created,
 *                  and memory can be written by PageTables or Demon.
 *          Handle: Agent or Module.
 *          Params: none.
 *         Returns: RDIError_UnableToInitialise: Fatal error.
 *                  anything else: Ok.
 * NB Each SORDI target contains its own Agent, and it is the responsiblity
 *  of that agent to pass this call on to all sub-agents it has loaded.
 *  An Agent may pass the call on to the modules it created, but for
 *  simple peripherals it services the call itself.
 *  This call is sent as the last action of ARMulator's OpenAgent.
 */
#define RDIInfo_AllLoaded               (ARMulInfo_Base+7) /*0x0767*/

#define RDIInfo_InstallRDIInfoExtension (ARMulInfo_Base+8) /*0x0768*/
#define RDIInfo_RemoveRDIInfoExtension (ARMulInfo_Base+9)  /*0x0769*/
#define RDIInfo_AddARMulPropertyDesc  (ARMulInfo_Base+10)  /*0x076A*/

/*
 * Sent by the top-level agent to all the plugin agents it owns just before
 *   CloseAgent is called on them all.
 * (in armiss/armrdi.c, and armul810/multirdi.c - should it be there?).
 *   Allows them to shut down cleanly before all links become invalid.
 * I don't want plugin-agents to have to register to get this.
 */
#define RDIInfo_AboutToClose  (ARMulInfo_Base+11)  /*0x076B*/

/*
 *        Function: RDIInfo_QueryMethod
 *         Purpose: asks the target module or agent for an ARMul_Method
 *                  (see armulif/armul_method.h).
 *
 *          Handle: Module or Agent.
 *
 *          Params:
 *                In:   (char const *)arg1 - "name:type" of requested method.
 *               Out: *(ARMul_Method*)arg2 - Method.
 *
 *         Returns: RDIError_NoError: *arg2 filled in.
 *                  RDIError_UnimplementedMessage: requested method not found.
 */
#define RDIInfo_QueryMethod (ARMulInfo_Base+12)    /*0x076C*/

/* 
 *        Function: RDIInfo_RouteLinks
 * Called twice before 'AllLoaded' but after all instances created.
 * *arg1 is
 * 0 : Create links.
 * 1 : Check all expected links are created.
 */
#define RDIInfo_RouteLinks (ARMulInfo_Base+13)  /*0x076D*/


/* 
 *        Function: RDIInfo_DebuggerChanged
 *          Handle: Module or Agent.
 *
 *          Params:
 *                   In: *(ARMWord *)arg1 - what changed - see enum below.
 *                        (void*)arg2     - pointer to new data.
 *
 *         Returns: RDIError_UnimplementedMessage ( we want to pass this
 *                  everywhere we can ).
 *
 * So far, this is only called when the debugger gives the core a different
 *  RDI_HostosInterface during RDI_Open from the one it gave us during
 *  OpenAgent. (armsd doesn't do that, but AXD does).
 */
#define RDIInfo_DebuggerChanged (ARMulInfo_Base+14)  /*0x076E*/
enum DebuggerChanged_Enum {
        DebuggerChanged_Hostif = 0,
        DebuggerChanged_Config,
        DebuggerChanged_DebuggerEndianness
};

/* 
 *        Function: RDIInfo_SimRdiRegistration
 *          Handle: Agent/Module
 *
 *          Params:
 *              In:  *(ARMword*)arg1                  - == SIMRDI_REGISTRATION_SIGNATURE
 *                   (SimRdiRegistrationProcVec*)arg2 - pointer to registration proc vec
 *
 *         Returns: RDIError_UnimplementedMessage ( we want to pass this
 *                  everywhere we can ).
 *
 *  This is broadcast to all modules, the proc vec passed in arg2
 *  should be used to register what capabilities it can.  See the
 *  header file armulif/simrdi_registration.h
 */
#define RDIInfo_SimRdiRegistration (ARMulInfo_Base+15)  /*0x076F*/

/* #define RDIInfo_ */
/* Extra index words are cpnum, coproif, cpreg. */
/* #ARMulProp_CoproRegisterAccess (RDIPropID_ARMulProp_Base+2) */



 


#if defined(__cplusplus) && !defined(CLX_CPP_LINKAGE)
}
#endif

#endif /* def rdi_armul__h */
/* EOF rdi_armul.h */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -