Context:For standard VGA video modes the video memory will be at address 0xA0000 for EGA/VGA video modes and 0xB8000 for CGA and text modes.
I am currently using mode 0x13 to render graphics. I want to make changes to the framebuffer with user-space code. The address of the standard framebuffer (0xA0000) is outside what is accessible to user-space.
1) One option is to add the region (0xA0000 : 0xA0000 + 320x200) to the addresses the user is allowed to access (memory map).
2) Another option is to have the VGA access a framebuffer address specified by the user
My current approach is to make changes to a buffer created in user-space, and then use a system call to copy its contents to the VGA's framebuffer. The context switch and memory copy makes this approach slow. I wish to skip this step, and have the VGA use the user-space buffer for display...(Theoretically, this would mean one system call once to specify the buffer location, instead of a system call and memory copy everytime I want to update the display).



