/*
 * Copyright (c) 2026, Chloe M.
 * Provided under the BSD-3 clause.
 *
 * Description: HAL thread management
 * Author:      Chloe M.
 */

#ifndef _HAL_THREAD_H_
#define _HAL_THREAD_H_ 1

#include <ps/thread.h>
#include <ptapi/status.h>
#include <ptdef.h>

/*
 * Initialize machine specific thread information
 *
 * @Thread:  Thread to initialize
 * @Flags:   Optional init flags
 * @Ip:      Instruction pointer value to start off with
 */
PT_STATUS HalThreadInit(THREAD *Thread, ULONG Flags, UPTR Ip);

/*
 * Yield the current thread
 */
VOID HalThreadYield(VOID);

/*
 * Prime the scheduler timer
 *
 * @Usec: Number of microseconds to prime for
 */
VOID HalPrimeThreadTimer(ULONG Usec);

#endif  /* !_HAL_THREAD_H_ */
