WKern
Loading...
Searching...
No Matches
scconfig.c File Reference
#include <global.h>
#include <io/kio.h>

Go to the source code of this file.

Macros

#define PCI_CONFIG_ADDRESS   0xCF8
#define PCI_CONFIG_DATA   0xCFC
#define VIRTIO_REG(offset)

Functions

u32 PciConfigRead (u8 bus, u8 slot, u8 func, u8 offset)
 Reads a 32-bit value from PCI configuration space.
u32 FindVirtionetDev ()
 Search for VirtNet Device.

Variables

u8 virtio_irq = 0
u8 virtio_bus = 0
u8 virtio_slot = 0
u8 virtio_func = 0
u32 bar0 = 0

Macro Definition Documentation

◆ PCI_CONFIG_ADDRESS

#define PCI_CONFIG_ADDRESS   0xCF8

Definition at line 18 of file scconfig.c.

◆ PCI_CONFIG_DATA

#define PCI_CONFIG_DATA   0xCFC

Definition at line 19 of file scconfig.c.

◆ VIRTIO_REG

#define VIRTIO_REG ( offset)
Value:
(iob + (offset))
u32 iob
Definition main.c:36

Definition at line 20 of file scconfig.c.

Function Documentation

◆ FindVirtionetDev()

u32 FindVirtionetDev ( )

Search for VirtNet Device.

Returns
NULL

Definition at line 59 of file scconfig.c.

◆ PciConfigRead()

u32 PciConfigRead ( u8 bus,
u8 slot,
u8 func,
u8 offset )

Reads a 32-bit value from PCI configuration space.

This function constructs a configuration address based on the given PCI bus, slot (device), function, and offset, and reads the corresponding 32-bit value from the PCI configuration space using I/O ports.

The offset must be aligned to a 4-byte boundary (i.e., bits 1 and 0 are masked out).

Parameters
busPCI bus number (0–255).
slotPCI device number (0–31).
funcPCI function number (0–7).
offsetOffset into the configuration space (must be 4-byte aligned).
Returns
32-bit value read from the PCI configuration register.

Definition at line 48 of file scconfig.c.

Variable Documentation

◆ bar0

u32 bar0 = 0

Definition at line 30 of file scconfig.c.

◆ virtio_bus

u8 virtio_bus = 0

Definition at line 26 of file scconfig.c.

◆ virtio_func

u8 virtio_func = 0

Definition at line 28 of file scconfig.c.

◆ virtio_irq

u8 virtio_irq = 0

Definition at line 25 of file scconfig.c.

◆ virtio_slot

u8 virtio_slot = 0

Definition at line 27 of file scconfig.c.