Null device
This commit is contained in:
parent
9be2f43935
commit
e05515844d
48
kernel/fs/nulldev.c
Normal file
48
kernel/fs/nulldev.c
Normal file
@ -0,0 +1,48 @@
|
||||
/* vim: tabstop=4 shiftwidth=4 noexpandtab
|
||||
* Null Device
|
||||
*/
|
||||
|
||||
#include <system.h>
|
||||
#include <fs.h>
|
||||
|
||||
uint32_t read_null(fs_node_t *node, uint32_t offset, uint32_t size, uint8_t *buffer);
|
||||
uint32_t write_null(fs_node_t *node, uint32_t offset, uint32_t size, uint8_t *buffer);
|
||||
void open_null(fs_node_t *node, uint8_t read, uint8_t write);
|
||||
void close_null(fs_node_t *node);
|
||||
|
||||
uint32_t read_null(fs_node_t *node, uint32_t offset, uint32_t size, uint8_t *buffer) {
|
||||
memset(buffer, 0x00, size);
|
||||
return size;
|
||||
}
|
||||
|
||||
uint32_t write_null(fs_node_t *node, uint32_t offset, uint32_t size, uint8_t *buffer) {
|
||||
return size;
|
||||
}
|
||||
|
||||
void open_null(fs_node_t * node, uint8_t read, uint8_t write) {
|
||||
return;
|
||||
}
|
||||
|
||||
void close_null(fs_node_t * node) {
|
||||
return;
|
||||
}
|
||||
|
||||
fs_node_t * null_device_create() {
|
||||
fs_node_t * fnode = malloc(sizeof(fnode));
|
||||
fnode->inode = 0;
|
||||
fnode->name[0] = 'n';
|
||||
fnode->name[1] = 'u';
|
||||
fnode->name[2] = 'l';
|
||||
fnode->name[3] = 'l';
|
||||
fnode->name[4] = '\0';
|
||||
fnode->uid = 0;
|
||||
fnode->gid = 0;
|
||||
fnode->flags = 0;
|
||||
fnode->read = read_null;
|
||||
fnode->write = write_null;
|
||||
fnode->open = open_null;
|
||||
fnode->close = close_null;
|
||||
fnode->readdir = NULL;
|
||||
fnode->finddir = NULL;
|
||||
return fnode;
|
||||
}
|
@ -45,6 +45,7 @@ struct dirent {
|
||||
};
|
||||
|
||||
extern fs_node_t *fs_root;
|
||||
extern fs_node_t * null_device_create();
|
||||
|
||||
uint32_t read_fs(fs_node_t * node, uint32_t offset, uint32_t size, uint8_t * buffer);
|
||||
uint32_t write_fs(fs_node_t * node, uint32_t offset, uint32_t size, uint8_t * buffer);
|
||||
|
@ -2696,7 +2696,10 @@ int main(int argc, char ** argv) {
|
||||
_use_freetype = 1;
|
||||
break;
|
||||
case 'h':
|
||||
printf("terminal - ansi graphical terminal");
|
||||
printf("terminal - ansi graphical terminal\n");
|
||||
printf(" -f Run with freetype enabled.\n");
|
||||
printf(" -h Print this help text.\n");
|
||||
return 0;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
Loading…
x
Reference in New Issue
Block a user