From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9699 invoked by alias); 14 May 2008 20:52:10 -0000 Received: (qmail 9671 invoked by uid 367); 14 May 2008 20:52:09 -0000 Date: Wed, 14 May 2008 20:52:00 -0000 Message-ID: <20080514205209.9656.qmail@sourceware.org> From: cagney@sourceware.org To: frysk-cvs@sourceware.org Subject: [SCM] master: Eliminate RawDataManaged from termios. X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: be931329a57113f8d9668e47a7019b8c45b87cfd X-Git-Newrev: ebcacc0987578fb83182763d10ef74828c933d83 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/msg00245.txt.bz2 The branch, master has been updated via ebcacc0987578fb83182763d10ef74828c933d83 (commit) from be931329a57113f8d9668e47a7019b8c45b87cfd (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit ebcacc0987578fb83182763d10ef74828c933d83 Author: Andrew Cagney Date: Wed May 14 16:18:39 2008 -0400 Eliminate RawDataManaged from termios. frysk-sys/frysk/sys/termios/ChangeLog 2008-05-14 Andrew Cagney * Termios.java (termios): Change type to "long"; pass value to methods. * Action.java: Update. * Control.java: Update. * Input.java: Update. * Local.java: Update. * Mode.java: Update. * Output.java: Update. * Special.java: Update. * Speed.java: Update. * cni/Output.cxx: Ditto. * cni/Speed.cxx: Update. * cni/Local.cxx: Ditto. * cni/Input.cxx: Update. * cni/Special.cxx: Update. * cni/Control.cxx: Update. * cni/Termios.cxx: Ditto. ----------------------------------------------------------------------- Summary of changes: frysk-sys/frysk/sys/termios/Action.java | 2 +- frysk-sys/frysk/sys/termios/ChangeLog | 20 ++++++ frysk-sys/frysk/sys/termios/Control.java | 19 ++---- frysk-sys/frysk/sys/termios/Input.java | 14 +--- frysk-sys/frysk/sys/termios/Local.java | 16 ++--- frysk-sys/frysk/sys/termios/Mode.java | 32 +++------ frysk-sys/frysk/sys/termios/Output.java | 17 ++--- frysk-sys/frysk/sys/termios/Special.java | 32 ++++----- frysk-sys/frysk/sys/termios/Speed.java | 31 +++----- frysk-sys/frysk/sys/termios/Termios.java | 98 ++++++++++++++++----------- frysk-sys/frysk/sys/termios/cni/Control.cxx | 24 +++---- frysk-sys/frysk/sys/termios/cni/Input.cxx | 23 +++---- frysk-sys/frysk/sys/termios/cni/Local.cxx | 19 ++--- frysk-sys/frysk/sys/termios/cni/Output.cxx | 19 ++--- frysk-sys/frysk/sys/termios/cni/Special.cxx | 16 ++--- frysk-sys/frysk/sys/termios/cni/Speed.cxx | 28 +++----- frysk-sys/frysk/sys/termios/cni/Termios.cxx | 61 +++++++---------- 17 files changed, 211 insertions(+), 260 deletions(-) First 500 lines of diff: diff --git a/frysk-sys/frysk/sys/termios/Action.java b/frysk-sys/frysk/sys/termios/Action.java index 0b1f64f..874e034 100644 --- a/frysk-sys/frysk/sys/termios/Action.java +++ b/frysk-sys/frysk/sys/termios/Action.java @@ -1,6 +1,6 @@ // This file is part of the program FRYSK. // -// Copyright 2007, Red Hat Inc. +// Copyright 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 diff --git a/frysk-sys/frysk/sys/termios/ChangeLog b/frysk-sys/frysk/sys/termios/ChangeLog index 88c76f5..ad99061 100644 --- a/frysk-sys/frysk/sys/termios/ChangeLog +++ b/frysk-sys/frysk/sys/termios/ChangeLog @@ -1,3 +1,23 @@ +2008-05-14 Andrew Cagney + + * Termios.java (termios): Change type to "long"; pass value to + methods. + * Action.java: Update. + * Control.java: Update. + * Input.java: Update. + * Local.java: Update. + * Mode.java: Update. + * Output.java: Update. + * Special.java: Update. + * Speed.java: Update. + * cni/Output.cxx: Ditto. + * cni/Speed.cxx: Update. + * cni/Local.cxx: Ditto. + * cni/Input.cxx: Update. + * cni/Special.cxx: Update. + * cni/Control.cxx: Update. + * cni/Termios.cxx: Ditto. + 2008-05-07 Andrew Cagney * jni/Control.cxx: Include jni.hxx. diff --git a/frysk-sys/frysk/sys/termios/Control.java b/frysk-sys/frysk/sys/termios/Control.java index cf96522..663a344 100644 --- a/frysk-sys/frysk/sys/termios/Control.java +++ b/frysk-sys/frysk/sys/termios/Control.java @@ -1,6 +1,6 @@ // This file is part of the program FRYSK. // -// Copyright 2007, Red Hat Inc. +// Copyright 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 @@ -42,18 +42,11 @@ package frysk.sys.termios; /** * Input modes. */ -public class Control - extends Mode -{ -// private Control (String s) -// { -// super (s); -// } - native Termios set (Termios termios, boolean on); - native boolean get (Termios termios); - public static Control[] getModes () - { - return (Control[]) (getStaticMembers (Control.class) +public class Control extends Mode { + native void set(long termios, boolean on); + native boolean get(long termios); + public static Control[] getModes() { + return (Control[]) (getStaticMembers(Control.class) .toArray (new Control[0])); } } diff --git a/frysk-sys/frysk/sys/termios/Input.java b/frysk-sys/frysk/sys/termios/Input.java index 2e841d3..e2ada47 100644 --- a/frysk-sys/frysk/sys/termios/Input.java +++ b/frysk-sys/frysk/sys/termios/Input.java @@ -1,6 +1,6 @@ // This file is part of the program FRYSK. // -// Copyright 2007, Red Hat Inc. +// Copyright 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 @@ -43,15 +43,9 @@ package frysk.sys.termios; * Input modes. */ -public final class Input - extends Mode -{ -// private Input (String on) -// { -// super (on); -// } - native Termios set (Termios termios, boolean on); - native boolean get (Termios termios); +public final class Input extends Mode { + native void set(long termios, boolean on); + native boolean get(long termios); public static Input[] getModes () { return (Input[]) (getStaticMembers (Input.class) diff --git a/frysk-sys/frysk/sys/termios/Local.java b/frysk-sys/frysk/sys/termios/Local.java index dc2d910..5193d2f 100644 --- a/frysk-sys/frysk/sys/termios/Local.java +++ b/frysk-sys/frysk/sys/termios/Local.java @@ -1,6 +1,6 @@ // This file is part of the program FRYSK. // -// Copyright 2007, Red Hat Inc. +// Copyright 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 @@ -43,17 +43,13 @@ package frysk.sys.termios; * Local modes. */ -public final class Local - extends Mode -{ - private Local (String s) - { +public final class Local extends Mode { + private Local(String s) { super (s); } - native Termios set (Termios termios, boolean on); - native boolean get (Termios termios); - public static Local[] getModes () - { + native void set(long termios, boolean on); + native boolean get(long termios); + public static Local[] getModes() { return (Local[]) (getStaticMembers (Local.class) .toArray (new Local[0])); } diff --git a/frysk-sys/frysk/sys/termios/Mode.java b/frysk-sys/frysk/sys/termios/Mode.java index dc1df92..194de4c 100644 --- a/frysk-sys/frysk/sys/termios/Mode.java +++ b/frysk-sys/frysk/sys/termios/Mode.java @@ -1,6 +1,6 @@ // This file is part of the program FRYSK. // -// Copyright 2007, Red Hat Inc. +// Copyright 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 @@ -48,36 +48,30 @@ import java.util.Iterator; /** * Termios modes. */ -abstract class Mode -{ - protected Mode () - { +abstract class Mode { + protected Mode() { throw new RuntimeException ("should not be creating an empty mode"); } protected final String on; - protected Mode (String on) - { + protected Mode(String on) { this.on = on; } - public String toString () - { + public String toString() { return on; } - public String toString (Termios termios) - { - if (get (termios)) + public String toString(Termios termios) { + if (termios.get(this)) return on; else return "-" + on; } - abstract Termios set (Termios termios, boolean on); - abstract boolean get (Termios termios); + abstract void set(long termios, boolean on); + abstract boolean get(long termios); /** * Return a linked list of the objects static Fields. */ - static final List getStaticFields (Class c) - { + static final List getStaticFields(Class c) { List staticFields = new LinkedList (); Field[] fields = c.getFields (); for (int i = 0; i < fields.length; i++) { @@ -92,8 +86,7 @@ abstract class Mode /** * Return a linked list of the classes static members. */ - static final List getStaticMembers (Class c) - { + static final List getStaticMembers(Class c) { List members = new LinkedList (); try { for (Iterator i = getStaticFields (c).iterator (); @@ -102,8 +95,7 @@ abstract class Mode Object o = field.get (null); members.add (o); } - } - catch (java.lang.IllegalAccessException e) { + } catch (java.lang.IllegalAccessException e) { throw new RuntimeException (e); } return members; diff --git a/frysk-sys/frysk/sys/termios/Output.java b/frysk-sys/frysk/sys/termios/Output.java index 4908619..b0bb645 100644 --- a/frysk-sys/frysk/sys/termios/Output.java +++ b/frysk-sys/frysk/sys/termios/Output.java @@ -1,6 +1,6 @@ // This file is part of the program FRYSK. // -// Copyright 2007, Red Hat Inc. +// Copyright 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 @@ -42,17 +42,10 @@ package frysk.sys.termios; /** * Output modes. */ -public final class Output - extends Mode -{ -// private Output (String on) -// { -// super (on); -// } - native Termios set (Termios termios, boolean on); - native boolean get (Termios termios); - public static Output[] getModes () - { +public final class Output extends Mode { + native void set(long termios, boolean on); + native boolean get(long termios); + public static Output[] getModes() { return (Output[]) (getStaticMembers (Output.class) .toArray (new Output[0])); } diff --git a/frysk-sys/frysk/sys/termios/Special.java b/frysk-sys/frysk/sys/termios/Special.java index 3927fcc..9222426 100644 --- a/frysk-sys/frysk/sys/termios/Special.java +++ b/frysk-sys/frysk/sys/termios/Special.java @@ -1,6 +1,6 @@ // This file is part of the program FRYSK. // -// Copyright 2007, Red Hat Inc. +// Copyright 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 @@ -43,31 +43,25 @@ package frysk.sys.termios; * Special characters and values. */ -public abstract class Special -{ +public abstract class Special { protected final String prefix; - private Special (String prefix) - { + private Special(String prefix) { this.prefix = prefix; } - public String toString () - { + public String toString() { return prefix; } - public abstract String toString (Termios termios); - native Termios set (Termios termios, char val); - native char get (Termios termios); - public static Special[] getSpecials () - { + public abstract String toString(Termios termios); + native void set(long termios, char val); + native char get(long termios); + public static Special[] getSpecials() { return (Special[]) (Mode.getStaticMembers (Special.class) .toArray (new Special[0])); } public static final Special NON_CANONICAL_READ_MINIMUM - = new Special ("min") - { - public String toString (Termios termios) - { - return prefix + " = " + (int) get (termios); - } - }; + = new Special("min") { + public String toString(Termios termios) { + return prefix + " = " + (int) termios.get(this); + } + }; } diff --git a/frysk-sys/frysk/sys/termios/Speed.java b/frysk-sys/frysk/sys/termios/Speed.java index 66eea18..e0ac0f7 100644 --- a/frysk-sys/frysk/sys/termios/Speed.java +++ b/frysk-sys/frysk/sys/termios/Speed.java @@ -1,6 +1,6 @@ // This file is part of the program FRYSK. // -// Copyright 2007, Red Hat Inc. +// Copyright 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 @@ -45,37 +45,30 @@ import java.util.List; /** * Manipulates a terminal bound to FileDescriptor. */ -public class Speed - implements Comparable -{ +public class Speed implements Comparable { final int b; - private Speed (int b) - { + private Speed(int b) { this.b = b; } - public String toString () - { + public String toString() { return "" + b; } - public boolean equals (Object o) - { + public boolean equals(Object o) { return (o instanceof Speed) && ((Speed)o).b == b; } - public int compareTo (Object rhs) - { + public int compareTo(Object rhs) { return this.b - ((Speed)rhs).b; } public static final Speed BAUD_0 = new Speed (0); public static final Speed BAUD_9600 = new Speed (9600); public static final Speed BAUD_38400 = new Speed (38400); - static public final Speed[] getSpeeds () - { - List speeds = Mode.getStaticMembers (Speed.class); + static public final Speed[] getSpeeds() { + List speeds = Mode.getStaticMembers(Speed.class); Collections.sort (speeds); - return (Speed[]) speeds.toArray (new Speed[0]); + return (Speed[]) speeds.toArray(new Speed[0]); } - native Termios set (Termios termios); - static native Speed getInput (Termios termios); - static native Speed getOutput (Termios termios); + native void set(long termios); + static native Speed getInput(long termios); + static native Speed getOutput(long termios); } diff --git a/frysk-sys/frysk/sys/termios/Termios.java b/frysk-sys/frysk/sys/termios/Termios.java index 47072c7..af3898f 100644 --- a/frysk-sys/frysk/sys/termios/Termios.java +++ b/frysk-sys/frysk/sys/termios/Termios.java @@ -1,6 +1,6 @@ // This file is part of the program FRYSK. // -// Copyright 2007, Red Hat Inc. +// Copyright 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 @@ -39,106 +39,122 @@ package frysk.sys.termios; -import gnu.gcj.RawDataManaged; import frysk.sys.FileDescriptor; /** * Manipulates a terminal bound to FileDescriptor. */ -public final class Termios -{ - private native RawDataManaged malloc(); - final RawDataManaged termios = malloc (); // package readable. +public final class Termios { + private native long malloc(); + private native void free(long termios); + private long termios = malloc(); + protected void finalize() { + if (termios != 0) { + free(termios); + termios = 0; + } + } - public Termios () - { + public Termios() { } - public Termios (FileDescriptor fd) - { - this (); - get (fd); + public Termios(FileDescriptor fd) { + this(); + get(fd); } /** * Refresh this Termios with the terminal settings from FD. */ - public native Termios get (FileDescriptor fd); + public Termios get(FileDescriptor fd) { + get(termios, fd.getFd()); + return this; + } + private static native void get(long termios, int fd); /** * Set FD's terminal settings. */ - public native Termios set (FileDescriptor fd, Action action); + public Termios set(FileDescriptor fd, Action action) { + set(termios, fd.getFd(), action); + return this; + } + private static native void set(long termios, int fd, Action action); /** * Set FD's terminal settings. */ - public Termios set (FileDescriptor fd) - { - return set (fd, Action.NOW); + public Termios set(FileDescriptor fd) { + return set(fd, Action.NOW); } /** * Enable or disable a mode. */ - public Termios set (Mode mode, boolean on) - { - return mode.set (this, on); + public Termios set(Mode mode, boolean on) { + mode.set(termios, on); + return this; } /** * Get a mode. */ - public boolean get (Mode mode) - { - return mode.get (this); + public boolean get(Mode mode) { + return mode.get(termios); } /** * Set the speed of input and output in baud. */ - public Termios set (Speed speed) - { - return speed.set (this); + public Termios set(Speed speed) { + speed.set(termios); + return this; } /** * Get the input speed in baud. */ - public Speed getInputSpeed () - { - return Speed.getInput (this); + public Speed getInputSpeed() { + return Speed.getInput(termios); } /** * Get the output speed in baud. */ - public Speed getOutputSpeed () - { - return Speed.getOutput (this); + public Speed getOutputSpeed() { + return Speed.getOutput(termios); } /** hooks/post-receive -- frysk system monitor/debugger