GLAST / LAT > DAQ and FSW > FSW > Doxygen Index> PBS / V2-12-1 > pbs / rhel5-64


Interface   Data Structures   File List   Data Fields   Globals  

PTS.h.xx-x86-gcc File Reference

X86 Implementation of the TMR facility. More...


Defines

#define PTS_GETS()
 Macro to get the short range of the processor time.
#define PTS_GETX()
 Macro to get the full extended range of the processor time.
#define PTS_NSECS_TO_PTUS(_nsecs)   PTS_nsecs_to_ptus(_nsecs)
 Converts a short range nanoseconds to a processor time.
#define PTS_PTUS_TO_NSECS(_ptus)   PTS_ptus_to_nsecs (_ptus)
 Converts a short range processor time to nanoseconds.
#define PTS_DELTAS(_beg, _end)   ((_end) - (_beg))
 Subtracts two short range processor times.
#define PTS_DELTAS_IN_NSECS(_beg, _end)
 Subtracts two short range processor times and converts the difference to nanoseconds.
#define PTS_NSECX_TO_PTUX(_nsecx)   PTS_nsecx_to_ptux(_nsecx)
 Converts an extended range nanoseconds to a processor time.
#define PTS_PTUX_TO_NSECX(_ptux)   PTS_ptux_to_nsecx (_ptux)
 Converts a extended range processor time to nanocseconds.
#define PTS_DELTAX(_beg, _end)   ((_end) - (_beg))
 Subtracts two extended range processor times.
#define PTS_DELTAX_IN_NSECX(_beg, _end)   PTS_PTUX_TO_NSECX(PTS_DELTAX(_beg, _end))
 Subtracts two extended range processor times and converts the difference to nanoseconds (64 bit result).

Typedefs

typedef signed long long PTS_timex
 The typedef for declaring extended range processor time variables.
typedef unsigned int PTS_times
 The typedef for declaring short range processor time variables.


Detailed Description

X86 Implementation of the TMR facility.

Author:
JJRussell - russell@slac.stanford.edu

    CVS $Id: PTS.h.xx-x86-gcc,v 1.5 2011/03/24 23:05:45 apw Exp $

The implementation is based on the on-board processor clock.


Define Documentation

#define PTS_DELTAS ( _beg,
_end   )     ((_end) - (_beg))

Subtracts two short range processor times.

Parameters:
_beg The beginning time
_end The ending time
Returns:
The difference in processor time units

#define PTS_DELTAS_IN_NSECS ( _beg,
_end   ) 

Value:

Subtracts two short range processor times and converts the difference to nanoseconds.

Parameters:
_beg The beginning time
_end The ending time
Returns:
The difference in nanoseconds (32-bit result)

#define PTS_DELTAX ( _beg,
_end   )     ((_end) - (_beg))

Subtracts two extended range processor times.

Parameters:
_beg The beginning time
_end The ending time
Returns:
The difference in processor time units

#define PTS_DELTAX_IN_NSECX ( _beg,
_end   )     PTS_PTUX_TO_NSECX(PTS_DELTAX(_beg, _end))

Subtracts two extended range processor times and converts the difference to nanoseconds (64 bit result).

Parameters:
_beg The beginning time
_end The ending time
Returns:
The difference in nanoseconds

 
#define PTS_GETS (  ) 

Value:

({                                                    \
          unsigned long long t;                             \
          __asm__ volatile (".byte 0x0f,0x31" : "=A"(t));   \
          (unsigned int)t;                                  \
      })
Macro to get the short range of the processor time.

PTS_GETS() gets the short range of the processor time. This is is generally a 32-bit value, however, the exact representation is platform dependent. The user should use the typedef PTS_times to declare an short range processor time variable.

This is implemented as a macro because its only value is to act as a low overhead method of timing short duration fragments of code. If one is timing long durations (where long is a platform dependent definition, but generally means greater than one second) PTS_GETX() is more appropriate.

Referenced by PBS_initialize2().

 
#define PTS_GETX (  ) 

Value:

({                                                    \
          unsigned long long t;                             \
          __asm__ volatile (".byte 0x0f,0x31" : "=A"(t));   \
          t;                                                \
      })
Macro to get the full extended range of the processor time.

PTS_GETX() gets the full extended range of the processor time. This is is generally a 64-bit value, however, the exact representation is platform dependent. The user should use the typedef PTS_timex to declare an extended range processor time variable.

This is implemented as a macro because its only value is to act as a low overhead method of timing short duration fragments of code. See PTS_GETS() for the short version of getting the processor time. If one is timing short code segments (where short is a platform dependent definition, but generally means subsecond), PTS_GETS() is lower overhead. Be aware that PTS_GETX() is just an elapsed timer, so the timing long segments of code also includes any time that may elapse due to interrupt or task switching.

#define PTS_NSECS_TO_PTUS ( _nsecs   )     PTS_nsecs_to_ptus(_nsecs)

Converts a short range nanoseconds to a processor time.

Parameters:
_nsecs The short range time, in nanoseconds, to convert to a processor time.
Returns:
The processor time in ticks (32-bit result)

#define PTS_NSECX_TO_PTUX ( _nsecx   )     PTS_nsecx_to_ptux(_nsecx)

Converts an extended range nanoseconds to a processor time.

Parameters:
_nsecx The extended range time, in nanoseconds, to convert to a processor time
Returns:
The processor time in ticks (64-bit result)

#define PTS_PTUS_TO_NSECS ( _ptus   )     PTS_ptus_to_nsecs (_ptus)

Converts a short range processor time to nanoseconds.

Parameters:
_ptus The short range processor time to convert. This value is generally the result of a call to PTS_GETS().
Returns:
The processor time in nanoseconds (32-bit result)

#define PTS_PTUX_TO_NSECX ( _ptux   )     PTS_ptux_to_nsecx (_ptux)

Converts a extended range processor time to nanocseconds.

Parameters:
_ptux The extended range processor time to convert. This value is generally the result of a call to PTS_GETX().
Returns:
The processor time in nanoseconds (64-bit result).


Generated on Sat Apr 9 17:18:14 2011 by  doxygen 1.5.8