From: Julian Seward Date: Sat, 27 Apr 2002 02:20:14 +0000 (+0000) Subject: ioctls for /dev/rtc (Fredrik Kuivinen) X-Git-Tag: svn/VALGRIND_1_0_3~289 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e1341b79ecda906b28af620418aac392a9b15b86;p=thirdparty%2Fvalgrind.git ioctls for /dev/rtc (Fredrik Kuivinen) git-svn-id: svn://svn.valgrind.org/valgrind/trunk@162 --- diff --git a/coregrind/vg_unsafe.h b/coregrind/vg_unsafe.h index c83db8d5ca..6e362ad230 100644 --- a/coregrind/vg_unsafe.h +++ b/coregrind/vg_unsafe.h @@ -62,6 +62,7 @@ #include /* for stuff for dealing with ioctl :( */ #include /* for various soundcard ioctl constants :( */ +#include /* for RTC_* ioctls */ #include #include diff --git a/vg_syscall_mem.c b/vg_syscall_mem.c index 0f9faa8e9d..931dec5add 100644 --- a/vg_syscall_mem.c +++ b/vg_syscall_mem.c @@ -1687,6 +1687,37 @@ void VG_(perform_assumed_nonblocking_syscall) ( ThreadId tid ) arg3, sizeof(int)); KERNEL_DO_SYSCALL(tid,res); break; + + /* Real Time Clock (/dev/rtc) ioctls */ + case RTC_UIE_ON: + case RTC_UIE_OFF: + case RTC_AIE_ON: + case RTC_AIE_OFF: + case RTC_PIE_ON: + case RTC_PIE_OFF: + case RTC_IRQP_SET: + KERNEL_DO_SYSCALL(tid,res); + break; + case RTC_RD_TIME: + case RTC_ALM_READ: + must_be_writable(tst, "ioctl(RTC_RD_TIME/ALM_READ)", arg3, + sizeof(struct rtc_time)); + KERNEL_DO_SYSCALL(tid,res); + if (!VG_(is_kerror) && res == 0) + make_readable(arg3, sizeof(struct rtc_time)); + break; + case RTC_ALM_SET: + must_be_readable(tst, "ioctl(RTC_ALM_SET)", arg3, + sizeof(struct rtc_time)); + KERNEL_DO_SYSCALL(tid,res); + break; + case RTC_IRQP_READ: + must_be_writable(tst, "ioctl(RTC_IRQP_READ)", arg3, + sizeof(unsigned long)); + KERNEL_DO_SYSCALL(tid,res); + if(!VG_(is_kerror) && res == 0) + make_readable(arg3, sizeof(unsigned long)); + break; /* We don't have any specific information on it, so try to do something reasonable based on direction and diff --git a/vg_unsafe.h b/vg_unsafe.h index c83db8d5ca..6e362ad230 100644 --- a/vg_unsafe.h +++ b/vg_unsafe.h @@ -62,6 +62,7 @@ #include /* for stuff for dealing with ioctl :( */ #include /* for various soundcard ioctl constants :( */ +#include /* for RTC_* ioctls */ #include #include