[IMPROVE] add arguments in ks_feature (for syscall)
authorVyacheslav Cherkashin <v.cherkashin@samsung.com>
Tue, 9 Jul 2013 09:52:53 +0000 (13:52 +0400)
committerVyacheslav Cherkashin <v.cherkashin@samsung.com>
Tue, 9 Jul 2013 09:52:53 +0000 (13:52 +0400)
ks_features/Makefile.am
ks_features/features_data.c
ks_features/ks_features.c
ks_features/syscall_list.h

index f670827..9b8e32a 100644 (file)
@@ -7,7 +7,9 @@ cross_compiler = $(subst gcc,,$(CC))
 
 inlude_opt = -I$(realpath $(top_srcdir)/src/modules/kprobe) \
              -I$(realpath $(top_srcdir)/src/modules/kprobe/arch) \
-             -I$(realpath $(top_srcdir)/src/modules/ksyms)
+             -I$(realpath $(top_srcdir)/src/modules/ksyms) \
+             -I$(realpath $(top_srcdir)/src/common) \
+             -I$(realpath $(top_srcdir)/src/modules/driver)
 extra_cflags = "$(inlude_opt) $(board_opt)"
 
 all-local:
index 5c2c6c6..3b072fe 100644 (file)
@@ -5,7 +5,7 @@ struct feature {
        enum syscall_id *feature_list;
 };
 
-#define X(x) id_##x
+#define X(name, args) id_##name
 enum syscall_id {
        SYSCALL_LIST
 };
index 379821a..1bbaaf0 100644 (file)
@@ -11,6 +11,7 @@ struct ks_probe {
        struct jprobe jp;
        struct kretprobe rp;
        int counter;
+       char *args;
 };
 
 #define CREATE_JP(name)                                                \
@@ -25,7 +26,7 @@ struct ks_probe {
        .handler = NULL                                         \
 }
 
-#define X(x) #x
+#define X(name, args) #name
 static const char *const syscall_name[] = {
        SYSCALL_LIST
 };
@@ -36,11 +37,12 @@ enum {
 };
 
 
