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
Основные определения ядра