Corrigendum: U062
Date: December 2004
Document: C041
Application Response Measurement (ARM)
Issue 4.0, Version 2 - C Binding
Code: 6138 12/04 C041/U062
----------------------------------------------------------------------------
Change Number: U062/1
Title: Linking to an ARM Implementation
Rationale: This change addresses an ambiguity discovered since
the approval of ARM, Issue 4.0, Version 1 - C Binding
(2003).
Change: On Page 6, Section 1.7, Linking to an ARM Implementation,
insert the following paragraph prior to the current
last paragraph on the page:
"There are multiple conventions for linking to a
dynamically loaded library on Microsoft Windows platforms.
These conventions affect whether function names are
decorated and how data is pushed onto and popped off
the stack. To avoid incompatibilities between
applications loading and calling ARM and ARM libraries,
a definition file (libarm4.def) is provided (see Page 106)
that spells out the exact exported names. The definition
file should not use ordinal numbers to guard against
dependencies on the order of the names in the .def file."
Insert a new chapter after Page 105 " Symbol
Definition File for Linking on Microsoft Windows Platforms":
"As described in Section 1.7, Linking to an ARM
Implementation, a symbol definition file is used to
explicitly specify the function names that
applications should use when loading and linking to an ARM
implementation on Microsoft Windows platforms. The text
of the file follows:
;
; Module Name:
;
; libarm4.def
;
; Abstract:
;
; List of exports for the ARM 4.0 C Binding - Issue 1
;
DESCRIPTION 'libarm4.dll'
LIBRARY libarm4
VERSION 1.0
EXPORTS
arm_bind_thread
arm_block_transaction
arm_destroy_application
arm_discard_transaction
arm_generate_correlator
arm_get_arrival_time
arm_get_correlator_flags
arm_get_correlator_length
arm_get_error_message
arm_is_charset_supported
arm_register_application
arm_register_metric
arm_register_transaction
arm_report_transaction
arm_start_application
arm_start_transaction
arm_stop_application
arm_stop_transaction
arm_unbind_thread
arm_unblock_transaction
arm_update_transaction
----------------------------------------------------------------------------
Change Number: U062/2
Title: Metric Bindings
Rationale: This change addresses an ambiguity discovered since
the approval of ARM, Issue 4.0, Version 1 - C Binding
(2003).
Change: On Page 75, change the Format section of the
Metric Values Sub-Buffer from:
"Slot number: A single-byte slot number.
Valid values are 0 to 6. The slot number
must be the same as the corresponding entry
in the metric bindings sub-buffer. Each slot
number should be used at most once; if a slot
number is reused, the first entry is used and
all others are ignored."
to:
"Slot number: A single-byte slot number.
Valid values are 0 to 6. This slot number
is used as a key to associate entries in the
Metric Values Sub-Buffer with entries in the
Metric Bindings Sub-Buffer. Each slot number
should be used at most once; if a slot number
is repeated, the entry with the lowest array
index is the only one used; all others are ignored."
On Page 89, change the second paragraph of the Metric
Bindings Sub-Buffer Description from:
"Each metric is assigned to an array slot numbered
0 to 6 (they were numbered 1 to 7 in ARM 2.0)."
to:
"Each metric is assigned a slot number from 0 to 6
(they were numbered 1 to 7 in ARM 2.0). This slot
number is used as a key to associate entries in the
Metric Values Sub-Buffer with entries in the
Metric Bindings Sub-Buffer."
On Page 90, change the Format section of the Metric
Bindings Sub-Buffer from:
"Slot number: A byte slot number. Valid values are
0 to 6 (replacing the ARM 2.0 numbering standard).
If a slot number is repeated, the first time it appears
is the only one processed; all others are ignored."
to:
"Slot number: A byte slot number. This slot number is
used as a key to associate entries in the Metric Values
Sub-Buffer with entries in the Metric Bindings Sub-Buffer.
Valid values are 0 to 6. If a slot number is repeated,
the entry with the lowest array index is the only one
used; all others are ignored."