arm41.h
Go to the documentation of this file.
00001 /* ------------------------------------------------------------------------- */ 00002 /* */ 00003 /* Copyright (c) 2007 The Open Group */ 00004 /* */ 00005 /* Permission is hereby granted, free of charge, to any person obtaining a */ 00006 /* copy of this software (the "Software"), to deal in the Software without */ 00007 /* restriction, including without limitation the rights to use, copy, */ 00008 /* modify, merge, publish, distribute, sublicense, and/or sell copies of */ 00009 /* the Software, and to permit persons to whom the Software is furnished */ 00010 /* to do so, subject to the following conditions: */ 00011 /* */ 00012 /* The above copyright notice and this permission notice shall be included */ 00013 /* in all copies or substntial portions of the Software. */ 00014 /* */ 00015 /* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS */ 00016 /* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ 00017 /* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */ 00018 /* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ 00019 /* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT */ 00020 /* OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR */ 00021 /* THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ 00022 /* */ 00023 /* ------------------------------------------------------------------------- */ 00024 /* */ 00025 /* ------------------------------------------------------------------------- */ 00026 /* */ 00027 /* This file corresponds to following documentation: */ 00028 /* */ 00029 /* Technical Standard */ 00030 /* Application Response Measurement (ARM) */ 00031 /* Issue 4.1 Version 1 - C Binding */ 00032 /* */ 00033 /* ------------------------------------------------------------------------- */ 00034 00047 #ifndef ARM41_H_INCLUDED 00048 #define ARM41_H_INCLUDED 00049 00050 #ifndef ARM4_H_INCLUDED 00051 #include "arm4.h" 00052 #endif /* ARM4_H_INCLUDED */ 00053 00054 #ifdef __cplusplus 00055 extern "C" { 00056 #endif /* __cplusplus */ 00057 00060 /* ------------------------- correlator flags ----------------------------- */ 00061 00066 #define ARM_CORR_FLAGNUM_ASYNCH 3 00067 00071 #define ARM_CORR_FLAGNUM_INDEPENDENT 4 00072 00091 #define ARM_SET_CORRELATOR_FLAG(corr, flag_num, boolean_value) \ 00092 (corr)->opaque[3] = (boolean_value) \ 00093 ? ((corr)->opaque[3] | ((arm_uint8_t)0x80 >> (arm_uint8_t)((flag_num)-1))) \ 00094 : ((corr)->opaque[3] & ~((arm_uint8_t)0x80 >> (arm_uint8_t)((flag_num)-1))) 00095 00096 /* ---------------------- message event constants ------------------------- */ 00097 00101 #define ARM_MESSAGE_SENT_EVENT_MAX_COUNT 32 00102 00105 #define ARM_MESSAGE_RCVD_EVENT_MAX_COUNT 32 00106 00107 /* ------------------ diagnostic properties constants --------------------- */ 00108 00112 #define ARM_DIAG_PROPERTY_MAX_CHARS 2048 00113 00117 #define ARM_DIAG_PROPERTIES_MAX_CHARS 4096 00118 00119 /* ---------------------- miscellaneous constants ------------------------- */ 00120 00126 #define ARM_EVENT_DESCRIPTION_MAX_CHARS 128 00127 00128 /* ------------------------ block cause constants ------------------------- */ 00129 00134 #define ARM_BLOCK_CAUSE_SYNCHRONOUS_EVENT 1 00135 00143 #define ARM_BLOCK_CAUSE_ASYNCHRONOUS_EVENT 2 00144 00145 /* -------------- application/transaction control constants --------------- */ 00146 00151 #define ARM41_APP_CONTROL_COUNT 12 00152 00157 #define ARM41_TRAN_ID_CONTROL_COUNT 9 00158 00162 #define ARM41_TRAN_INSTANCE_CONTROL_COUNT 10 00163 00168 #define ARM_COLLECTION_DEPTH_NONE 0 00169 00174 #define ARM_COLLECTION_DEPTH_PROCESS 1 00175 00189 #define ARM_COLLECTION_DEPTH_CONTAINER 2 00190 00195 #define ARM_COLLECTION_DEPTH_MAX 3 00196 00199 /* ------------------------ known sub-buffer formats ------------------------ */ 00200 00205 #define ARM_SUBBUFFER_BLOCK_CAUSE 8 00206 00211 #define ARM_SUBBUFFER_MESSAGE_RCVD_EVENT 9 00212 00217 #define ARM_SUBBUFFER_MESSAGE_SENT_EVENT 10 00218 00223 #define ARM_SUBBUFFER_FORMATTED_ARRIVAL_TIME_USECJAN1970 11 00224 00229 #define ARM_SUBBUFFER_FORMATTED_ARRIVAL_TIME_STRINGS 12 00230 00234 #define ARM_SUBBUFFER_PREP_TIME 13 00235 00240 #define ARM_SUBBUFFER_PREP_STATS 14 00241 00246 #define ARM_SUBBUFFER_DIAG_PROPERTIES 15 00247 00252 #define ARM_SUBBUFFER_APP_CONTROL 108 00253 00258 #define ARM_SUBBUFFER_TRAN_ID_CONTROL 109 00259 00264 #define ARM_SUBBUFFER_TRAN_INSTANCE_CONTROL 110 00265 00266 00267 /* -------------------------------------------------------------------------- */ 00268 /* ------------------------ basic typedef section --------------------------- */ 00269 /* -------------------------------------------------------------------------- */ 00270 00271 typedef arm_int32_t arm_block_cause_t; 00273 /* -------------------------------------------------------------------------- */ 00274 /* --------------------- sub-buffer typedefs section ------------------------ */ 00275 /* -------------------------------------------------------------------------- */ 00276 00305 typedef struct arm_subbuffer_block_cause 00306 { 00310 arm_subbuffer_t header; 00321 arm_block_cause_t cause; 00334 arm_int32_t extended_cause; 00341 const arm_char_t *description; 00342 } arm_subbuffer_block_cause_t; 00343 00344 /* ------------------- message received event sub-buffer -------------------- */ 00345 00350 typedef struct arm_message_rcvd_event 00351 { 00402 const arm_correlator_t *received_correlator; 00403 00410 const arm_char_t *description; 00411 } arm_message_rcvd_event_t; 00412 00438 typedef struct arm_subbuffer_message_rcvd_event 00439 { 00443 arm_subbuffer_t header; 00454 arm_boolean_t end_of_flow; 00461 arm_int32_t event_count; 00465 const arm_message_rcvd_event_t *message_event_array; 00466 } arm_subbuffer_message_rcvd_event_t; 00467 00468 /* ------------------- message sent event sub-buffer ---------------------- */ 00469 00474 typedef struct arm_message_sent_event 00475 { 00483 arm_int32_t sent_message_count; 00490 const arm_char_t *description; 00491 } arm_message_sent_event_t; 00492 00519 typedef struct arm_subbuffer_message_sent_event 00520 { 00524 arm_subbuffer_t header; 00533 arm_boolean_t end_of_flow; 00539 arm_int32_t event_count; 00543 const arm_message_sent_event_t *message_event_array; 00544 } arm_subbuffer_message_sent_event_t; 00545 00546 /* ------------- formatted arrival time usecJan1970 sub-buffer ------------ */ 00547 00558 typedef struct arm_subbuffer_formatted_arrival_time_usecJan1970 00559 { 00564 arm_subbuffer_t header; 00570 arm_int64_t usecJan1970; 00571 } arm_subbuffer_formatted_arrival_time_usecJan1970_t; 00572 00573 /* -------------- formatted arrival time strings sub-buffer --------------- */ 00584 typedef struct arm_subbuffer_formatted_arrival_time_strings 00585 { 00590 arm_subbuffer_t header; 00596 const arm_char_t *yyyymmdd; 00603 const arm_char_t *hhmmssth; 00611 const arm_char_t *muuu; 00612 } arm_subbuffer_formatted_arrival_time_strings_t; 00613 00614 /* -------------------- preparation time sub-buffer ----------------------- */ 00615 00626 typedef struct arm_subbuffer_prep_time 00627 { 00631 arm_subbuffer_t header; 00636 arm_int64_t prep_time_nanosec; 00637 } arm_subbuffer_prep_time_t; 00638 00639 /* ------------------ preparation statistics sub-buffer ------------------- */ 00640 00654 typedef struct arm_subbuffer_prep_stats 00655 { 00659 arm_subbuffer_t header; 00664 arm_int64_t prep_time_mean_nanosec; 00671 arm_int64_t prep_time_std_dev_nanosec; 00678 arm_int32_t prep_time_mean_count; 00685 arm_int32_t prep_time_mean_interval_millisec; 00686 } arm_subbuffer_prep_stats_t; 00687 00688 /* ------------------ diagnostic properties sub-buffer -------------------- */ 00689 00718 typedef struct arm_subbuffer_diag_properties 00719 { 00723 arm_subbuffer_t header; 00724 00728 arm_int32_t tran_property_count; 00740 const arm_property_t *tran_property_array; 00741 } arm_subbuffer_diag_properties_t; 00742 00743 /* ------------------- application control sub-buffer --------------------- */ 00744 00783 typedef struct arm_subbuffer_app_control 00784 { 00788 arm_subbuffer_t header; 00789 00797 arm_int32_t control_count_app; 00806 arm_int32_t control_count_arm; 00821 arm_boolean_t app_control_used; 00833 arm_boolean_t tran_id_control_used; 00845 arm_boolean_t tran_instance_control_used; 00868 arm_int32_t collection_depth; 00877 arm_boolean_t show_private; 00886 arm_boolean_t show_secure; 00901 arm_boolean_t use_bind_thread; 00917 arm_boolean_t use_block; 00927 arm_boolean_t use_diagnostic; 00938 arm_boolean_t use_message_event; 00946 arm_boolean_t use_metric; 00953 arm_boolean_t use_user; 00954 } arm_subbuffer_app_control_t; 00955 00956 /* ----------------- transaction ID control sub-buffer -------------------- */ 00957 00995 typedef struct arm_subbuffer_tran_id_control 00996 { 01000 arm_subbuffer_t header; 01001 01009 arm_int32_t control_count_app; 01017 arm_int32_t control_count_arm; 01031 arm_boolean_t control_used; 01037 const arm_id_t *tran_id; 01052 arm_boolean_t use_bind_thread; 01068 arm_boolean_t use_block; 01078 arm_boolean_t use_diagnostic; 01089 arm_boolean_t use_message_event; 01097 arm_boolean_t use_metric; 01104 arm_boolean_t use_user; 01105 } arm_subbuffer_tran_id_control_t; 01106 01107 /* --------------- transaction instance control sub-buffer ---------------- */ 01108 01147 typedef struct arm_subbuffer_tran_instance_control 01148 { 01152 arm_subbuffer_t header; 01153 01161 arm_int32_t control_count_app; 01169 arm_int32_t control_count_arm; 01183 arm_boolean_t control_used; 01188 const arm_id_t *tran_id; 01194 const arm_correlator_t *parent_correlator; 01217 arm_int32_t collection_depth; 01232 arm_boolean_t use_bind_thread; 01248 arm_boolean_t use_block; 01258 arm_boolean_t use_diagnostic; 01269 arm_boolean_t use_message_event; 01277 arm_boolean_t use_metric; 01284 arm_boolean_t use_user; 01285 } arm_subbuffer_tran_instance_control_t; 01286 01287 #ifdef __cplusplus 01288 } 01289 #endif /* __cplusplus */ 01290 01291 #endif /* ARM41_H_INCLUDED */ 01292
Documentation generated on Thu May 24 2018 22:24:14. © 2018 by MyARM GmbH