Software APIs
Data Structures | Typedefs | Enumerations | Functions
dif_rv_timer_autogen.h File Reference

(b2fb947)

RV_TIMER Device Interface Functions More...

#include <stdbool.h>
#include <stdint.h>
#include "sw/device/lib/base/macros.h"
#include "sw/device/lib/base/mmio.h"
#include "sw/device/lib/dif/dif_base.h"

Go to the source code of this file.

Data Structures

struct  dif_rv_timer
 A handle to rv_timer. More...
 

Typedefs

typedef struct dif_rv_timer dif_rv_timer_t
 A handle to rv_timer. More...
 
typedef enum dif_rv_timer_alert dif_rv_timer_alert_t
 A rv_timer alert type.
 
typedef enum dif_rv_timer_irq dif_rv_timer_irq_t
 A rv_timer interrupt request type.
 
typedef uint32_t dif_rv_timer_irq_state_snapshot_t
 A snapshot of the state of the interrupts for this IP. More...
 
typedef uint32_t dif_rv_timer_irq_enable_snapshot_t
 A snapshot of the enablement state of the interrupts for this IP. More...
 

Enumerations

enum  dif_rv_timer_alert { kDifRvTimerAlertFatalFault = 0 }
 A rv_timer alert type. More...
 
enum  dif_rv_timer_irq { kDifRvTimerIrqTimerExpiredHart0Timer0 = 0 }
 A rv_timer interrupt request type. More...
 

Functions

OT_WARN_UNUSED_RESULT dif_result_t dif_rv_timer_init (mmio_region_t base_addr, dif_rv_timer_t *rv_timer)
 Creates a new handle for a(n) rv_timer peripheral. More...
 
OT_WARN_UNUSED_RESULT dif_result_t dif_rv_timer_alert_force (const dif_rv_timer_t *rv_timer, dif_rv_timer_alert_t alert)
 Forces a particular alert, causing it to be escalated as if the hardware had raised it. More...
 
OT_WARN_UNUSED_RESULT dif_result_t dif_rv_timer_irq_get_type (const dif_rv_timer_t *rv_timer, dif_rv_timer_irq_t irq, dif_irq_type_t *type)
 Returns the type of a given interrupt (i.e., event or status) for this IP. More...
 
OT_WARN_UNUSED_RESULT dif_result_t dif_rv_timer_irq_get_state (const dif_rv_timer_t *rv_timer, uint32_t hart_id, dif_rv_timer_irq_state_snapshot_t *snapshot)
 Returns the state of all interrupts (i.e., pending or not) for this IP. More...
 
OT_WARN_UNUSED_RESULT dif_result_t dif_rv_timer_irq_is_pending (const dif_rv_timer_t *rv_timer, dif_rv_timer_irq_t irq, bool *is_pending)
 Returns whether a particular interrupt is currently pending. More...
 
OT_WARN_UNUSED_RESULT dif_result_t dif_rv_timer_irq_acknowledge_state (const dif_rv_timer_t *rv_timer, uint32_t hart_id, dif_rv_timer_irq_state_snapshot_t snapshot)
 Acknowledges all interrupts that were pending at the time of the state snapshot. More...
 
OT_WARN_UNUSED_RESULT dif_result_t dif_rv_timer_irq_acknowledge_all (const dif_rv_timer_t *rv_timer, uint32_t hart_id)
 Acknowledges all interrupts, indicating to the hardware that all interrupts have been successfully serviced. More...
 
OT_WARN_UNUSED_RESULT dif_result_t dif_rv_timer_irq_acknowledge (const dif_rv_timer_t *rv_timer, dif_rv_timer_irq_t irq)
 Acknowledges a particular interrupt, indicating to the hardware that it has been successfully serviced. More...
 
OT_WARN_UNUSED_RESULT dif_result_t dif_rv_timer_irq_force (const dif_rv_timer_t *rv_timer, dif_rv_timer_irq_t irq, const bool val)
 Forces a particular interrupt, causing it to be serviced as if hardware had asserted it. More...
 
OT_WARN_UNUSED_RESULT dif_result_t dif_rv_timer_irq_get_enabled (const dif_rv_timer_t *rv_timer, dif_rv_timer_irq_t irq, dif_toggle_t *state)
 Checks whether a particular interrupt is currently enabled or disabled. More...
 
OT_WARN_UNUSED_RESULT dif_result_t dif_rv_timer_irq_set_enabled (const dif_rv_timer_t *rv_timer, dif_rv_timer_irq_t irq, dif_toggle_t state)
 Sets whether a particular interrupt is currently enabled or disabled. More...
 
OT_WARN_UNUSED_RESULT dif_result_t dif_rv_timer_irq_disable_all (const dif_rv_timer_t *rv_timer, uint32_t hart_id, dif_rv_timer_irq_enable_snapshot_t *snapshot)
 Disables all interrupts, optionally snapshotting all enable states for later restoration. More...
 
