Hi carlsonj, thanks for the reply. Sorry I couldn't reply since some days.
I tried using dtrace for the 32bit sys call tracing but didn't get much help with my problem. > That overwrites (and loses) the pointer assigned to "old_call_c" from > the sysent[] array. Are you sure you don't want to define an > "old_call_32_c" variable? The "old_call_c" doesn't get overwritten. There are no issues with the given type of implementation. My main problem is, I have mapped "SYS_mkdir" system call to my customized "new_mkdir" method. My machine as well as OS are 64bit. So, 1) If I run a 64 bit application which calls mkdir syscall, it will successfully get trapped to my new_mkdir method as my machine+OS is 64 bit. 2) But if I run an 32bit application which does mkdir, it doesn't get trapped in my new_mkdir method. So, tracing 32bit sys calls on 64 bit platform is the basic issue. > You might also want to look more closely at the way 'struct sysent' is > constructed in usr/src/uts/common/os/sysent.c I saw the struct sysent and struct sysent32 from sysent.c file. According to that, I guess the implementation of both the structs are proper in the code snippet at beginning of this thread. When I see code in systrace.c, I can see the implementation of macro "#ifdef _SYSCALL32_IMPL". I think that somewhere this macro will help me doing so. Can you please provide some more pointer on the same front? Thanks, Neo -- This message posted from opensolaris.org _______________________________________________ opensolaris-code mailing list opensolaris-code@opensolaris.org http://mail.opensolaris.org/mailman/listinfo/opensolaris-code