LF OS
Hobby operating system for amd64 with high ambitions
Loading...
Searching...
No Matches
hpet.c File Reference

(29312b1 fbconsole, panic: render panic after framebuffer was given to userspace - without clearing screen contents)

#include <log.h>
#include <hpet.h>
#include <string.h>
#include <vm.h>
+ Include dependency graph for hpet.c:

Go to the source code of this file.

Data Structures

struct  hpet_mmio
 
struct  hpet_acpi_table
 

Functions

struct hpet_mmio __attribute__ ((packed))
 
void init_hpet (struct acpi_table_header *header)
 
void sc_handle_clock_read (uint64_t *nanoseconds)
 

Variables

uint64_t rev_id
 
uint64_t num_tim_cap
 
uint64_t count_size_cap
 
uint64_t _reserved
 
uint64_t leg_route_cap
 
uint64_t vendor_id
 
uint64_t counter_clk_period
 
struct acpi_table_header header
 
uint8_t hardware_revision
 
uint8_t num_comparators
 
uint8_t legacy_replacement_irq_cap
 
uint16_t pci_vendor_id
 
struct acpi_address base_address
 
uint8_t hpet_number
 
uint16_t main_counter_minimum_clock_tick
 
uint8_t page_protection
 
uint8_t oem
 
static struct hpet_mmiohpet
 
static uint64_t initialization_ticks = 0
 
static uint16_t ticks_to_ns_multiplier = 1
 

Data Structure Documentation

◆ hpet_acpi_table

struct hpet_acpi_table

Definition at line 81 of file hpet.c.

+ Collaboration diagram for hpet_acpi_table:
Data Fields
uint8_t _reserved: 1
struct acpi_address base_address
uint8_t count_size_cap: 1
uint8_t hardware_revision
struct acpi_table_header header
uint8_t hpet_number
uint8_t legacy_replacement_irq_cap: 1
uint16_t main_counter_minimum_clock_tick
uint8_t num_comparators: 5
uint8_t oem: 4
uint8_t page_protection: 4
uint16_t pci_vendor_id

Function Documentation

◆ __attribute__()

struct hpet_mmio __attribute__ ( (packed)  )

Definition at line 28 of file hpet.c.

References _reserved1.

◆ init_hpet()

void init_hpet ( struct acpi_table_header header)

Definition at line 104 of file hpet.c.

References acpi_address_space_memory, acpi_address::address, acpi_address::address_space, ALLOCATOR_REGION_SLAB_4K, hpet_acpi_table::base_address, hpet_acpi_table::hardware_revision, header, hpet, initialization_ticks, logd, loge, logi, hpet_acpi_table::num_comparators, hpet_acpi_table::pci_vendor_id, ticks_to_ns_multiplier, vm_context_find_free(), vm_context_map(), and VM_KERNEL_CONTEXT.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ sc_handle_clock_read()

void sc_handle_clock_read ( uint64_t nanoseconds)

Definition at line 141 of file hpet.c.

+ Here is the caller graph for this function:

Variable Documentation

◆ _reserved

uint8_t _reserved

Definition at line 23 of file hpet.c.

◆ base_address

struct acpi_address base_address

Definition at line 9 of file hpet.c.

◆ count_size_cap

uint8_t count_size_cap

Definition at line 22 of file hpet.c.

◆ counter_clk_period

uint64_t counter_clk_period

Definition at line 28 of file hpet.c.

◆ hardware_revision

uint8_t hardware_revision

Definition at line 2 of file hpet.c.

◆ header

struct acpi_table_header header

Definition at line 0 of file hpet.c.

◆ hpet

struct hpet_mmio* hpet
static

Definition at line 99 of file hpet.c.

◆ hpet_number

uint8_t hpet_number

Definition at line 10 of file hpet.c.

◆ initialization_ticks

uint64_t initialization_ticks = 0
static

Definition at line 101 of file hpet.c.

◆ leg_route_cap

uint64_t leg_route_cap

Definition at line 24 of file hpet.c.

◆ legacy_replacement_irq_cap

uint8_t legacy_replacement_irq_cap

Definition at line 6 of file hpet.c.

◆ main_counter_minimum_clock_tick

uint16_t main_counter_minimum_clock_tick

Definition at line 11 of file hpet.c.

◆ num_comparators

uint8_t num_comparators

Definition at line 3 of file hpet.c.

◆ num_tim_cap

uint64_t num_tim_cap

Definition at line 21 of file hpet.c.

◆ oem

uint8_t oem

Definition at line 14 of file hpet.c.

◆ page_protection

uint8_t page_protection

Definition at line 13 of file hpet.c.

◆ pci_vendor_id

uint16_t pci_vendor_id

Definition at line 7 of file hpet.c.

◆ rev_id

uint64_t rev_id

Definition at line 19 of file hpet.c.

◆ ticks_to_ns_multiplier

uint16_t ticks_to_ns_multiplier = 1
static

Definition at line 102 of file hpet.c.

◆ vendor_id

uint64_t vendor_id

Definition at line 26 of file hpet.c.