mirror of
https://github.com/ioacademy-jikim/debugging
synced 2025-06-10 01:16:12 +00:00
40 lines
884 B
C
40 lines
884 B
C
/* Test for gethrtime which either issues a classic syscall
|
|
or leverages fasttrap available on Solaris with tscp hwcap. */
|
|
|
|
#include "config.h"
|
|
#include <stdio.h>
|
|
#include <sys/time.h>
|
|
#include <sys/trap.h>
|
|
|
|
int main(void)
|
|
{
|
|
hrtime_t hrt = gethrtime();
|
|
if (hrt > 0)
|
|
printf("PASS\n");
|
|
|
|
/* Exercise the fasttrap directly if available. When tscp hwcap
|
|
is not supported, it simply returns NULL. */
|
|
#if defined(SOLARIS_GETHRT_FASTTRAP)
|
|
#if defined(VGP_x86_solaris)
|
|
__asm__ ( \
|
|
"movl %[FASTTRAP],%%eax\n"
|
|
"int $0xd2\n"
|
|
:
|
|
: [FASTTRAP] "i" (T_GETHRT)
|
|
: "eax", "edx", "cc");
|
|
#elif defined(VGP_amd64_solaris)
|
|
__asm__ ( \
|
|
"movq %[FASTTRAP],%%rax\n"
|
|
"int $0xd2\n"
|
|
:
|
|
: [FASTTRAP] "i" (T_GETHRT)
|
|
: "rax", "rdx", "cc");
|
|
#else
|
|
# error "Unknown platform"
|
|
#endif
|
|
#endif /* SOLARIS_GETHRT_FASTTRAP */
|
|
|
|
return 0;
|
|
}
|
|
|