mirror of
https://github.com/genodelabs/genode.git
synced 2025-03-22 20:15:20 +00:00
parent
c8e4d2715b
commit
a1b1525ec1
@ -31,7 +31,8 @@ install_config {
|
||||
<default-route>
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</default-route>
|
||||
<start name="lx_fs">
|
||||
<default caps="100"/>
|
||||
<start name="lx_fs" caps="200">
|
||||
<resource name="RAM" quantum="4M"/>
|
||||
<provides> <service name="File_system"/> </provides>
|
||||
<config> <policy label_prefix="test-libc_vfs" root="/libc_vfs" writeable="yes" /> </config>
|
||||
@ -39,12 +40,11 @@ install_config {
|
||||
<start name="test-libc_vfs">
|
||||
<resource name="RAM" quantum="2M"/>
|
||||
<config>
|
||||
<libc stdout="/dev/log">
|
||||
<vfs>
|
||||
<fs />
|
||||
<dir name="dev"> <log/> </dir>
|
||||
</vfs>
|
||||
</libc>
|
||||
<vfs>
|
||||
<fs />
|
||||
<dir name="dev"> <log/> </dir>
|
||||
</vfs>
|
||||
<libc stdout="/dev/log"/>
|
||||
</config>
|
||||
</start>
|
||||
</config>
|
||||
|
@ -120,7 +120,7 @@ static void test(Genode::Xml_node node)
|
||||
CALL_AND_CHECK(ret, mkdir(dir_name, 0777), ((ret == 0) || (errno == EEXIST)), "dir_name=%s", dir_name);
|
||||
|
||||
/* try to create again */
|
||||
CALL_AND_CHECK(ret, mkdir(dir_name, 0777), ((ret == 0) || (errno == EEXIST)), "dir_name=%s", dir_name);
|
||||
CALL_AND_CHECK(ret, mkdir(dir_name, 0777), (errno == EEXIST), "dir_name=%s", dir_name);
|
||||
|
||||
/* change to new directory */
|
||||
CALL_AND_CHECK(ret, chdir(dir_name), ret == 0, "dir_name=%s", dir_name);
|
||||
|
@ -42,8 +42,16 @@ class File_system::Directory : public Node
|
||||
if (create) {
|
||||
mode_t ugo = S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH;
|
||||
ret = mkdir(path, ugo);
|
||||
if (ret == -1)
|
||||
throw No_space();
|
||||
if (ret == -1) {
|
||||
switch (errno) {
|
||||
case ENAMETOOLONG: throw Name_too_long();
|
||||
case EACCES: throw Permission_denied();
|
||||
case ENOENT: throw Lookup_failed();
|
||||
case EEXIST: throw Node_already_exists();
|
||||
case ENOSPC:
|
||||
default: throw No_space();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
struct stat s;
|
||||
|
Loading…
x
Reference in New Issue
Block a user