|
| struct _virtio_net_hdr_ | __attribute__ ((packed)) virtio_net_hdr_t |
| |
| AU_EXTERN AU_EXPORT bool | AuVirtioPCIInit (uint64_t address, int bus, int dev, int func, uint32_t wantedFeaturesLow, struct VirtioPCIDevice *out) |
| | AuVirtioPCIInit – walks the PCI capability list of a modern virtio-pci device, maps its common/notify/isr/device config BARs, resets it and negotiates VIRTIO_F_VERSION_1 plus wantedFeaturesLow (bits 0-31).
|
| |
| AU_EXTERN AU_EXPORT uint16_t | AuVirtioPCISetupQueue (struct VirtioPCIDevice *dev, uint16_t qidx, struct VirtqDesc **outDesc, struct VirtqAvailHdr **outAvail, struct VirtqUsedHdr **outUsed, uint16_t msixVector) |
| | AuVirtioPCISetupQueue – selects queue qidx, allocates desc/avail/used rings sized to the device-reported queue size and enables the queue.
|
| |
| AU_EXTERN AU_EXPORT void | AuVirtioPCINotifyQueue (struct VirtioPCIDevice *dev, uint16_t qidx) |
| | AuVirtioPCINotifyQueue – kicks the device for queue qidx.
|
| |
| AU_EXTERN AU_EXPORT void | AuVirtioPCIPostAvail (struct VirtqDesc *desc, struct VirtqAvailHdr *avail, uint16_t qsize, uint64_t bufPhys, uint32_t bufSize, uint16_t nbuf, uint16_t flags) |
| |
| void | AuVirtioBlkInitialize (uint64_t device, int bus, int dev, int func) |
| | AuVirtioBlkInitialize – initialize the virtio block device.
|
| |
| void | AuVirtioKbdInitialize (uint64_t device, int bus, int dev, int func) |
| | AuVirtioKbdInitialize – initialize the virtio keyboard.
|
| |
| void | AuVirtioTabletInitialize (uint64_t device, int bus, int dev, int func) |
| | AuVirtioTabletInitialize – initialize virtio tablet.
|
| |
| void | AuVirtioKbdDown () |
| |
| void | AuVirtioTabletDown () |
| |
| void | AuVirtioNetInitialize (uint64_t device) |
| | AuVirtioNetInitialize – initialize the virtio network device.
|
| |
BSD 2-Clause License
Copyright (c) 2022-2025, 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:
- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- 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.
BSD 2-Clause License
Copyright (c) 2022-2025, 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:
- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- 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.
is_power_of_2() - check if a value is a power of two
: the value to check
Determine whether some value is a power of two, where zero is not considered a power of two. Return: true if
is a power of 2, otherwise false.
__roundup_pow_of_two() - round up to nearest power of two
: value to round up
__rounddown_pow_of_two() - round down to nearest power of two
: value to round down
max_pow_of_two_factor - return highest power-of-2 factor
: parameter
find highest power-of-2 which is evenly divisible into n. 0 is returned for n == 0 or 1.