Beiträge anzeigen

Diese Sektion erlaubt es dir alle Beiträge dieses Mitglieds zu sehen. Beachte, dass du nur solche Beiträge sehen kannst, zu denen du auch Zugriffsrechte hast.


Themen - Tectu

Seiten: [1]
1
tyndur / typedefs für paddr_t und vaddr_t
« am: 14. November 2013, 00:06 »
Aus der source vom tyndur kernel:
typedef uint64_t uintptr_t;

typedef uintptr_t paddr_t;
typedef void*      vaddr_t;
Wie kommts dass vaddr_t ein Pointer ist und paddr_t nicht? Was steckt dahinter?


~ Tectu
2
tyndur / Frage zu VMM
« am: 12. November 2013, 22:48 »
Nabend,

Ich unternehme zur Zeit den Versuch, paging in meinen Kernel zu implementieren. Hierzu habe ich neben den Wiki-Artikeln auch etwas im tyndur Code rumgeschnüffelt. Hier ist mir folgendes aufgefallen:
file: /src/kernel2/src/arch/i386/mm/mm_context.c

mmc_context_t mmc_create_empty()
{
    // Das Page Directory initialisieren
    paddr_t phys_page_directory = pmm_alloc(1);
    mmc_context_t context;
    context.version = 0xFFFFFFFF;
    context.lock = LOCK_UNLOCKED;
    context.page_directory = phys_page_directory;
    context.page_directory_virt = vmm_kernel_automap(
        context.page_directory, PAGE_SIZE);

    memset(context.page_directory_virt, 0, PAGE_SIZE);

    return context;
}
Wieso wird context.page_directory_virt erst auf den Rückgabewert von vmm_kernel_automap() gesetzt, wenn es anschliessend per memset() auf null initialisiert wird?

Ich verstehe zur Zeit sowieso noch nicht ganz, wieso die virtuelle Adresse des page directories von interesse ist?


~ Tectu
Seiten: [1]

Einloggen