summaryrefslogtreecommitdiff
path: root/kc/core/vm_object.h
blob: d1de14546cc770233679a045db9211f53695b26c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#pragma once

typedef int (*vm_object_handler_func)(uint32_t code, void *address);

enum vm_object_type
{
    NULL_VM_OBJECT, // a non-object. shouldn't even exist. an abomination unto man and god
    DIRECT_VM_OBJECT, // a 1:1 physical-to-virtual mapping
    TRANSLATION_VM_OBJECT, // a mapping between a physical and virtual address range
    ANONYMOUS_VM_OBJECT, // a mapping that has no definite physical location
    KC_IMAGE_VM_OBJECT, // a kernel component image
    KC_HEAP_VM_OBJECT, // a kernel component heap
    // TODO: more to come
};

struct vm_object
{
    enum vm_object_type type;
    vm_object_handler_func handler;
};