#include <stdbool.h>
#include <stdint.h>
Go to the source code of this file.
Data Structures | |
struct | intr_frame |
Typedefs | |
typedef void | intr_handler_func (struct intr_frame *) |
Enumerations | |
enum | intr_level { INTR_OFF, INTR_ON } |
Functions | |
enum intr_level | intr_get_level (void) |
enum intr_level | intr_set_level (enum intr_level) |
enum intr_level | intr_enable (void) |
enum intr_level | intr_disable (void) |
void | intr_init (void) |
void | intr_register_ext (uint8_t vec, intr_handler_func *, const char *name) |
void | intr_register_int (uint8_t vec, int dpl, enum intr_level, intr_handler_func *, const char *name) |
bool | intr_context (void) |
void | intr_yield_on_return (void) |
void | intr_dump_frame (const struct intr_frame *) |
const char * | intr_name (uint8_t vec) |
void | intr_irq_mask (int irq) |
void | intr_irq_unmask (int irq) |
bool | intr_is_registered (uint8_t vec) |
typedef void intr_handler_func(struct intr_frame *) |
Definition at line 59 of file interrupt.h.
enum intr_level |
bool intr_context | ( | void | ) |
Definition at line 221 of file interrupt.c.
References in_external_intr.
Referenced by acquire_console(), cond_signal(), cond_wait(), console_locked_by_current_thread(), intq_getc(), intq_putc(), intr_enable(), intr_handler(), intr_yield_on_return(), lock_acquire(), release_console(), sema_down(), thread_block(), thread_exit(), thread_yield(), and wait().
enum intr_level intr_disable | ( | void | ) |
Definition at line 113 of file interrupt.c.
References intr_get_level().
Referenced by debug_backtrace_all(), debug_panic(), idle(), input_getc(), intr_set_level(), pci_unregister_irq(), pit_configure_channel(), sema_down(), sema_try_down(), sema_up(), serial_flush(), serial_init_queue(), serial_putc(), speaker_off(), speaker_on(), thread_create(), thread_exit(), thread_unblock(), thread_yield(), timer_ticks(), uhci_remove_stalled(), uhci_tx_pkt_wait(), and vga_putc().
void intr_dump_frame | ( | const struct intr_frame * | ) |
Definition at line 409 of file interrupt.c.
References intr_frame::cs, intr_frame::ds, intr_frame::eax, intr_frame::ebp, intr_frame::ebx, intr_frame::ecx, intr_frame::edi, intr_frame::edx, intr_frame::eip, intr_frame::error_code, intr_frame::es, intr_frame::esi, intr_frame::esp, intr_names, printf(), PRIx16, PRIx32, intr_frame::ss, and intr_frame::vec_no.
Referenced by intr_handler(), and kill().
enum intr_level intr_enable | ( | void | ) |
Definition at line 97 of file interrupt.c.
References ASSERT, intr_context(), and intr_get_level().
Referenced by intr_set_level(), kernel_thread(), page_fault(), pci_unregister_irq(), thread_start(), and uhci_remove_stalled().
enum intr_level intr_get_level | ( | void | ) |
Definition at line 74 of file interrupt.c.
References FLAG_IF, INTR_OFF, and INTR_ON.
Referenced by input_full(), input_putc(), intq_empty(), intq_full(), intq_getc(), intq_putc(), intr_disable(), intr_enable(), intr_handler(), is_thread(), issue_pio_command(), putc_poll(), real_time_sleep(), schedule(), schedule_tail(), serial_notify(), signal(), speaker_beep(), thread_block(), thread_foreach(), timer_calibrate(), timer_sleep(), uhci_stop(), wait(), and write_ier().
void intr_init | ( | void | ) |
Definition at line 127 of file interrupt.c.
References idt, INTR_CNT, intr_names, intr_stubs, make_idtr_operand(), make_intr_gate(), and pic_init().
Referenced by main().
void intr_irq_mask | ( | int | irq | ) |
masks a given IRQ
Definition at line 439 of file interrupt.c.
References outb(), PIC0_DATA, PIC1_DATA, and pic_mask.
Referenced by pci_mask_irq().
void intr_irq_unmask | ( | int | irq | ) |
unmasks a given IRQ
Definition at line 451 of file interrupt.c.
References IRQ_CASCADE0, IRQ_CASCADE1, outb(), PIC0_DATA, PIC1_DATA, and pic_mask.
Referenced by pci_unmask_irq().
bool intr_is_registered | ( | uint8_t | vec | ) |
Definition at line 474 of file interrupt.c.
References intr_handlers, and NULL.
Referenced by pci_register_irq().
const char* intr_name | ( | uint8_t | vec | ) |
void intr_register_ext | ( | uint8_t | vec, | |
intr_handler_func * | , | |||
const char * | name | |||
) |
Definition at line 190 of file interrupt.c.
References ASSERT, INTR_OFF, and register_handler().
Referenced by ide_init(), kbd_init(), pci_register_irq(), serial_init_queue(), and timer_init().
void intr_register_int | ( | uint8_t | vec, | |
int | dpl, | |||
enum | intr_level, | |||
intr_handler_func * | , | |||
const char * | name | |||
) |
Definition at line 211 of file interrupt.c.
References ASSERT, and register_handler().
Referenced by exception_init(), and syscall_init().
enum intr_level intr_set_level | ( | enum | intr_level | ) |
Definition at line 90 of file interrupt.c.
References intr_disable(), intr_enable(), and INTR_ON.
Referenced by debug_backtrace_all(), input_getc(), pit_configure_channel(), sema_down(), sema_try_down(), sema_up(), serial_flush(), serial_init_queue(), serial_putc(), speaker_off(), speaker_on(), thread_create(), thread_unblock(), thread_yield(), timer_ticks(), uhci_tx_pkt_wait(), and vga_putc().
void intr_yield_on_return | ( | void | ) |
Definition at line 231 of file interrupt.c.
References ASSERT, intr_context(), and yield_on_return.
Referenced by thread_tick().