Home
Developer Resources

SYSPAGE_ENTRY

PDF Documents
Caution: This version of this document is no longer maintained. For the latest documentation, see http://www.qnx.com/developers/docs.

SYSPAGE_ENTRY()

Return an entry from the system page

Synopsis:

#include <sys/syspage.h>

#define SYSPAGE_ENTRY( entry )...

Arguments:

entry
The entry to get; see below.

Library:

libc

Use the -l c option to qcc to link against this library. This library is usually included automatically.

Description:

The SYSPAGE_ENTRY() macro returns a pointer to the specified entry in the system page.

The best way to reference the system page is via the kernel calls and POSIX cover functions. If there isn't a function to access the information you need, use SYSPAGE_ENTRY() instead of referencing the _syspage_ptr variable directly. For information in the CPU-specific part of the syspage_entry structure, use SYSPAGE_CPU_ENTRY().

Currently, the only entry you're likely to access with SYSPAGE_ENTRY() is:

qtime
QNX-specific time information. The qtime_entry structure contains at least the following members:
  • unsigned long boot_time — the time, in seconds, since the Unix Epoch (00:00:00 January 1, 1970 Coordinated Universal Time (UTC)) when this system was booted.
  • uint64_t cycles_per_sec — the number of CPU clock cycles per second for this system. For more information, see ClockCycles().

Returns:

A pointer to the structure for the given entry.

Examples:

#include <sys/neutrino.h>
#include <inttypes.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/syspage.h>

int main( void )
{
    uint64_t cps, cycle1, cycle2, ncycles;
    double sec;

    /* snap the time */
    cycle1=ClockCycles( );

    /* do something */
    printf("Hello!\n");

    /* snap the time again */
    cycle2=ClockCycles( );
    ncycles=cycle2-cycle1;
    printf("%lld cycles elapsed.\n", ncycles);
    
    /* find out how many cycles per second */
    cps = SYSPAGE_ENTRY(qtime)->cycles_per_sec;
    printf( "This system has %lld cycles/sec.\n",cps );
    sec=(double)ncycles/cps;
    printf("The cycles in seconds is %f.\n",sec);

    return EXIT_SUCCESS;
}

Classification:

QNX Neutrino

Safety:
Cancellation point No
Interrupt handler Yes
Signal handler Yes
Thread Yes

Caveats:

SYSPAGE_ENTRY() is a macro.

See also:

ClockCycles(), SYSPAGE_CPU_ENTRY(), _syspage_ptr

Customizing Image Startup Programs chapter of the Building Embedded Systems guide