Hi,
I am trying to port an existing native file-system(ext2) to Genode. So, I
started porting this in the same place as rump_ext2 so that this can be set
up fast to get quick running of the code. I designed it so as to call our
native implementation calls instead of rump calls. To get the block
sessions working and basic ext2 functionalities checking, I did quick code
work to get it up and running. Sorry didn't follow the
Genode specifications in coding. I want get suggestions & feedback's on
this design and then I will align code to Genode specifications and move
further. I am attaching the patch file. And I will list out major things I
did in this work to give an overview.
1. It contains totally 3 parts. one which has all Genode related code which
used to deal with rump also and handle registry things, so I kept this one
as is so as to utilize it again. Second part File-system interface which
serves as an abstraction of all the extended file-system
types(ext2,ext3,ext4). Third part ext2 this contains the implementation of
ext2.
2. All the calls previously to rump will be replaced by this new ext2
implementation.
3. Till now I could get it up running. In this, I linked creating directory
or file code, remove a directory, listing of directory entries works. This
you can see in main.cc file comments where this gets called.
4. Since I used ram data space the changes I did to the ext2.raw are not
persistent. So I removed 3 lines in rump_ext2.run which create ext2.raw
file again and again when this demo is run and instead I made it
persistent. And I created some directories before hand in this.
5. For mounting it and checking contents use :: $ sudo mount -t ext2 -o
loop,rw ./build.lx/bin/ext2.raw /mnt/ext2/
6 For checking ext2 structure from outside use :: $ dumpe2fs
build.lx/bin/ext2.raw
Entire development is done running Genode on linux. For compiling and
running ext2 use :: make -C build.lx/ run/rump_ext2
Thanks & regards,
Janan