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