Voxia OS v0.0.1
Hobby Project Operating System Targeting x86-64
Loading...
Searching...
No Matches
VirtioGpu Class Reference

#include <virtio-gpu.hpp>

Inheritance diagram for VirtioGpu:
IoForgeVirtio IOForge

Public Member Functions

 VirtioGpu ()
 
void load () override
 
void unload () override
 
- Public Member Functions inherited from IoForgeVirtio
 IoForgeVirtio (const char *mod)
 
- Public Member Functions inherited from IOForge
 IOForge (const char *mod)
 

Static Public Member Functions

static VirtioGpugetInstance ()
 

Protected Member Functions

void setup ()
 
int virtio_gpu_send_command (void *cmd, uint32_t cmd_size, void *resp, uint32_t resp_size)
 
int virtio_gpu_get_display_info ()
 
int virtio_gpu_create_resource (uint32_t resource_id, uint32_t width, uint32_t height)
 

Protected Attributes

ioforge_virtio_devicedev_
 
- Protected Attributes inherited from IOForge
const char * mod
 

Private Member Functions

uint16_t virtq_alloc_desc (struct virtio_gpu_queue *vq)
 
void virtq_free_desc (struct virtio_gpu_queue *vq, uint16_t desc_idx)
 
void virtq_init (struct virtio_gpu_queue *vq, void *vq_mem, uint16_t queue_size, uintptr_t phys_addr)
 
int virtq_add_buf (struct virtio_gpu_queue *vq, void **buffers, uint32_t *lengths, uint16_t num_out, uint16_t num_in, uint16_t *head_out)
 
void virtq_kick (uint16_t queue_index)
 
int virtq_get_used_elem (struct virtio_gpu_queue *vq, uint16_t *id, uint32_t *len)
 

Static Private Member Functions

static void fireHandler ()
 

Private Attributes

bool initialized_
 
uintptr_t notify_offset_
 
uint32_t notify_multiplier_
 
uintptr_t notify_base_
 

Static Private Attributes

static struct virtio_gpu_queue control_queue_ = {0}
 

Detailed Description

Definition at line 7 of file virtio-gpu.hpp.

Constructor & Destructor Documentation

◆ VirtioGpu()

VirtioGpu::VirtioGpu ( )

Definition at line 8 of file init.cpp.

References IoForgeVirtio::IoForgeVirtio().

Referenced by getInstance().

Member Function Documentation

◆ fireHandler()

void VirtioGpu::fireHandler ( )
staticprivate

Definition at line 230 of file virtio-gpu.cpp.

References getInstance(), instance, and interrupt_exist.

Referenced by setup().

◆ getInstance()

VirtioGpu * VirtioGpu::getInstance ( )
static

Definition at line 11 of file init.cpp.

References instance, and VirtioGpu().

Referenced by fireHandler().

◆ load()

void VirtioGpu::load ( )
overridevirtual

Reimplemented from IoForgeVirtio.

Definition at line 18 of file init.cpp.

References dev_, find_virtio_device_by_id(), log, IOForge::mod, and setup().

◆ setup()

◆ unload()

void VirtioGpu::unload ( )
overridevirtual

Reimplemented from IoForgeVirtio.

Definition at line 15 of file init.cpp.

◆ virtio_gpu_create_resource()

int VirtioGpu::virtio_gpu_create_resource ( uint32_t resource_id,
uint32_t width,
uint32_t height )
protected

◆ virtio_gpu_get_display_info()

◆ virtio_gpu_send_command()

int VirtioGpu::virtio_gpu_send_command ( void * cmd,
uint32_t cmd_size,
void * resp,
uint32_t resp_size )
protected

◆ virtq_add_buf()

int VirtioGpu::virtq_add_buf ( struct virtio_gpu_queue * vq,
void ** buffers,
uint32_t * lengths,
uint16_t num_out,
uint16_t num_in,
uint16_t * head_out )
private

◆ virtq_alloc_desc()

◆ virtq_free_desc()

void VirtioGpu::virtq_free_desc ( struct virtio_gpu_queue * vq,
uint16_t desc_idx )
private

◆ virtq_get_used_elem()

int VirtioGpu::virtq_get_used_elem ( struct virtio_gpu_queue * vq,
uint16_t * id,
uint32_t * len )
private

◆ virtq_init()

◆ virtq_kick()

void VirtioGpu::virtq_kick ( uint16_t queue_index)
private

Definition at line 383 of file virtio-gpu.cpp.

References log, IOForge::mod, notify_base_, notify_multiplier_, and notify_offset_.

Referenced by virtio_gpu_send_command().

Field Documentation

◆ control_queue_

struct virtio_gpu_queue VirtioGpu::control_queue_ = {0}
staticprivate

Definition at line 19 of file virtio-gpu.hpp.

Referenced by setup(), and virtio_gpu_send_command().

◆ dev_

ioforge_virtio_device* VirtioGpu::dev_
protected

Definition at line 16 of file virtio-gpu.hpp.

Referenced by load(), and setup().

◆ initialized_

bool VirtioGpu::initialized_
private

Definition at line 35 of file virtio-gpu.hpp.

◆ notify_base_

uintptr_t VirtioGpu::notify_base_
private

Definition at line 38 of file virtio-gpu.hpp.

Referenced by setup(), and virtq_kick().

◆ notify_multiplier_

uint32_t VirtioGpu::notify_multiplier_
private

Definition at line 37 of file virtio-gpu.hpp.

Referenced by setup(), and virtq_kick().

◆ notify_offset_

uintptr_t VirtioGpu::notify_offset_
private

Definition at line 36 of file virtio-gpu.hpp.

Referenced by setup(), and virtq_kick().


The documentation for this class was generated from the following files: