3.3.3.2 Function Table

The following listing defines the plug-in implementation method function table:

Plug-in Implementation Method Function Table
typedef struct perf_mon_1_Vtbl {
       TM32I (_TMDLLENTRY *_ec_perf_mon_app) _((
                        struct perf_mon_1_Vtbl * ip,
                        FBFR32 **buf,
                        MONITORCTL *mon_ctl,
                        TM32U flags
       ));
       TM32I (_TMDLLENTRY *_ec_perf_mon_svc) _((
                        struct perf_mon_1_Vtbl * ip,
                        FBFR32 **buf,
                        MONITORCTL *mon_ctl,
                        TM32U flags
       ));
       TM32I (_TMDLLENTRY *_ec_perf_mon_sys) _((
                        struct perf_mon_1_Vtbl * ip,
                        FBFR32 **buf,
                        MONITORCTL *mon_ctl,
                        TM32U flags
       ));
       TM32I (_TMDLLENTRY *_ec_perf_mon_tran) _((
                        struct perf_mon_1_Vtbl * ip,
                        FBFR32 **buf,
                        MONITORCTL *mon_ctl,
                        TM32U flags
       ));
} perf_mon_1, *perf_mon_1_ptr;

Each method corresponds to a monitoring type. “_ec_perf_mon_app” is for call path monitoring, “_ec_perf_mon_svc” is for service monitoring, “_ec_perf_mon_sys” is for system server monitoring and “_ec_perf_mon_tran” is for transaction monitoring. Each method will be invoked at the corresponding monitoring type’s monitoring points. The method arguments are:

  • struct perf_mon_1_Vtbl *ip:the virtual table pointer e.

    Note:

    Not required for custom plug-ins.
  • FBFR32 **buf:the address of the metrics buffer in FML32 type.
  • MONITORCTL *mon_ctl: the control structure.
  • TM32U flags: the bit flag in a 32-byte, unsigned integer.