-#define X(x)                                                   \
+#define X(name, args__)                                                \
 {                                                              \
-       .jp = CREATE_JP(x),                                     \
-       .rp = CREATE_RP(x),                                     \
-       .counter = 0                                            \
+       .jp = CREATE_JP(name),                                  \
+       .rp = CREATE_RP(name),                                  \
+       .counter = 0,                                           \
+       .args = #args__                                         \
 }
 
 static struct ks_probe ksp[] = {
index 6fa0e2e..1a352a9 100644 (file)
 #define _SYSCALL_LIST_H
 
 #define SYSCALL_LIST \
-       X(sys_accept4), \
-       X(sys_accept), \
-       X(sys_access), \
-       X(sys_acct), \
-       X(sys_bind), \
-       X(sys_chdir), \
-       X(sys_chmod), \
-       X(sys_chown16), \
-       X(sys_chown), \
-       X(sys_chroot), \
-       X(sys_clone), \
-       X(sys_connect), \
-       X(sys_creat), \
-       X(sys_dup3), \
-       X(sys_epoll_create1), \
-       X(sys_epoll_ctl), \
-       X(sys_epoll_pwait), \
-       X(sys_epoll_wait), \
-       X(sys_eventfd2), \
-       X(sys_eventfd), \
-       X(sys_execve), \
-       X(sys_exit_group), \
-       X(sys_exit), \
-       X(sys_faccessat), \
-       X(sys_fadvise64_64), \
-       X(sys_fallocate), \
-       X(sys_fanotify_init), \
-       X(sys_fanotify_mark), \
-       X(sys_fchmodat), \
-       X(sys_fchownat), \
-       X(sys_fgetxattr), \
-       X(sys_flistxattr), \
-       X(sys_fork), \
-       X(sys_fremovexattr), \
-       X(sys_fstat64), \
-       X(sys_ftruncate64), \
-       X(sys_futimesat), \
-       X(sys_getcwd), \
-       X(sys_getpeername), \
-       X(sys_getsockname), \
-       X(sys_getsockopt), \
-       X(sys_getxattr), \
-       X(sys_inotify_add_watch), \
-       X(sys_inotify_init1), \
-       X(sys_inotify_init), \
-       X(sys_inotify_rm_watch), \
-       X(sys_ipc), \
-       X(sys_kill), \
-       X(sys_linkat), \
-       X(sys_link), \
-       X(sys_listen), \
-       X(sys_listxattr), \
-       X(sys_lstat64), \
-/* TODO: X(sys_lstat), */ \
-       X(sys_mkdirat), \
-       X(sys_mkdir), \
-       X(sys_mknodat), \
-       X(sys_mknod), \
-       X(sys_mmap_pgoff), \
-       X(sys_mount), \
-       X(sys_msgctl), \
-       X(sys_msgget), \
-       X(sys_msgrcv), \
-       X(sys_msgsnd), \
-       X(sys_name_to_handle_at), \
-/* TODO: X(sys_newfstatat), */ \
-       X(sys_old_mmap), \
-       X(sys_openat), \
-       X(sys_open_by_handle_at), \
-       X(sys_open), \
-       X(sys_pause), \
-       X(sys_pipe2), \
-       X(sys_ppoll), \
-       X(sys_pread64), \
-       X(sys_preadv), \
-       X(sys_pselect6), \
-       X(sys_pwrite64), \
-       X(sys_pwritev), \
-       X(sys_readlinkat), \
-       X(sys_readlink), \
-       X(sys_recvfrom), \
-       X(sys_recvmmsg), \
-       X(sys_recvmsg), \
-       X(sys_recv), \
-       X(sys_removexattr), \
-       X(sys_renameat), \
-       X(sys_rename), \
-       X(sys_rmdir), \
-       X(sys_rt_sigaction), \
-       X(sys_rt_sigprocmask), \
-       X(sys_rt_sigsuspend), \
-       X(sys_rt_sigtimedwait), \
-       X(sys_rt_tgsigqueueinfo), \
-       X(sys_semctl), \
-       X(sys_semget), \
-       X(sys_semop), \
-       X(sys_semtimedop), \
-       X(sys_sendfile64), \
-       X(sys_sendfile), \
-       X(sys_sendmmsg), \
-       X(sys_sendmsg), \
-       X(sys_send), \
-       X(sys_sendto), \
-       X(sys_setns), \
-       X(sys_setsockopt), \
-       X(sys_setxattr), \
-       X(sys_shmat), \
-       X(sys_shmctl), \
-       X(sys_shmdt), \
-       X(sys_shmget), \
-       X(sys_shutdown), \
-       X(sys_sigaction), \
-/* TODO: X(sys_sigaltstack), */ \
-       X(sys_signalfd4), \
-       X(sys_signalfd), \
-/* TODO: X(sys_signal), */ \
-       X(sys_sigpending), \
-       X(sys_sigprocmask), \
-       X(sys_sigsuspend), \
-       X(sys_socketcall), \
-       X(sys_socketpair), \
-       X(sys_socket), \
-       X(sys_splice), \
-       X(sys_stat64), \
-       X(sys_statfs64), \
-       X(sys_statfs), \
-/* TODO: X(sys_stat), */ \
-       X(sys_swapoff), \
-       X(sys_swapon), \
-       X(sys_symlinkat), \
-       X(sys_symlink), \
-       X(sys_syncfs), \
-       X(sys_tee), \
-       X(sys_tgkill), \
-       X(sys_timerfd_create), \
-       X(sys_timerfd_gettime), \
-       X(sys_timerfd_settime), \
-       X(sys_truncate64), \
-       X(sys_truncate), \
-       X(sys_umount), \
-       X(sys_unlinkat), \
-       X(sys_unlink), \
-       X(sys_unshare), \
-       X(sys_uselib), \
-       X(sys_utimensat), \
-       X(sys_utimes), \
-       X(sys_utime), \
-       X(sys_vfork), \
-       X(sys_vmsplice), \
-       X(sys_wait4), \
-       X(sys_waitid)
-/* TODO: X(sys_waitpid) */
+       X(sys_accept4, dpdd), \
+       X(sys_accept, dpd), \
+       X(sys_access, sd), \
+       X(sys_acct, s), \
+       X(sys_bind, dpd), \
+       X(sys_chdir, s), \
+       X(sys_chmod, sd), \
+       X(sys_chown16, sdd), \
+       X(sys_chown, sdd), \
+       X(sys_chroot, s), \
+       X(sys_clone, ddddd), \
+       X(sys_connect, dpd), \
+       X(sys_creat, sd), \
+       X(sys_dup3, ddd), \
+       X(sys_epoll_create1, d), \
+       X(sys_epoll_ctl, dddp), \
+       X(sys_epoll_pwait, dpddpx), \
+       X(sys_epoll_wait, dpdd), \
+       X(sys_eventfd2, dd), \
+       X(sys_eventfd, d), \
+       X(sys_execve, sss), \
+       X(sys_exit, d), \
+       X(sys_exit_group, d), \
+       X(sys_faccessat, dsd), \
+       X(sys_fadvise64_64, dxxd), \
+       X(sys_fallocate, ddxx), \
+       X(sys_fanotify_init, dd), \
+       X(sys_fanotify_mark, ddxds), \
+       X(sys_fchmodat, dsd), \
+       X(sys_fchownat, dsddd), \
+       X(sys_fgetxattr, dspx), \
+       X(sys_flistxattr, dpx), \
+       X(sys_fork, ), \
+       X(sys_fremovexattr, ds), \
+       X(sys_fstat64, xp), \
+       X(sys_ftruncate64, dx), \
+       X(sys_futimesat, dsp), \
+       X(sys_getcwd, px), \
+       X(sys_getpeername, dpd), \
+       X(sys_getsockname, dpd), \
+       X(sys_getsockopt, dddpd), \
+       X(sys_getxattr, sspx), \
+       X(sys_inotify_add_watch, dsd), \
+       X(sys_inotify_init, ), \
+       X(sys_inotify_init1, d), \
+       X(sys_inotify_rm_watch, dd), \
+       X(sys_ipc, ddxxpx), \
+       X(sys_kill, dd), \
+       X(sys_linkat, dsdsd), \
+       X(sys_link, ss), \
+       X(sys_listen, dd), \
+       X(sys_listxattr, spx), \
+       X(sys_lstat64, sp), \
+/* TODO: X(sys_lstat, sp), */ \
+       X(sys_mkdirat, dsd), \
+       X(sys_mkdir, sd), \
+       X(sys_mknodat, dsdd), \
+       X(sys_mknod, sdd), \
+       X(sys_mmap_pgoff, xxxxxx), \
+       X(sys_mount, pppxp), \
+       X(sys_msgctl, ddp), \
+       X(sys_msgget, dd), \
+       X(sys_msgrcv, dpxxd), \
+       X(sys_msgsnd, dpxd), \
+       X(sys_name_to_handle_at, dspdd), \
+/* TODO: X(sys_newfstatat, dspd), */ \
+       X(sys_old_mmap, p), \
+       X(sys_openat, dsdd), \
+       X(sys_open_by_handle_at, dpd), \
+       X(sys_open, sdd), \
+       X(sys_pause, ), \
+       X(sys_pipe2, dd), \
+       X(sys_ppoll, pdpp), \
+       X(sys_pread64, dpxx), \
+       X(sys_preadv, xpxxx), \
+       X(sys_pselect6, dxxxpp), \
+       X(sys_pwrite64, dsxx), \
+       X(sys_pwritev, xpxxx), \
+       X(sys_readlinkat, dspd), \
+       X(sys_readlink, spd), \
+       X(sys_recv, dpxd), \
+       X(sys_recvfrom, dpxdpd), \
+       X(sys_recvmmsg, dpddp), \
+       X(sys_recvmsg, dpd), \
+       X(sys_removexattr, ss), \
+       X(sys_renameat, dsds), \
+       X(sys_rename, ss), \
+       X(sys_rmdir, s), \
+       X(sys_rt_sigaction, dpp), \
+       X(sys_rt_sigprocmask, dppx), \
+       X(sys_rt_sigsuspend, px), \
+       X(sys_rt_sigtimedwait, pppx), \
+       X(sys_rt_tgsigqueueinfo, dddp), \
+       X(sys_semctl, dddx), \
+       X(sys_semget, ddd), \
+       X(sys_semop, dpd), \
+       X(sys_semtimedop, dpdp), \
+       X(sys_send, dpxd), \
+       X(sys_sendfile64, ddlxx), \
+       X(sys_sendfile, ddxx), \
+       X(sys_sendmmsg, dpdd), \
+       X(sys_sendmsg, dpd), \
+       X(sys_sendto, dpxdpd), \
+       X(sys_setns, dd), \
+       X(sys_setsockopt, dddpd), \
+       X(sys_setxattr, sspxd), \
+       X(sys_shmat, dpd), \
+       X(sys_shmctl, ddp), \
+       X(sys_shmdt, p), \
+       X(sys_shmget, dxd), \
+       X(sys_shutdown, dd), \
+       X(sys_sigaction, dpp), \
+/* TODO: X(sys_sigaltstack, pp), */ \
+/* TODO: X(sys_signal, dp), */ \
+       X(sys_signalfd4, dpxd), \
+       X(sys_signalfd, dpx), \
+       X(sys_sigpending, p), \
+       X(sys_sigprocmask, dpp), \
+/* TODO: X(sys_sigsuspend, ddp), */ \
+/* TODO: X(sys_sigsuspend, p), */ \
+       X(sys_socketcall, dx), \
+       X(sys_socket, ddd), \
+       X(sys_socketpair, dddd), \
+       X(sys_splice, dxdxxd), \
+       X(sys_stat64, sp), \
+       X(sys_statfs64, sxp), \
+       X(sys_statfs, sp), \
+/* TODO: X(sys_stat, sp), */ \
+       X(sys_swapoff, s), \
+       X(sys_swapon, sd), \
+       X(sys_symlinkat, sds), \
+       X(sys_symlink, ss), \
+       X(sys_syncfs, d), \
+       X(sys_tee, ddxd), \
+       X(sys_tgkill, ddd), \
+       X(sys_timerfd_create, dd), \
+       X(sys_timerfd_gettime, dp), \
+       X(sys_timerfd_settime, ddpp), \
+       X(sys_truncate64, sx), \
+       X(sys_truncate, sx), \
+       X(sys_umount, pd), \
+       X(sys_unlinkat, dsd), \
+       X(sys_unlink, s), \
+       X(sys_unshare, x), \
+       X(sys_uselib, s), \
+       X(sys_utimensat, dspd), \
+       X(sys_utime, pp), \
+       X(sys_utimes, pp), \
+       X(sys_vfork, ), \
+       X(sys_vmsplice, dpxd), \
+       X(sys_wait4, dddp), \
+       X(sys_waitid, ddpdp)
+/* TODO: X(sys_waitpid, ddd) */
 
 #endif /* _SYSCALL_LIST_H */