The source code is available in `src` directory: * `main.c` - main function. * `cc.h` - Convenient Containers library. * `fuse_operations.c`, `fuse_operations.h` - Implementation of FUSE operations. * `perm_permissions_table.c`, `perm_permissions_table.h` - implementation of permanent permissions table. * `proc_operations.c`, `proc_operations.c` - different utility functions that interface with procfs. * `temp_permissions_table.c` `temp_permissions_table.h` - implementation of temporary permission table. * `sourcefs.c`, `sourcefs.h`, `real_filename.h` - operations used to access the underlying filesystem. * `ui-socket.c` `ui-socket.h` - permission logic and interaction with access dialogues. * `gui/` directory - source code of the access dialogue. * Other files are dedicated to special data type definitions. `LICENSE` is the text of GPLv2 source code license. `Makefile` is code for the `make` build system. Tests are located in the `test` directory: * `test.bash` - script that tests ICFS correctness (see `README` for usage instructions) * `stress.bash` - helper script that loads ICFS with `open` operations. * `opener/` directory - source code for a scpecial program that tests whether file can be opened. * `mock/` directory - bash script that mocks behaviour of access dialogue. After building the program, make is going to create `build` directory where icfs and access dialogue executables will be located.