SayoriOS 0.3.3

virtio_network.h
1 #ifndef SAYORI_VIRTIO_NETWORK_H
2
3 #pragma once
4
5 #include <common.h>
6
7 #define VIO_NET_VENDOR 0x1AF4
8 #define VIO_NET_DEVICE 0x1000
9
10 enum VIO_NAT_IOREGS {
11 VIO_NAT_IDR_DF = 0x00, // Особенности устройства
12 VIO_NAT_IDR_GF = 0x04, // Возможности для гостевой ОС
13 VIO_NAT_IDR_QA = 0x08, // Адрес очереди
14 VIO_NAT_IDR_QL = 0x0C, // Размер очереди
15 VIO_NAT_IDR_QS = 0x0E, // Выбор очереди
16 VIO_NAT_IDR_QN = 0x10, // Уведомление об очереди
17 VIO_NAT_IDR_DS = 0x12, // Состояние устройства
18 VIO_NAT_IDR_IS = 0x13, // Статус ISR
19 };
20
21 enum VIO_NAT_NDREGS {
22 VIO_NAT_NDR_MAC1P = 0x14, // MAC-адрес (0-4) 1я часть
23 VIO_NAT_NDR_MAC2P = 0x18, // MAC-адрес (5-6) 2я часть
24 VIO_NAT_NDR_STATUS = 0x1A // Статус
25 };
26
27 enum VIO_NAT_BDREGS {
28 VIO_NAT_BDR_TSC = 0x14, // Общее количество секторов
29 VIO_NAT_BDR_MSS = 0x1C, // Максимальный размер сегмента
30 VIO_NAT_BDR_MSC = 0x20, // Максимальное количество сегментов
31 VIO_NAT_BDR_CC = 0x24, // Число цилиндров
32 VIO_NAT_BDR_HC = 0x26, // Подсчет голов
33 VIO_NAT_BDR_SC = 0x27, // Количество секторов
34 VIO_NAT_BDR_BL = 0x28 // Длина блока
35 };
36
37 #define SAYORI_VIRTIO_NETWORK_H
38
39 #endif //SAYORI_VIRTIO_NETWORK_H
common.h
Основные определения ядра