XenevaOS
Loading...
Searching...
No Matches
Classes | Macros | Functions | Variables
main.cpp File Reference
#include <aurora.h>
#include <aucon.h>
#include <pcie.h>
#include "virtio.h"
#include <Mm/pmmngr.h>
#include <Mm/vmmngr.h>
#include <Hal/AA64/aa64lowlevel.h>
#include <string.h>
Include dependency graph for main.cpp:

Classes

struct  virtio_notifier_cap
 

Macros

#define OFFSETOF(s, m)   ((size_t)&(((s*)0)->m))
 
#define VIRTQ_DESC_F_NEXT   1
 
#define VIRTQ_DESC_F_WRITE   2
 
#define VIRTIO_GPU_FORMAT_B8G8R8A8_UNORM   1
 
#define GPU_FB_BUFFER   0xFFFFD00000500000
 

Functions

AU_EXTERN AU_EXPORT int AuDriverUnload ()
 
void AuVirtioGPUAllocQueue (virtio_common_config *cfg, uint16_t queueIdx)
 
void VirtioCleanCommandRespPhys ()
 
void VirtioGPUPushCommand (VirtioQueue *vq, void *req, uint32_t reqLen, void *resp, uint32_t rspLen)
 
void VirtioGPUAttachBackingCmd (VirtioQueue *vq, void *req, uint32_t reqLen, void *req2, uint32_t reqLen2, void *resp, uint32_t rspLen)
 
void VirtioNotifyQueue (virtio_common_config *cfg, uint16_t queueIdx)
 
void VirtioGPUPutPixel (uint32_t x, uint32_t y, uint32_t color)
 
void VirtioGPUFillColor (uint32_t width, uint32_t height, uint32_t color)
 
void VirtioGPUCreateFB (virtio_common_config *cfg)
 
void VirtioFillScreen (virtio_common_config *cfg)
 
AU_EXTERN AU_EXPORT int AuDriverMain ()
 

Variables

int controlQSz
 
VirtioQueuecontrolQ
 
volatile uint8_tnotifyBase
 
uint32_t notifyOffMultiplier
 
uint64_tCommandPhys
 
uint64_tResponsePhys
 

Macro Definition Documentation

◆ GPU_FB_BUFFER

#define GPU_FB_BUFFER   0xFFFFD00000500000

◆ OFFSETOF

#define OFFSETOF (   s,
 
)    ((size_t)&(((s*)0)->m))

BSD 2-Clause License

Copyright (c) 2022-2023, Manas Kamal Choudhury All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

◆ VIRTIO_GPU_FORMAT_B8G8R8A8_UNORM

#define VIRTIO_GPU_FORMAT_B8G8R8A8_UNORM   1

◆ VIRTQ_DESC_F_NEXT

#define VIRTQ_DESC_F_NEXT   1

◆ VIRTQ_DESC_F_WRITE

#define VIRTQ_DESC_F_WRITE   2

Function Documentation

◆ AuDriverMain()

AU_EXTERN AU_EXPORT int AuDriverMain ( )

◆ AuDriverUnload()

AU_EXTERN AU_EXPORT int AuDriverUnload ( )

◆ AuVirtioGPUAllocQueue()

void AuVirtioGPUAllocQueue ( virtio_common_config cfg,
uint16_t  queueIdx 
)

◆ VirtioCleanCommandRespPhys()

void VirtioCleanCommandRespPhys ( )

◆ VirtioFillScreen()

void VirtioFillScreen ( virtio_common_config cfg)

◆ VirtioGPUAttachBackingCmd()

void VirtioGPUAttachBackingCmd ( VirtioQueue vq,
void *  req,
uint32_t  reqLen,
void *  req2,
uint32_t  reqLen2,
void *  resp,
uint32_t  rspLen 
)

◆ VirtioGPUCreateFB()

void VirtioGPUCreateFB ( virtio_common_config cfg)

◆ VirtioGPUFillColor()

void VirtioGPUFillColor ( uint32_t  width,
uint32_t  height,
uint32_t  color 
)

◆ VirtioGPUPushCommand()

void VirtioGPUPushCommand ( VirtioQueue vq,
void *  req,
uint32_t  reqLen,
void *  resp,
uint32_t  rspLen 
)

◆ VirtioGPUPutPixel()

void VirtioGPUPutPixel ( uint32_t  x,
uint32_t  y,
uint32_t  color 
)

◆ VirtioNotifyQueue()

void VirtioNotifyQueue ( virtio_common_config cfg,
uint16_t  queueIdx 
)

Variable Documentation

◆ CommandPhys

uint64_t* CommandPhys

◆ controlQ

VirtioQueue* controlQ

◆ controlQSz

int controlQSz

◆ notifyBase

volatile uint8_t* notifyBase

◆ notifyOffMultiplier

uint32_t notifyOffMultiplier

◆ ResponsePhys

uint64_t* ResponsePhys