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

>