module ti.sysbios.family.windows.TimestampProvider

TimestampProvider implementation for Windows

This module provides an implementation on Windows for the xdc.runtime.ITimestampProvider interface. [ more ... ]
C synopsis target-domain sourced in ti/sysbios/family/windows/TimestampProvider.xdc
DETAILS
This module provides an implementation on Windows for the xdc.runtime.ITimestampProvider interface.
On Windows, the timestamp counter value is computed from the accumulated CPU user time spent running the SYS/BIOS application. This emulates a hardware timestamp counter by eliminating all the CPU time spent running the Windows kernel and other Windows applications.
It is important to understand that although Windows uses a real-time counter to accumulate the user time of a process, the accumulated total is updated only once every 10 milliseconds. Therefore, it is quite likely that two consecutive calls to TimestampProvider_get32() or TimestampProvider_get64() or will return the same value. In fact, the returned value will only change the next time Windows updates the accumulated user time.

Calling Context

Function Hwi Swi Task Main Startup
get32 Y Y Y Y N
get64 Y Y Y Y N
getFreq Y Y Y Y N
Definitions:
  • Hwi: API is callable from a Hwi thread.
  • Swi: API is callable from a Swi thread.
  • Task: API is callable from a Task thread.
  • Main: API is callable during any of these phases:
    • In your module startup after this module is started (e.g. TimestampProvider_Module_startupDone() returns TRUE).
    • During xdc.runtime.Startup.lastFxns.
    • During main().
    • During BIOS.startupFxns.
  • Startup: API is callable during any of these phases:
    • During xdc.runtime.Startup.firstFxns.
    • In your module startup before this module is started (e.g. TimestampProvider_Module_startupDone() returns FALSE).
 
config TimestampProvider_E_processTimes  // module-wide

Error: GetProcessTimes failed

C synopsis target-domain
extern const Error_Id TimestampProvider_E_processTimes;
 
DETAILS
A call to GetProcessTimes in the Win32 API has failed.
RAISED_IN
 
TimestampProvider_get32()  // module-wide

Return a 32-bit timestamp

C synopsis target-domain
Bits32 TimestampProvider_get32();
 
DETAILS
See the details section above for implementation details.
RETURNS
Returns a 32-bit timestamp value. Use getFreq to convert this value into units of real time.
SEE
 
TimestampProvider_get64()  // module-wide

Return a 64-bit timestamp

C synopsis target-domain
Void TimestampProvider_get64(Types_Timestamp64 *result);
 
ARGUMENTS
result — pointer to 64-bit result
This parameter is a pointer to a structure representing a 64-bit wide timestamp value where the current timestamp is written.
If the underlying hardware does not support 64-bit resolution, the hi field of result is always set to 0; see xdc.runtime.Types.Timestamp64. So, it is possible for the lo field to wrap around without any change to the hi field. Use getFreq to convert this value into units of real time.
DETAILS
See the details section above for implementation details.
SEE
 
TimestampProvider_getFreq()  // module-wide

Return the timestamp counter tick rate

C synopsis target-domain
Void TimestampProvider_getFreq(Types_FreqHz *freq);
 
ARGUMENTS
freq — pointer to a 64-bit result
This parameter is a pointer to a structure representing a 64-bit wide frequency value where the timer's frequency (in Hz) is written; see xdc.runtime.Types.FreqHz. This function provides a way of converting timestamp values into units of real time.
DETAILS
This function returns the rate, specified in hertz, at which the timestamp counter ticks. In other words, it is how many ticks per second the timestamp counter will tick.
SEE
Module-Wide Built-Ins

C synopsis target-domain
Types_ModuleId TimestampProvider_Module_id();
// Get this module's unique id
 
Bool TimestampProvider_Module_startupDone();
// Test if this module has completed startup
 
IHeap_Handle TimestampProvider_Module_heap();
// The heap from which this module allocates memory
 
Bool TimestampProvider_Module_hasMask();
// Test whether this module has a diagnostics mask
 
Bits16 TimestampProvider_Module_getMask();
// Returns the diagnostics mask for this module
 
Void TimestampProvider_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
 
XDCscript usage meta-domain sourced in ti/sysbios/family/windows/TimestampProvider.xdc
var TimestampProvider = xdc.useModule('ti.sysbios.family.windows.TimestampProvider');
module-wide config parameters
        msg: "GetProcessTimes failed: %d"
    };
 
 
 
config TimestampProvider.E_processTimes  // module-wide

Error: GetProcessTimes failed

XDCscript usage meta-domain
TimestampProvider.E_processTimes = Error.Desc {
    msg: "GetProcessTimes failed: %d"
};
 
DETAILS
A call to GetProcessTimes in the Win32 API has failed.
RAISED_IN
C SYNOPSIS
 
metaonly config TimestampProvider.common$  // module-wide

Common module configuration parameters

XDCscript usage meta-domain
TimestampProvider.common$ = Types.Common$ undefined;
 
DETAILS
All modules have this configuration parameter. Its name contains the '$' character to ensure it does not conflict with configuration parameters declared by the module. This allows new configuration parameters to be added in the future without any chance of breaking existing modules.
generated on Thu, 01 Mar 2012 16:57:53 GMT