diff options
author | Alex AUVOLAT <alexis211@gmail.com> | 2013-07-11 22:38:20 +0200 |
---|---|---|
committer | Alex AUVOLAT <alexis211@gmail.com> | 2013-07-11 22:38:20 +0200 |
commit | d2aebee488b71e6f28b8728e7473b63f412ca897 (patch) | |
tree | fbe432590bfcf0b77b189a3db99762fb4f104f39 /doc/vfs.txt | |
parent | 78d7ffce4861dea5624ff29ceb39f1643dff8235 (diff) | |
download | TCE-d2aebee488b71e6f28b8728e7473b63f412ca897.tar.gz TCE-d2aebee488b71e6f28b8728e7473b63f412ca897.zip |
Added direct acces to video memory from userland.std_c_userland
Next : same for keyboard ; move VT handling to userland.
Consequence : a foreground app has total control over I/O.
Next : implement sockets & a userland console multiplexer.
Diffstat (limited to 'doc/vfs.txt')
-rw-r--r-- | doc/vfs.txt | 30 |
1 files changed, 28 insertions, 2 deletions
diff --git a/doc/vfs.txt b/doc/vfs.txt index 680df73..7902148 100644 --- a/doc/vfs.txt +++ b/doc/vfs.txt @@ -20,6 +20,7 @@ The following syscall interface is given to the process (fd_t is a file descript - int read(fd_t file, size_t offset, size_t len, char *buffer) - int write(fd_t file, size_t offset, size_t len, char *buffer) - int link(char *from, char *to, int mode) +- int dev_control(fd_t file, char *data) struct file_info { int type @@ -58,5 +59,30 @@ File type flags : Device types : - DT_BLOCK -- DT_KEYBOARD -- DT_DISPLAY +- DT_PCKBD +- DT_VGATXT +- DT_VESAFB + + +Examples : + +- Standard file : + type : FT_FILE + size : file length +- Standard dir : + type : FT_DIR + size : number of entries +- A display adapter + type : FT_DEV + dev_type : DT_VGATXT + capabilities : read/write at given offset, mmap + size : width << 16 + height + content format : (raw) 16 bit for each character (attribute & text) +- A keyboard + type : FT_DEV + dev_type : DT_PCKBD + capabilities : read from a (FIFO) buffer, offset is ignored + size : unused (zero) + content format : read 16-bit keycodes from IBM-PC keyboard format + + |