NeKernel
dev
Loading...
Searching...
No Matches
PRDT.h
Go to the documentation of this file.
1
/* ========================================
2
3
Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license.
4
5
======================================== */
6
7
#pragma once
8
9
#include <
KernelKit/PCI/DMA.h
>
10
#include <
KernelKit/PCI/Iterator.h
>
11
#include <
NeKit/Ref.h
>
12
13
#define kPrdtTransferSize (sizeof(Kernel::UShort))
14
15
namespace
Kernel
{
17
enum
{
18
kPRDTTransferInProgress
,
19
kPRDTTransferIsDone
,
20
kPRDTTransferCount
,
21
};
22
24
struct
PRDT
final {
25
UInt32
fPhysAddress
;
26
UInt32
fSectorCount
;
27
UInt8
fEndBit
;
28
};
29
30
void
construct_prdt
(
Ref<PRDT>
& prd);
31
32
EXTERN_C
Int32
kPRDTTransferStatus
;
33
}
// namespace Kernel
DMA.h
EXTERN_C
#define EXTERN_C
Iterator.h
Kernel::Ref
Reference wrapper class. /// =========================================================== ///.
Definition
Ref.h:22
Kernel
UPS inline definitions.
Definition
Device.h:12
Kernel::kPRDTTransferIsDone
@ kPRDTTransferIsDone
Definition
PRDT.h:19
Kernel::kPRDTTransferInProgress
@ kPRDTTransferInProgress
Definition
PRDT.h:18
Kernel::kPRDTTransferCount
@ kPRDTTransferCount
Definition
PRDT.h:20
Kernel::construct_prdt
void construct_prdt(Ref< PRDT > &prd)
constructs a new PRD.
Definition
PRDT.cc:17
Kernel::UInt8
__UINT8_TYPE__ UInt8
Definition
Config.h:55
Kernel::UInt32
__UINT32_TYPE__ UInt32
Definition
Config.h:44
Kernel::Int32
__INT32_TYPE__ Int32
Definition
Config.h:38
Kernel::kPRDTTransferStatus
EXTERN_C Int32 kPRDTTransferStatus
Definition
PRDT.h:32
Ref.h
Kernel::PRDT
Physical Region Descriptor Table.
Definition
PRDT.h:24
Kernel::PRDT::fSectorCount
UInt32 fSectorCount
Definition
PRDT.h:26
Kernel::PRDT::fEndBit
UInt8 fEndBit
Definition
PRDT.h:27
Kernel::PRDT::fPhysAddress
UInt32 fPhysAddress
Definition
PRDT.h:25
src
kernel
StorageKit
PRDT.h
Generated by
1.15.0