On Saturday 28 June 2014 01:41 AM, Subhashish wrote:
On Wednesday 25 June 2014 04:24 PM, Samuel Thibault wrote: Hello, Subhashish, le Wed 25 Jun 2014 15:58:11 +0530, a écrit : The host system traps plus the syscalls( like __NR_rename are to be encapsulated within an rpc generated via mig - my guess) are to be listed there. No. This file should just enumerate traps, not RPCs. The situation is different from other OSes. Let me sum the situation up: In Linux: - system calls have a __NR_foo number - m_syswrap/syswrap-* provide the wrapping implementation for each and every system call. - m_libcfile.c calls __NR_foo system calls to implement what valgrind needs for its own use In Hurd/Mach: - traps have a trap number - RPC have an RPC number - RPC are done by calling the mach_msg trap. - m_syswrap/syswrap-* will provide wrapping implementations for each and every *trap*. There is no need to distinguish RPCs there, it will all be handled by implementing the wrapper for the mach_msg trap. - m_libcfile.c will make RPCs to implement what valgrind needs for its own use. I assume the generated *.h and *.c files will have to be included into the vki-scnums-gnu.h file and then manipulate them into a trap-ped syscall. No. The generated .c file will make the mach_msg trap for you. As a caller of the functions generated by mig, you will not need to know anything about the RPCs, but just call the functions from m_libcfile.c. The .h file will contain the prototype for the function, e.g. for the read() function, the .h file contains the RPC equivalent, __io_read function: kern_return_t __io_read ( io_t io_object, data_t *data, mach_msg_type_number_t *dataCnt, loff_t offset, vm_size_t amount ); that's what you will call from m_libcfile.c, just passing the FD as io_object, a data buffer, the data count, offset, and amount to be transfered. No need for an RPC id here. Samuel I did implement the trap declarations in vki-scnums-x86-gnu.h file. Then these __NR_syscalls (not the __NR_traps) - where do I declare them if not in vki-scnums-x86-gnu.h file? You mentioned that these will probably be the ones from glibc - like the __io_read() rpc and if not then these will be generated by MIG right? So I'll have to find a way to use the glibc ones without referring them directly as in #include stuff. And of the MIG-generated .h and .c files, I'll have to #include the .h files in m_libcfile.c and call them from there. So they get their declarations(prototype). Sorry for not replying earlier - we had our first thunderstorms of the monsoon season and electricity went out for the day. Also, FAQ recommends talking to organizations about how they handle evaluations and their disclosure to students. How do we do it? Would I get to know anything about it or would I know about it afterwards? Subhashish Um, this just got in - I did pass the Midterm Evaluations - It asked me to contact you to discuss results of evaluation and plan goals and development plan for the rest of the program.