summaryrefslogtreecommitdiffhomepage
path: root/dev/kernel/KernelKit/PCI/Database.h
blob: cb12a731833006ed0a7a9e41bdffe5652d8bdc96 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
/* -------------------------------------------

	Copyright (C) 2024-2025, Amlal EL Mahrouss, all rights reserved.

------------------------------------------- */
#pragma once

#include <KernelKit/PCI/Device.h>
#include <NewKit/Defines.h>

namespace NeOS
{
	namespace Types
	{
		// https://wiki.osdev.org/PCI
		enum class PciDeviceKind : UChar
		{
			MassStorageController			  = 0x1,
			NetworkController				  = 0x2,
			DisplayController				  = 0x3,
			MultimediaController			  = 0x4,
			MemoryController				  = 0x5,
			Bridge							  = 0x6,
			CommunicationController			  = 0x7,
			GenericSystemPeripheral			  = 0x8,
			InputDeviceController			  = 0x9,
			DockingStation					  = 0xa,
			Processor						  = 0xb,
			SerialBusController				  = 0xc,
			WirelessController				  = 0xd,
			IntelligentController			  = 0xe,
			SatelliteCommunicationsController = 0xf,
			CoProcessor						  = 0x40,
			Unassgined						  = 0xf,
			Invalid							  = Unassgined,
		};
	} // namespace Types
} // namespace NeOS

inline BOOL operator!=(const NeOS::Types::PciDeviceKind& lhs, NeOS::UChar rhs)
{
	return rhs != (NeOS::UChar)lhs;
}

inline BOOL operator==(const NeOS::Types::PciDeviceKind& lhs, NeOS::UChar rhs)
{
	return rhs == (NeOS::UChar)lhs;
}

inline BOOL operator!=(NeOS::UChar lhs, const NeOS::Types::PciDeviceKind& rhs)
{
	return lhs != (NeOS::UChar)rhs;
}

inline BOOL operator==(NeOS::UChar lhs, const NeOS::Types::PciDeviceKind& rhs)
{
	return lhs == (NeOS::UChar)rhs;
}