Files
Arquivotheca.Solaris-2.5/lib/libc/sparc/sys/__clock_timer.s
seta75D 7c4988eac0 Init
2021-10-11 19:38:01 -03:00

138 lines
2.1 KiB
ArmAsm
Executable File

/*
* Copyright (c) 1993, by Sun Microsystems, Inc.
*/
#pragma ident "@(#)__clock_timer.s 1.3 94/12/06 SMI"
#include <sys/asm_linkage.h>
#include <sys/time.h>
#include "SYS.h"
.file "__clock_timer.s"
/*
* int
* __clock_getres (clockid_t clock_id, struct timespec *res)
*/
ENTRY(__clock_getres)
SYSTRAP(clock_getres)
SYSCERROR
RET
SET_SIZE(__clock_getres)
/*
* int
* __clock_gettime (clockid_t clock_id, timespec_t *tp)
*/
ENTRY(__clock_gettime)
cmp %o0, __CLOCK_REALTIME0 ! if (clock_id)
beq 2f
cmp %o0, __CLOCK_REALTIME3
bne 1f ! equal to CLOCK_REALTIME
.empty ! optimize for CLOCK_REALTIME
2:
mov %o1, %o5 ! %o3 = address of timespec
ta ST_GETHRESTIME ! call get_hrestime
st %o0, [%o5] ! *tp = hrest
st %o1, [%o5+4]
retl
clr %o0
1:
SYSTRAP(clock_gettime)
SYSCERROR
RET
SET_SIZE(__clock_gettime)
/*
* int
* __clock_settime (clockid_t clock_id, timespec_t *tp)
*/
ENTRY(__clock_settime)
SYSTRAP(clock_settime)
SYSCERROR
RET
SET_SIZE(__clock_settime)
/*
* int
* __timer_create(clock_id, evp, timerid)
* clockid_t clock_id;
* struct sigevent *evp;
* timer_t *timerid;
*/
ENTRY(__timer_create);
SYSTRAP(timer_create);
SYSCERROR
RET
SET_SIZE(__timer_create)
/*
* int
* __timer_delete(timerid)
* timer_t timerid;
*/
ENTRY(__timer_delete);
SYSTRAP(timer_delete);
SYSCERROR
RET
SET_SIZE(__timer_delete)
/*
* int
* __timer_getoverrun(timerid)
* timer_t timerid;
*/
ENTRY(__timer_getoverrun);
SYSTRAP(timer_getoverrun);
SYSCERROR
RET
SET_SIZE(__timer_getoverrun)
/*
* int
* __timer_gettime(timerid, value)
* timer_t timerid;
* struct itimerspec *value;
*/
ENTRY(__timer_gettime);
SYSTRAP(timer_gettime);
SYSCERROR
RET
SET_SIZE(__timer_gettime)
/*
* int
* __timer_settime(timerid, flags, value, ovalue)
* timer_t timerid;
* int flags;
* const struct itimerspec *value;
* struct itimerspec *ovalue;
*/
ENTRY(__timer_settime);
SYSTRAP(timer_settime);
SYSCERROR
RET
SET_SIZE(__timer_settime)
/*
* int
* __nanosleep(rqtp, rmtp)
* const struct timespec *rqtp;
* struct timespec *rqtp;
*/
ENTRY(__nanosleep);
SYSTRAP(nanosleep);
SYSCERROR
RET
SET_SIZE(__nanosleep)