OT_WARN_UNUSED_RESULT dif_result_t dif_rv_timer_irq_restore_all (const dif_rv_timer_t *rv_timer, uint32_t hart_id, const dif_rv_timer_irq_enable_snapshot_t *snapshot)
 Restores interrupts from the given (enable) snapshot. More...
 

Detailed Description

RV_TIMER Device Interface Functions

Definition in file dif_rv_timer_autogen.h.


Data Structure Documentation

◆ dif_rv_timer

struct dif_rv_timer

A handle to rv_timer.

This type should be treated as opaque by users.

Definition at line 33 of file dif_rv_timer_autogen.h.

Data Fields
mmio_region_t base_addr The base address for the rv_timer hardware registers.

Typedef Documentation

◆ dif_rv_timer_irq_enable_snapshot_t

A snapshot of the enablement state of the interrupts for this IP.

This is an opaque type, to be used with the dif_rv_timer_irq_disable_all() and dif_rv_timer_irq_restore_all() functions.

Definition at line 190 of file dif_rv_timer_autogen.h.

◆ dif_rv_timer_irq_state_snapshot_t

A snapshot of the state of the interrupts for this IP.

This is an opaque type, to be used with the dif_rv_timer_irq_get_state() and dif_rv_timer_irq_acknowledge_state() functions.

Definition at line 92 of file dif_rv_timer_autogen.h.

◆ dif_rv_timer_t

typedef struct dif_rv_timer dif_rv_timer_t

A handle to rv_timer.

This type should be treated as opaque by users.

Enumeration Type Documentation

◆ dif_rv_timer_alert

A rv_timer alert type.

Enumerator
kDifRvTimerAlertFatalFault 

This fatal alert is triggered when a fatal TL-UL bus integrity fault is detected inside the RV_TIMER unit.

Definition at line 56 of file dif_rv_timer_autogen.h.

◆ dif_rv_timer_irq

A rv_timer interrupt request type.

Enumerator
kDifRvTimerIrqTimerExpiredHart0Timer0 

Raised if hart0's timer0 expired (mtimecmp >= mtime)

Definition at line 79 of file dif_rv_timer_autogen.h.

Function Documentation

◆ dif_rv_timer_alert_force()

OT_WARN_UNUSED_RESULT dif_result_t dif_rv_timer_alert_force ( const dif_rv_timer_t rv_timer,
dif_rv_timer_alert_t  alert 
)

Forces a particular alert, causing it to be escalated as if the hardware had raised it.

Parameters
rv_timerA rv_timer handle.
alertThe alert to force.
Returns
The result of the operation.

Definition at line 34 of file dif_rv_timer_autogen.c.

◆ dif_rv_timer_init()

OT_WARN_UNUSED_RESULT dif_result_t dif_rv_timer_init ( mmio_region_t  base_addr,
dif_rv_timer_t rv_timer 
)

Creates a new handle for a(n) rv_timer peripheral.

This function does not actuate the hardware.

Parameters
base_addrThe MMIO base address of the rv_timer peripheral.
[out]rv_timerOut param for the initialized handle.
Returns
The result of the operation.

Definition at line 23 of file dif_rv_timer_autogen.c.

◆ dif_rv_timer_irq_acknowledge()

OT_WARN_UNUSED_RESULT dif_result_t dif_rv_timer_irq_acknowledge ( const dif_rv_timer_t rv_timer,
dif_rv_timer_irq_t  irq 
)

Acknowledges a particular interrupt, indicating to the hardware that it has been successfully serviced.

Parameters
rv_timerA rv_timer handle.
irqAn interrupt request.
Returns
The result of the operation.

Definition at line 225 of file dif_rv_timer_autogen.c.

◆ dif_rv_timer_irq_acknowledge_all()

OT_WARN_UNUSED_RESULT dif_result_t dif_rv_timer_irq_acknowledge_all ( const dif_rv_timer_t rv_timer,
uint32_t  hart_id 
)

Acknowledges all interrupts, indicating to the hardware that all interrupts have been successfully serviced.

Parameters
rv_timerA rv_timer handle.
Returns
The result of the operation.

Definition at line 203 of file dif_rv_timer_autogen.c.

◆ dif_rv_timer_irq_acknowledge_state()

OT_WARN_UNUSED_RESULT dif_result_t dif_rv_timer_irq_acknowledge_state ( const dif_rv_timer_t rv_timer,
uint32_t  hart_id,
dif_rv_timer_irq_state_snapshot_t  snapshot 
)

Acknowledges all interrupts that were pending at the time of the state snapshot.

