func: static nstrace_add_abstime(wtap_dumper *wdh, const struct wtap_pkthdr const guint8 *pd, int *err) guint64 nsg_creltime ; if ( wdh -> file_type_subtype == WTAP_FILE_TYPE_SUBTYPE_NETSCALER_1_0 )  if ( ( wdh -> file_type_subtype == WTAP_FILE_TYPE_SUBTYPE_NETSCALER_2_0 ) || ( wdh -> file_type_subtype == WTAP_FILE_TYPE_SUBTYPE_NETSCALER_3_0 ) || ( wdh -> file_type_subtype == WTAP_FILE_TYPE_SUBTYPE_NETSCALER_3_5 ) )  guint32 reltime ; guint64 abstime ; nspr_abstime_v20_t abs20 ; abs20 . abs_RecordType = NSPR_ABSTIME_V20; abs20 . abs_RecordSize = nspr_abstime_v20_s; memcpy ( & reltime , ( ( const nspr_pktracefull_v20_t * ) pd ) -> fp_RelTimeHr , sizeof reltime ); nsg_creltime = ns_hrtime2nsec ( reltime ); static guint64 ns_hrtime2nsec(guint32 tm) guint32 val = tm & NSPR_HRTIME_MASKTM ; switch ( tm & NSPR_HRTIME_MASKFMT )  return ( guint64 ) val * 1000000000 ; return ( guint64 ) val * 1000000 ; return ( guint64 ) val * 1000 ; return val ; return tm ; memset ( abs20 . abs_RelTime , 0 , sizeof abs20 . abs_RelTime ); abstime = GUINT32_TO_LE ( ( guint32 ) phdr -> ts . secs - ( guint32 ) ( nsg_creltime / 1000000000 ) ); memcpy ( abs20 . abs_RelTime , & abstime , sizeof abs20 . abs_RelTime ); if ( ! wtap_dump_file_write ( wdh , & abs20 , nspr_abstime_v20_s , err ) )  