interrupt

package
v0.31.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 10, 2024 License: BSD-3-Clause Imports: 1 Imported by: 0

Documentation

Overview

Package interrupt provides access to hardware interrupts. It provides a way to define interrupts and to enable/disable them.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func In added in v0.28.0

func In() bool

In returns whether the system is currently in an interrupt.

func Restore added in v0.14.0

func Restore(state State)

Restore restores interrupts to what they were before. Give the previous state returned by Disable as a parameter. If interrupts were disabled before calling Disable, this will not re-enable interrupts, allowing for nested cricital sections.

Types

type Interrupt

type Interrupt struct {
	// contains filtered or unexported fields
}

Interrupt provides direct access to hardware interrupts. You can configure this interrupt through this interface.

Do not use the zero value of an Interrupt object. Instead, call New to obtain an interrupt handle.

func New

func New(id int, handler func(Interrupt)) Interrupt

New is a compiler intrinsic that creates a new Interrupt object. You may call it only once, and must pass constant parameters to it. That means that the interrupt ID must be a Go constant and that the handler must be a simple function: closures are not supported.

type State added in v0.14.0

type State uintptr

State represents the previous global interrupt state.

func Disable added in v0.14.0

func Disable() (state State)

Disable disables all interrupts and returns the previous interrupt state. It can be used in a critical section like this:

state := interrupt.Disable()
// critical section
interrupt.Restore(state)

Critical sections can be nested. Make sure to call Restore in the same order as you called Disable (this happens naturally with the pattern above).

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL