mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-22 06:57:51 +00:00
parent
67c1ca1e61
commit
75917f6595
@ -364,7 +364,7 @@ namespace File_vault {
|
|||||||
xml.node("policy", [&] () {
|
xml.node("policy", [&] () {
|
||||||
xml.attribute("label", "sync_to_cbe_vfs_init -> ");
|
xml.attribute("label", "sync_to_cbe_vfs_init -> ");
|
||||||
xml.attribute("root", "/dev");
|
xml.attribute("root", "/dev");
|
||||||
xml.attribute("writeable", "no");
|
xml.attribute("writeable", "yes");
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
xml.node("route", [&] () {
|
xml.node("route", [&] () {
|
||||||
|
@ -11,29 +11,40 @@
|
|||||||
* under the terms of the GNU Affero General Public License version 3.
|
* under the terms of the GNU Affero General Public License version 3.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* libC includes */
|
|
||||||
extern "C" {
|
|
||||||
#pragma GCC diagnostic push
|
|
||||||
#pragma GCC diagnostic ignored "-Wconversion"
|
|
||||||
#include <fcntl.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
#pragma GCC diagnostic pop /* restore -Wconversion warnings */
|
|
||||||
}
|
|
||||||
|
|
||||||
int main(int, char **)
|
/* Genode includes */
|
||||||
|
#include <base/attached_rom_dataspace.h>
|
||||||
|
#include <base/component.h>
|
||||||
|
#include <base/heap.h>
|
||||||
|
#include <os/vfs.h>
|
||||||
|
|
||||||
|
using namespace Genode;
|
||||||
|
|
||||||
|
struct Main : private Vfs::Env::User
|
||||||
{
|
{
|
||||||
char const *file_path { "/cbe/cbe/current/data" };
|
Env &_env;
|
||||||
int const file_descriptor = open(file_path, O_RDONLY);
|
Heap _heap { _env.ram(), _env.rm() };
|
||||||
if (file_descriptor < 0) {
|
Attached_rom_dataspace _config_rom { _env, "config" };
|
||||||
printf("Error: failed to open file %s\n", file_path);
|
|
||||||
exit(-1);
|
Vfs::Simple_env _vfs_env { _env, _heap,
|
||||||
|
_config_rom.xml().sub_node("vfs"), *this };
|
||||||
|
|
||||||
|
Directory _root_dir { _vfs_env };
|
||||||
|
|
||||||
|
void wakeup_vfs_user() override { }
|
||||||
|
|
||||||
|
Main(Env &env) : _env { env }
|
||||||
|
{
|
||||||
|
{
|
||||||
|
Append_file { _root_dir,
|
||||||
|
Directory::Path("/cbe/cbe/current/data") };
|
||||||
|
}
|
||||||
|
_env.parent().exit(0);
|
||||||
}
|
}
|
||||||
int const result { fsync(file_descriptor) };
|
};
|
||||||
if (result != 0) {
|
|
||||||
printf("Error: fsync on file %s failed\n", file_path);
|
|
||||||
exit(-1);
|
void Component::construct(Env &env)
|
||||||
}
|
{
|
||||||
exit(0);
|
static Main main(env);
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
TARGET = file_vault-sync_to_cbe_vfs_init
|
TARGET = file_vault-sync_to_cbe_vfs_init
|
||||||
LIBS = posix
|
LIBS = base vfs
|
||||||
SRC_CC = main.cc
|
SRC_CC = main.cc
|
||||||
|
Loading…
Reference in New Issue
Block a user