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

📄 adp.h

📁 这个是LINUX下的GDB调度工具的源码
💻 H
📖 第 1 页 / 共 5 页
字号:
/* The following flags describe the feature set of the processor: *//* Set if cpu supports little-endian model [Reference (4)] */#define ADP_CPU_LE              (1 << 0)/* Set if cpu supports big-endian model */#define ADP_CPU_BE              (1 << 1)/* Set if processor has a cache */#define ADP_CPU_CACHE           (1 << 2)/* Set if processor has a MMU */#define ADP_CPU_MMU             (1 << 3)/* All other flags are current undefined, and should be zero. *//* The following flags reflect current Target hardware status: *//* [Reference (5)] *//* 0 = no MMU or MMU off; 1 = MMU on */#define ADP_CPU_MMUOn           (1 << 29)/* 0 = no cache or cache off; 1 = cache on */#define ADP_CPU_CacheOn         (1 << 30)/* 0 = little-endian; 1 = big-endian */#define ADP_CPU_BigEndian       (1U << 31)/* All other flags are current undefined, and should be zero. */#ifdef LINK_RECOVERY#define ADP_TargetResetIndication       ADPREASON(CI_TBOOT, 1)/* * If parameter negotiation is enabled at the target, it configures itself * to various likely parameter settings and sends this message at each * configuration.  The message describes the default settings, and after * sending at each configuration the target sets itself to the defaults * it has just broadcast, to await either an ack on TBOOT or a request * or reset indication on HBOOT. * * If the host receives this message successfully, it should reset to the * indicated parameters and send a reply. * * Message arguments: *      word    status                   (always 0, makes body same as *                                        ADP_ParamNegotiate response) *      word    n-parameters *      n-parameters * { *              word    ADP_Parameter *              word    parameter-value *      } * * Reply: *      -       empty acknowledgement */#endif /* def LINK_RECOVERY */typedef enum ADP_Boot_Ack {    AB_NORMAL_ACK,              /* will comply, immediate booted message */    AB_LATE_ACK,                /* will comply, late startup */    AB_ERROR                    /* cannot comply */} ADP_Boot_Ack;/* If the host sets neither of these in the word sent on a Reset / Reboot * then it doesn;t care about the endianess of the target */#define ADP_BootHostFeature_LittleEnd 0x80000000#define ADP_BootHostFeature_BigEnd    0x40000000#define ADP_Reboot      ADPREASON(CI_HBOOT,2)/* This message is sent when the host wants the target system to be * completely reset, back to the boot monitor Angel. This is the * method of the host forcing a cold-reboot. * Note that an acknowledgement message will be sent immediately and * that this must be sent before the target can reset. * * The parameter to this function is a bitset of host supported * features. (in fact the same as ADP_Reset below.  This can be used by * the target system to avoid using debug channel bandwidth raising * messages that will be ignored by the host. * * Parameters: *      word    host supported features (see above) * * Reply: *      word    status, one of enum ADP_Boot_Ack above. * * Currently there are no such features defined, so the word indicating * host supported features should be set to 0. */#define ADP_Reset       ADPREASON(CI_HBOOT,3)/* This message is a request from the host, which should eventually * result in the "ADP_Booted" message being sent by the target. * Note that an acknowledgement message will be sent immediately and * that this must be sent before the target can reset. * This reset message is *ALWAYS* treated as a warm boot, with the target * preserving as much state as possible. * * The parameter to this function is a bitset of host supported * features. This can be used by the target system to avoid using * debug channel bandwitdth raising messages that will be ignored by * the host. * * Parameters: *      word    host supported features (see above) * * Reply: *      word    status, one of enum ADP_Boot_Ack above. * * Currently there are no such features defined, so the word indicating * host supported features should be set to 0. */#ifdef LINK_RECOVERY#define ADP_HostResetIndication         ADPREASON(CI_HBOOT, 4)/* * This is as for ADP_TargetResetIndication, but is sent by the host when * it first starts up in case the target is listening at a non-default * setting.  Having sent at various configurations, the host then listens * at the defaults it has just broadcast, to await either an ack on HBOOT * or a reset indication on TBOOT. * * For arguments and reply, see ADP_TargetResetIndication. */#endif /* def LINK_RECOVERY */#define ADP_ParamNegotiate              ADPREASON(CI_HBOOT, 5)/* * The host sends this messages to negotiate new parameters with the target. * For each parameter the host specifies a range of possibilities, starting * with the most favoured.  All possible combinations of parameters * must be valid. * * If the target can operate at a combination of the offered parameters, * it will reply with the parameters it is willing to use.  AFTER sending * the reply, the target switches to this combination.  On receiving the * reply, the host will switch to the new combination and send a LinkCheck * message (see below). * * If the target cannot operate at any combination of the offered parameters, * it will reply with an error status. * * Message arguments: *      word    n-parameter-blocks *      n-parameter-blocks * { *              word    ADP_Parameter *              word    n-options *              n-options * { word      parameter-value } *      } * * Reply: *      word    status *      if (status == RDIError_NoError) { *              word    n-parameters *              n-parameters * { *                      word    ADP_Parameter *                      word    chosen-value *              } *      } */#define ADP_LinkCheck                   ADPREASON(CI_HBOOT, 6)/* * This should be the first message that the host sends after a successful * parameter negotiation.  It is really just a 'ping'. * * Message arguments: *      -       empty message * * Reply: *      -       empty acknowledgement *//******************************************************************** * * CI_HADP messages * */#define ADP_HADPUnrecognised        ADPREASON(CI_HADP,0)/* This message is unusual in that it is normally sent in reply to * another message which is not understood.  This is an exception * to the normal protocol which says that a reply must have the * same base reason code as the original.  There is a single reply * parameter which is the reason code which was not understood. * * As well as being a reply this message can also be sent and will * return as if this message were unrecognised! * * Parameters: *      none * * Reply: *      word    reason code which was not recognised */#define ADP_Info                ADPREASON(CI_HADP,1)/* This is the new ADP information message. It is used to interrogate * the target debug agent.  It provides information on the processor, * as well as the state of the debug world. This allows the host to * configure itself to the capabilities of the target. * * We try not to use feature bitsets, since we could quickly run out * of known bits.  Thus when the feature set is extended, this can be * done in a couple of supported ways: * *  If an undivided reason code is to be added (no reason subcodes) *  then add a new ADP_Info code which responds with a flag indicating *  whether that feature is supported by the target.  If this has not *  even been implemented then the reply will be ADP_HADPUnrecognised * *  If a reason code which is subdivided into reason subcodes is *  added then reason subcode 0 should be set aside to indicate *  whether the functionality of that reason code is supported *  by the target.  If it is not even implemented then the reply will *  be ADP_Unrecognised. * * The first parameter to ADP_Info is a reason subcode, and subsequent * parameters are defined by that subcode * * Parameters: *      word         reason subcode *      other arguments as reason subcode determines. * * Reply: *      word         reason subcode *      other argument as reason subcode determines *//* ADP_Info reason subcodes: */#define ADP_Info_NOP                    ADPSUBREASON(CI_HADP,0)/* ADP_Info_NOP * ------------ * Summary: This message is used to check for ADP_Info being supported. * * Arguments: * Send:   () * Return: (word status) * * 'status' returns RDIError_NoError for success, non-zero indicates an error. * If an error is returned then there is no handler for the ADP_Info * message. The normal action will be to return an OK status. */#define ADP_Info_Target                 ADPSUBREASON(CI_HADP,1)/* ADP_Info_Target * --------------- * Summary: * This reason code is used to interrogate target system details. * * Arguments: * Send:   () * Return: (word status, word bitset, word model) * * 'status' is RDIError_NoError to indicate OK, or non-zero to indicate * some sort of error. * 'bitset' is described in more detail below, and is mostly compatible * with the old RDI/RDP system to avoid gratuitous changes to the debugger * toolbox. * 'model' is the target hardware ID word, as returned by the ADP_Booted * message. * * NOTE: The minimum and maximum protocol levels are no longer supported. * It is the Angel view that debugging complexity should be shifted to the * host if at all possible.  This means that the host debugger should * always try to configure itself to the features available in the target * debug agent.  This can be done by checking individual messages, rather * than by a blanket version number dictating the feature set. *//* 'bitset':- *//* Target speed in instructions per second = 10**(bits0..3). */#define ADP_Info_Target_LogSpeedMask         (0xF)/* Target is running on [0 = emulator / 1 = hardware] */#define ADP_Info_Target_HW                   (1 << 4)/* Bits 5..10 are currently undefined and should be zero. *//* Other bis are kept the same as the RDP in order to *//* eliminate the need to change the position of some bits *//* If set then the debug agent can be reloaded. */#define ADP_Info_Target_CanReloadAgent       (1 << 11)/* Can request AngelBufferSize information. */#define ADP_Info_Target_CanInquireBufferSize (1 << 12)/* Bit 13 is no longer required as it inquired whether * a special RDP Interrupt code was supported *//* Debug agent can perform profiling. */#define ADP_Info_Target_Profiling            (1 << 14)/* Debug agent can support Thumb code. */#define ADP_Info_Target_Thumb                (1 << 15)/* Bit 16 was the communications channel check. * This is always available on Angel systems. */#define ADP_Info_Points                 ADPSUBREASON(CI_HADP,2)/* ADP_Info_Points * --------------- * Summary: Returns a 32bit wide bitset of break- and watch-point * features supported by the target debug agent. * * Arguments: * Send:   () * Return: (word status, word breakinfo) * * 'status' returns RDIError_NoError on success or non-zero to indicate * some sort of error. * 'breakinfo' is a 32bit wide bitset described in detail below.  Note * that only bits 1..12 are used. *//* 'breakinfo':- *//* Can trap on address equality. */#define ADP_Info_Points_Comparison      (1 << 0)/* Can trap on address range. */#define ADP_Info_Points_Range           (1 << 1)/* Can trap on 8bit memory reads. */#define ADP_Info_Points_ReadByteWatch   (1 << 2)/* Can trap on 16bit memory reads. */#define ADP_Info_Points_ReadHalfWatch   (1 << 3)/* Can trap on 32bit memory reads. */#define ADP_Info_Points_ReadWordWatch   (1 << 4)/* Can trap on 8bit write accesses. */#define ADP_Info_Points_WriteByteWatch  (1 << 5)/* Can trap on 16bit write accesses. */#define ADP_Info_Points_WriteHalfWatch  (1 << 6)/* Can trap on 32bit write accesses. */#define ADP_Info_Points_WriteWordWatch  (1 << 7)/* Like range, but based on address bitmask<. */#define ADP_Info_Points_Mask            (1 << 8)/* Multi-threaded support only - thread specific breakpoints. */#define ADP_Info_Points_ThreadBreak     (1 << 9)/* Multi-threaded support only - thread specific watchpoints. */#define ADP_Info_Points_ThreadWatch     (1 << 10)/* Allows conditional breakpoints. */#define ADP_Info_Points_Conditionals    (1 << 11)/* Break- and watch-points can be interrogated */#define ADP_Info_Points_Status          (1 << 12)#define ADP_Info_Step                   ADPSUBREASON(CI_HADP,3)/* ADP_Info_Step * ------------- * Summary: Returns a 32bit wide bitmask of the single-stepping * capabilities of the target debug agent. * * Arguments: * Send:   () * Return: (word status, word stepinfo) * * 'status' returns RDIError_NoError on success, or non-zero to indicate * some kind of error.

⌨️ 快捷键说明

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