feature (VFS): implemented a general 'vfs_node_delete'
This commit is contained in:
parent
6d102f6520
commit
2105446463
|
@ -59,6 +59,7 @@ void vfs_node_cache_destruct (vfs_node_cache_T* node_cache);
|
||||||
|
|
||||||
vfs_node_T* vfs_node_create (vfs_node_T* parent, string_t name, vfs_node_type_E type, void* specific);
|
vfs_node_T* vfs_node_create (vfs_node_T* parent, string_t name, vfs_node_type_E type, void* specific);
|
||||||
void vfs_node_destruct (vfs_node_T* node);
|
void vfs_node_destruct (vfs_node_T* node);
|
||||||
|
void vfs_node_delete (vfs_node_T* node);
|
||||||
void vfs_node_dump_info (vfs_node_T* node, uint64_t indent);
|
void vfs_node_dump_info (vfs_node_T* node, uint64_t indent);
|
||||||
vfs_node_T* vfs_node_resolve_child (vfs_node_T* node, string_t child_name);
|
vfs_node_T* vfs_node_resolve_child (vfs_node_T* node, string_t child_name);
|
||||||
|
|
||||||
|
|
|
@ -157,6 +157,22 @@ void vfs_node_destruct(vfs_node_T* node) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void vfs_node_delete(vfs_node_T* node) {
|
||||||
|
switch (node->type) {
|
||||||
|
case VFS_NODE_FILE: {
|
||||||
|
vfs_file_delete(node);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case VFS_NODE_DIRECTORY: {
|
||||||
|
vfs_directory_delete(node);
|
||||||
|
}
|
||||||
|
default: {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
vfs_node_T* vfs_node_resolve_child(vfs_node_T* node, string_t child_name) {
|
vfs_node_T* vfs_node_resolve_child(vfs_node_T* node, string_t child_name) {
|
||||||
vfs_node_T* child = node->childs;
|
vfs_node_T* child = node->childs;
|
||||||
while (child != NULL) {
|
while (child != NULL) {
|
||||||
|
|
Loading…
Reference in New Issue