comparison agent/src/share/classes/sun/jvm/hotspot/types/CIntegerType.java @ 0:a61af66fc99e jdk7-b24

Initial load
author duke
date Sat, 01 Dec 2007 00:00:00 +0000
parents
children c18cbe5936b8
comparison
equal deleted inserted replaced
-1:000000000000 0:a61af66fc99e
1 /*
2 * Copyright 2000 Sun Microsystems, Inc. All Rights Reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
20 * CA 95054 USA or visit www.sun.com if you need additional information or
21 * have any questions.
22 *
23 */
24
25 package sun.jvm.hotspot.types;
26
27 import java.util.*;
28
29 /** <P> This subinterface of Type provides accessors to deal with all
30 C integer types. The observation is that, according to the C
31 specification, there is no guarantee that the integer types of
32 char, short, int, and long will not all be of the same size,
33 meaning that it is incorrect to use any Java primitive type that
34 is too small to hold all of these values when talking about C
35 integer types, signed or unsigned. </P>
36
37 <P> Therefore we use long, the largest Java primitive type,
38 universally to hold C integer field values (deciding that a
39 ubiquitous change to BigInteger is not currently advantageous).
40 Routines which read C integers from fields know the fields' sizes
41 and signedness and read the appropriate number of bytes and handle
42 sign- or zero- extension for signed and unsigned types,
43 respectively. Unfortunately, since long is a signed 64-bit
44 integer, there will be problems handling C's unsigned 64-bit
45 integers, but these problems must be dealt with by the user. </P> */
46 public interface CIntegerType extends Type {
47 /** Is this integer type unsigned? */
48 public boolean isUnsigned();
49
50 /** What is the maximum value of this type? Note that this will not
51 work properly for unsigned long longs. */
52 public long maxValue();
53
54 /** What is the minimum value of this type? Note that this will not
55 work properly for unsigned long longs. */
56 public long minValue();
57 }