add initrd_write

This commit is contained in:
Marian Ohligs 2011-04-20 23:14:15 +02:00
parent faa41e25e2
commit e2ae62af2b
2 changed files with 16 additions and 0 deletions

1
.gitignore vendored
View file

@ -7,6 +7,7 @@
*.img
*.a
*.log
*.swp
*.DS_Store
tags
include/metalsvm/config.h

View file

@ -90,6 +90,20 @@ static ssize_t initrd_read(vfs_node_t* node, uint8_t* buffer, size_t size, off_t
return size;
}
static ssize_t initrd_write(vfs_node_t* node, uint8_t* buffer, size_t size, off_t offset)
{
block_list_t* blist = &node->block_list;
char* data = (char*) blist->data[0];
//////////ACHTUNG keine Überprüfung der Blcoklängen etc.
memcpy(data, buffer, size);
return size;
}
static dirent_t* initrd_readdir(vfs_node_t* node, uint32_t index)
{
uint32_t i, j, count;
@ -302,6 +316,7 @@ int initrd_init(void)
memset(new_node, 0x00, sizeof(vfs_node_t));
new_node->type = FS_FILE;
new_node->read = initrd_read;
new_node->write = initrd_write;
new_node->block_size = file_desc->length;
new_node->block_list.data[0] = ((char*) header) + file_desc->offset;
spinlock_init(&new_node->lock);