Function definitions for CLINT driver.
Functions | |
| void | clint_uDelay (u32 usec, u32 hz) |
| This function introduces a microsecond delay using the CLINT TIME register. | |
CLINT (Get Functions) | |
Retrieve value from CLINT register. | |
| double | clint_timerSub (u64 t0, u64 t1) |
| Get the time difference between t0 and t1. | |
| u64 | clint_getTime () |
| Reads the current time value from the CLINT TIME register. | |
| u32 | clint_getTimeLow () |
| Reads the low part of the current time. | |
| u32 | clint_getTimeHigh () |
| Reads the high part of the current time. | |
| u32 | clint_get_SoftInterrupt (u32 hart_id) |
| Obtain the current state of the software interrupt for a specific hart. | |
CLINT (Set Functions) | |
Set value to CLINT register. | |
| void | clint_setCmp (u64 cmp, u32 hart_id) |
| This function sets the compare value for the CLINT CMP register for a specific hardware thread. | |
| void | clint_set_SoftInterrupt (clint_msip_t enable, u32 hart_id) |
| Sets the software interrupt state for a specific hart. | |
| u64 clint_getTime | ( | ) |
#include <clint.h>
Reads the current time value from the CLINT TIME register.
The function reads the high and low 32-bit parts of the CLINT TIME register in a loop to ensure a consistent snapshot of the time value. It first reads the high part, then the low part, and finally checks if the high part has changed during the read. If it has changed, it repeats the process until a consistent value is obtained. The final 64-bit time value is constructed by combining the high and low parts.
| u32 clint_getTimeHigh | ( | ) |
| u32 clint_getTimeLow | ( | ) |
| void clint_set_SoftInterrupt | ( | clint_msip_t | enable, |
| u32 | hart_id ) |
#include <clint.h>
This function sets the compare value for the CLINT CMP register for a specific hardware thread.
| cmp | is the 64-bit compare value to be set in the CMP register. |
| hart_id | is the ID of the hardware thread for which the compare value is being set. |
#include <clint.h>
This function introduces a microsecond delay using the CLINT TIME register.
| usec | is the delay time in microseconds. |
| hz | is the frequency of the timer in Hz. |