I had a feeling that everything became hazy after that rushed finals. So, I will have some time to recollect all those things to much organized webs of thoughts.
While I was writing the thesis I realized that I really need more centralized system that manages all the system call interface stuff. So I just changed sys_call_array_container to sys_call_interface! Now the container contains all sorts of necessary things for the system call!
I also changed the system call table pointer in the TCB to system call "interface" pointer. Now TCB stores not only the system call pointer but the entire system call interface structure. This will be much more convenient in dealing with the context switching stuff or other complicated argument stuff!
struct task_struct {
...
// system call interface
uint64_t system_call_interface_ptr;
...
};
I'm now thinking of unifying all the interface stuffs into the sys_call_interface. I need to make some interface functions that work as the interpreter of the platform. For example, I'm planning on making a function that translate the system call number from the registers..
So many things to do.. I'm tired!