
UDI Services
3-2
Universal Debugger Interface Specification
Since the
_14
versions are supersets of the
_13
versions, it is expected that
DFEs and TIPs will want to use the new
_14
procedural interfaces. The old
_13
procedural interface is presented for the benefit of DFE and TIP
implementors who had used the 1.3 (or earlier) version of the UDI spec. For
backwards compatibility with existing 1.3 code, the sample procedural
interface implementation from AMD points the unqualified names at the
_13
versions. These unqualified names can be modified to point to the
_14
versions via a compile-time flag.
In general, throughout the rest of this specification, when we use the
unqualified names
UDISetBreakpoint
,
UDIQueryBreakpoint
, and
UDIConnect,
we mean either the
_13
or the
_14
version.
Note that the new
_14
procedural interface can be used by a DFE, even if the
TIP happens to be an older TIP. It is the responsibility of the IPC code that
maps the procedural interfaces to messages to detect the version of the TIP, to
map the new procedure to an old message, if possible, and if not, to return an
error.
Note also that a 1.4 TIP must define both the
_13
and
_14
versions of these
functions. This is because a 1.4 TIP may get connected to by a 1.3 DFE and
such a DFE can only send 1.3 messages. However, the sample IPC
implementation from AMD provides entry points for the
_13
versions which
simply maps the
_13
requests to the superset
_14
functions and the TIP writer
using this IPC implementation need only supply the
_14
functions.
Optional versus Required Services
The following list documents which of the UDI services are optional for the
TIP and which of the UDI DFE callback services are optional for the DFE. All
other services are required. Any TIP or DFE which does not support an
optional service should return
UDIErrorUnsupportedService
if the service is
invoked. Despite the optional nature of some services, TIP and DFE
implementors should strive to provide all of the documented services.
UDIGetErrorMsg
is required only if the TIP returns TIP–defined
(negative) error codes.
UDIGetTargetConfig
is not required.
UDICopy
is not required.