From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10313 invoked by alias); 21 May 2008 20:09:06 -0000 Received: (qmail 10285 invoked by uid 367); 21 May 2008 20:09:04 -0000 Date: Wed, 21 May 2008 20:09:00 -0000 Message-ID: <20080521200904.10270.qmail@sourceware.org> From: cagney@sourceware.org To: frysk-cvs@sourceware.org Subject: [SCM] master: Prototype jni/Itimer, enable more tests. X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: ad8717e86fe645e8239b42c9604905a7bfb71e53 X-Git-Newrev: eb91978115196ab2815ba04f4145f65088737050 Mailing-List: contact frysk-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: frysk-cvs-owner@sourceware.org Reply-To: frysk@sourceware.org X-SW-Source: 2008-q2/txt/msg00266.txt.bz2 The branch, master has been updated via eb91978115196ab2815ba04f4145f65088737050 (commit) from ad8717e86fe645e8239b42c9604905a7bfb71e53 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit eb91978115196ab2815ba04f4145f65088737050 Author: Andrew Cagney Date: Wed May 21 16:07:49 2008 -0400 Prototype jni/Itimer, enable more tests. frysk-sys/ChangeLog 2008-05-21 Andrew Cagney * Makefile.am (JniRunner): Test frysk.expunit, frysk.sys.proc, frysk.sys.TestProcessIdentifier, frysk.sys.TestSignal, frysk.sys.TestSignalSet. frysk-sys/frysk/sys/ChangeLog 2008-05-21 Andrew Cagney * jni/Itimer.cxx: Implement. ----------------------------------------------------------------------- Summary of changes: frysk-sys/ChangeLog | 6 +++++ frysk-sys/Makefile.am | 13 ++++++++--- frysk-sys/frysk/sys/ChangeLog | 2 + frysk-sys/frysk/sys/jni/Itimer.cxx | 41 +++++++++++++++++++++++++++++++++++- 4 files changed, 57 insertions(+), 5 deletions(-) First 500 lines of diff: diff --git a/frysk-sys/ChangeLog b/frysk-sys/ChangeLog index 659ac0b..6536b04 100644 --- a/frysk-sys/ChangeLog +++ b/frysk-sys/ChangeLog @@ -1,3 +1,9 @@ +2008-05-21 Andrew Cagney + + * Makefile.am (JniRunner): Test frysk.expunit, frysk.sys.proc, + frysk.sys.TestProcessIdentifier, frysk.sys.TestSignal, + frysk.sys.TestSignalSet. + 2008-05-16 Andrew Cagney * Makefile.am (JNIXX_CLASSES): Add Errno$Esrch. diff --git a/frysk-sys/Makefile.am b/frysk-sys/Makefile.am index 7aed15f..ac8043b 100644 --- a/frysk-sys/Makefile.am +++ b/frysk-sys/Makefile.am @@ -93,12 +93,17 @@ JniRunner: | frysk-sys.jar libfrysk-sys-jni.so echo "$(CLASSPATH):frysk-sys.jar:JniRunner.jar" >> $@.tmp echo "if test \$$# -eq 0 ; then" >> $@.tmp echo " $(JAVA) JniRunner \\" >> $@.tmp - echo " lib.stdcpp \\" >> $@.tmp - echo " frysk.rsl \\" >> $@.tmp - echo " frysk.junit \\" >> $@.tmp echo " frysk.config \\" >> $@.tmp - echo " jnixx \\" >> $@.tmp + echo " frysk.expunit \\" >> $@.tmp + echo " frysk.junit \\" >> $@.tmp + echo " frysk.rsl \\" >> $@.tmp + echo " frysk.sys.proc \\" >> $@.tmp + echo " frysk.sys.TestProcessIdentifier \\" >> $@.tmp + echo " frysk.sys.TestSignal \\" >> $@.tmp + echo " frysk.sys.TestSignalSet \\" >> $@.tmp echo " inua \\" >> $@.tmp + echo " jnixx \\" >> $@.tmp + echo " lib.stdcpp \\" >> $@.tmp echo " ;" >> $@.tmp echo "else" >> $@.tmp echo " $(JAVA) JniRunner \"\$$@\"" >> $@.tmp diff --git a/frysk-sys/frysk/sys/ChangeLog b/frysk-sys/frysk/sys/ChangeLog index 13d7a5c..ad2a3f3 100644 --- a/frysk-sys/frysk/sys/ChangeLog +++ b/frysk-sys/frysk/sys/ChangeLog @@ -1,5 +1,7 @@ 2008-05-21 Andrew Cagney + * jni/Itimer.cxx: Implement. + * cni/PseudoTerminal.cxx: Delete stray include. * FileDescriptor.java: Make native methods private. diff --git a/frysk-sys/frysk/sys/jni/Itimer.cxx b/frysk-sys/frysk/sys/jni/Itimer.cxx index b358932..88ba5a2 100644 --- a/frysk-sys/frysk/sys/jni/Itimer.cxx +++ b/frysk-sys/frysk/sys/jni/Itimer.cxx @@ -1,6 +1,6 @@ // This file is part of the program FRYSK. // -// Copyright 2008, Red Hat Inc. +// Copyright 2005, 2007, 2008, Red Hat Inc. // // FRYSK is free software; you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by @@ -37,4 +37,43 @@ // version and license this file solely under the GPL without // exception. +#include +#include +#include +#include + #include "jni.hxx" + +#include "jnixx/exceptions.hxx" + +using namespace java::lang; +using namespace frysk::sys; + +struct timeval +timeval(jlong milliseconds) { + struct timeval val; + val.tv_sec = milliseconds / 1000; + val.tv_usec = (milliseconds % 1000) * 1000; + return val; +} + +void +setItimer(jnixx::env env, int which, jlong interval, jlong value) { + struct itimerval itimer; + itimer.it_interval = timeval (interval); + itimer.it_value = timeval (value); + errno = 0; + if (::setitimer (which, &itimer, NULL) < 0) + errnoException(env, errno, "setitimer"); +} + +Signal +Itimer::real(jnixx::env env, jlong interval, jlong value) { + ::setItimer(env, ITIMER_REAL, interval, value); + return Signal::GetALRM(env); +} + +jint +Itimer::sleep(jnixx::env env, jint seconds) { + return ::sleep(seconds); +} hooks/post-receive -- frysk system monitor/debugger