diff options
| author | Miguel <m.i@gmx.at> | 2018-10-04 00:53:30 +0200 |
|---|---|---|
| committer | Miguel <m.i@gmx.at> | 2018-10-04 00:53:30 +0200 |
| commit | ce16fe524c14ccaae67fb634105da5aef08ead48 (patch) | |
| tree | 03990f29389bd4c55f40b804b809c7060c24c739 /kernel/vmem.c | |
| parent | a455cd5af26bf8731e7c981a9421b16ab34dae6f (diff) | |
moving framebuffer access completely to userspace
Diffstat (limited to 'kernel/vmem.c')
| -rw-r--r-- | kernel/vmem.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/kernel/vmem.c b/kernel/vmem.c index d99f6fd..a388535 100644 --- a/kernel/vmem.c +++ b/kernel/vmem.c @@ -346,7 +346,7 @@ pdirectory* vmem_kernel_dir() vmem_add_identity(dir,VMEM_KERNEL,VMEM_KERNEL_PAGES,false);//identity map first 32 megs... vmem_add_identity(dir,e1000_addr,32,false);//identity map 32 pages for e1000 - vmem_add_remap(dir,fb_addr,VMEM_FRAMEBUFFER,VMEM_FRAMEBUFFER_PAGES,false);//32megs should be enough for 4k (think about pitch) + vmem_add_remap(dir,fb_addr,VMEM_FRAMEBUFFER,VMEM_FRAMEBUFFER_PAGES,true);//32megs should be enough for 4k (think about pitch) vmem_add_remap(dir,local_apic_addr,VMEM_LAPIC,1,false); //apic addr should be at pagestart, right? TODO: check. vmem_add_remap(dir,io_apic_addr,VMEM_IOAPIC,1,false); @@ -359,17 +359,22 @@ pdirectory* vmem_kernel_dir() vmem_add_alloc(dir,VMEM_USER_ENV,1,true); vmem_add_alloc(dir,VMEM_USER_NEWLIB,1,true); vmem_add_alloc(dir,VMEM_USER_STACK_TOP-4096*VMEM_USER_STACK_PAGES,VMEM_USER_STACK_PAGES,true); - vmem_add_alloc(dir,VMEM_USER_FRAMEBUFFER,VMEM_USER_FRAMEBUFFER_PAGES,true); /// each new process gets a 640x480x32 area +// vmem_add_alloc(dir,VMEM_USER_FRAMEBUFFER,VMEM_USER_FRAMEBUFFER_PAGES,true); /// each new process gets a 640x480x32 area return dir; } void vmem_add_framebuffer(pdirectory *dir) { - vmem_del_generic(dir,VMEM_USER_FRAMEBUFFER,VMEM_USER_FRAMEBUFFER_PAGES,false, true); + //vmem_del_generic(dir,VMEM_USER_FRAMEBUFFER,VMEM_USER_FRAMEBUFFER_PAGES,false, true); vmem_add_alloc(dir, VMEM_USER_FRAMEBUFFER,VMEM_USER_FRAMEBUFFER_PAGES,true); /// each new process gets a 640x480x32 area } +void vmem_add_total_framebuffer(pdirectory *dir) +{ + vmem_add_remap(dir,fb_addr,VMEM_FRAMEBUFFER,VMEM_FRAMEBUFFER_PAGES,true);//32megs should be enough for 4k (think about pitch) +} + void vmem_free_space_dir(pdirectory *dir,bool stack_only) { |