Parameters
rv_timerA rv_timer handle.
hart_idThe hart to manipulate.
snapshotInterrupt state snapshot.
Returns
The result of the operation.

Definition at line 157 of file dif_rv_timer_autogen.c.

◆ dif_rv_timer_irq_disable_all()

OT_WARN_UNUSED_RESULT dif_result_t dif_rv_timer_irq_disable_all ( const dif_rv_timer_t rv_timer,
uint32_t  hart_id,
dif_rv_timer_irq_enable_snapshot_t snapshot 
)

Disables all interrupts, optionally snapshotting all enable states for later restoration.

Parameters
rv_timerA rv_timer handle.
hart_idThe hart to manipulate.
[out]snapshotOut-param for the snapshot; may be NULL.
Returns
The result of the operation.

Definition at line 328 of file dif_rv_timer_autogen.c.

◆ dif_rv_timer_irq_force()

OT_WARN_UNUSED_RESULT dif_result_t dif_rv_timer_irq_force ( const dif_rv_timer_t rv_timer,
dif_rv_timer_irq_t  irq,
const bool  val 
)

Forces a particular interrupt, causing it to be serviced as if hardware had asserted it.

Parameters
rv_timerA rv_timer handle.
irqAn interrupt request.
valValue to be set.
Returns
The result of the operation.

Definition at line 249 of file dif_rv_timer_autogen.c.

◆ dif_rv_timer_irq_get_enabled()

OT_WARN_UNUSED_RESULT dif_result_t dif_rv_timer_irq_get_enabled ( const dif_rv_timer_t rv_timer,
dif_rv_timer_irq_t  irq,
dif_toggle_t state 
)

Checks whether a particular interrupt is currently enabled or disabled.

Parameters
rv_timerA rv_timer handle.
irqAn interrupt request.
[out]stateOut-param toggle state of the interrupt.
Returns
The result of the operation.

Definition at line 272 of file dif_rv_timer_autogen.c.

◆ dif_rv_timer_irq_get_state()

OT_WARN_UNUSED_RESULT dif_result_t dif_rv_timer_irq_get_state ( const dif_rv_timer_t rv_timer,
uint32_t  hart_id,
dif_rv_timer_irq_state_snapshot_t snapshot 
)

Returns the state of all interrupts (i.e., pending or not) for this IP.

Parameters
rv_timerA rv_timer handle.
hart_idThe hart to manipulate.
[out]snapshotOut-param for interrupt state snapshot.
Returns
The result of the operation.

Definition at line 136 of file dif_rv_timer_autogen.c.

◆ dif_rv_timer_irq_get_type()

OT_WARN_UNUSED_RESULT dif_result_t dif_rv_timer_irq_get_type ( const dif_rv_timer_t rv_timer,
dif_rv_timer_irq_t  irq,
dif_irq_type_t type 
)

Returns the type of a given interrupt (i.e., event or status) for this IP.

Parameters
rv_timerA rv_timer handle.
irqAn interrupt request.
[out]typeOut-param for the interrupt type.
Returns
The result of the operation.

Definition at line 122 of file dif_rv_timer_autogen.c.

◆ dif_rv_timer_irq_is_pending()

OT_WARN_UNUSED_RESULT dif_result_t dif_rv_timer_irq_is_pending ( const dif_rv_timer_t rv_timer,
dif_rv_timer_irq_t  irq,
bool *  is_pending 
)

Returns whether a particular interrupt is currently pending.

Parameters
rv_timerA rv_timer handle.
irqAn interrupt request.
[out]is_pendingOut-param for whether the interrupt is pending.
Returns
The result of the operation.

Definition at line 178 of file dif_rv_timer_autogen.c.

◆ dif_rv_timer_irq_restore_all()

OT_WARN_UNUSED_RESULT dif_result_t dif_rv_timer_irq_restore_all ( const dif_rv_timer_t rv_timer,
uint32_t  hart_id,
const dif_rv_timer_irq_enable_snapshot_t snapshot 
)

Restores interrupts from the given (enable) snapshot.

Parameters
rv_timerA rv_timer handle.
hart_idThe hart to manipulate.
snapshotA snapshot to restore from.
Returns
The result of the operation.

Definition at line 363 of file dif_rv_timer_autogen.c.

◆ dif_rv_timer_irq_set_enabled()

OT_WARN_UNUSED_RESULT dif_result_t dif_rv_timer_irq_set_enabled ( const dif_rv_timer_t rv_timer,
dif_rv_timer_irq_t  irq,
dif_toggle_t  state 
)

Sets whether a particular interrupt is currently enabled or disabled.

Parameters
rv_timerA rv_timer handle.
irqAn interrupt request.
stateThe new toggle state for the interrupt.
Returns
The result of the operation.

Definition at line 299 of file dif_rv_timer_autogen.c.