bigtime_t _user_system_time(void) { syscall_64_bit_return_value(); return system_time(); }
bigtime_t _user_set_alarm(bigtime_t time, uint32 mode) { syscall_64_bit_return_value(); return set_alarm(time, mode); }
bigtime_t _user_estimate_max_scheduling_latency(thread_id id) { syscall_64_bit_return_value(); InterruptsSpinLocker locker(gThreadSpinlock); struct thread* thread = id < 0 ? thread_get_current_thread() : thread_get_thread_struct_locked(id); if (thread == NULL) return 0; return gScheduler->estimate_max_scheduling_latency(thread); }
off_t _user_seek(int fd, off_t pos, int seekType) { syscall_64_bit_return_value(); struct file_descriptor* descriptor; descriptor = get_fd(get_current_io_context(false), fd); if (descriptor == NULL || (descriptor->open_mode & O_DISCONNECTED) != 0) return B_FILE_ERROR; TRACE(("user_seek(descriptor = %p)\n", descriptor)); if (descriptor->ops->fd_seek != NULL) pos = descriptor->ops->fd_seek(descriptor, pos, seekType); else pos = ESPIPE; put_fd(descriptor); return pos; }
bigtime_t _user_estimate_max_scheduling_latency(thread_id id) { syscall_64_bit_return_value(); // get the thread Thread* thread; if (id < 0) { thread = thread_get_current_thread(); thread->AcquireReference(); } else { thread = Thread::Get(id); if (thread == NULL) return 0; } BReference<Thread> threadReference(thread, true); // ask the scheduler for the thread's latency InterruptsSpinLocker locker(gSchedulerLock); return gScheduler->estimate_max_scheduling_latency(thread); }