1234567891011121314151617181920212223242526272829303132 |
- #include "time.h"
- #include "errno.h"
- #include "unistd.h"
- #include <libsystem/syscall.h>
- /**
- * @brief 休眠指定时间
- *
- * @param rqtp 指定休眠的时间
- * @param rmtp 返回的剩余休眠时间
- * @return int
- */
- int nanosleep(const struct timespec *rqtp, struct timespec *rmtp)
- {
- return syscall_invoke(SYS_NANOSLEEP, (uint64_t)rqtp, (uint64_t)rmtp, 0, 0, 0, 0, 0, 0);
- }
- /**
- * @brief 睡眠指定时间
- *
- * @param usec 微秒
- * @return int
- */
- int usleep(useconds_t usec)
- {
- struct timespec ts = {
- tv_sec : (long int)(usec / 1000000),
- tv_nsec : (long int)(usec % 1000000) * 1000UL
- };
-
- return nanosleep(&ts, NULL);
- }
|