From 70de44032682b1ac4f32c08d710566db7349e4dc Mon Sep 17 00:00:00 2001 From: "Chloe M." Date: Sun, 12 Jul 2026 02:06:07 +0000 Subject: [PATCH] ptos: mm: Add virtual address descriptor defs Signed-off-by: Chloe M. --- service/ptos/head/mm/vad.h | 40 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 service/ptos/head/mm/vad.h diff --git a/service/ptos/head/mm/vad.h b/service/ptos/head/mm/vad.h new file mode 100644 index 0000000..060f433 --- /dev/null +++ b/service/ptos/head/mm/vad.h @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2026, Chloe M. + * Provided under the BSD-3 clause. + * + * Description: Virtual address descriptor management + * Author: Chloe M. + */ + +#ifndef _MM_VAD_H_ +#define _MM_VAD_H_ 1 + +#include +#include +#include + +/* + * A virtual address descriptor represents a single page + * of memory that can be allocated. + * + * @Range: Virtual memory range this covers + * @TreeLink: Red-black tree link + */ +typedef struct _MM_VAD { + MM_RANGE Range; + RB_ENTRY(_MM_VAD) TreeLink; +} MM_VAD; + +/* + * A virtual address descriptor tree lists a collection + * of virtual address descriptors in an ordered manner. + * + * @Head: Head of the red-black tree + * @Elements Number of elements in red-black tree + */ +typedef struct { + RB_HEAD(VadTree, _MM_VAD) Head; + USIZE Elements; +} MM_VAD_TREE; + +#endif /* !_MM_VAD_H_ */