2N/A * The contents of this file are subject to the terms of the 2N/A * Common Development and Distribution License (the "License"). 2N/A * You may not use this file except in compliance with the License. 2N/A * See the License for the specific language governing permissions 2N/A * and limitations under the License. 2N/A * When distributing Covered Code, include this CDDL HEADER in each 2N/A * If applicable, add the following below this CDDL HEADER, with the 2N/A * fields enclosed by brackets "[]" replaced with your own identifying 2N/A * information: Portions Copyright [yyyy] [name of copyright owner] 2N/A * Copyright 2007 Sun Microsystems, Inc. All rights reserved. 2N/A * Use is subject to license terms. 2N/A * ident "%Z%%M% %I% %E% SMI" 2N/A * A value generated by the DTrace {@code mod()}, {@code func()}, or 2N/A * {@code sym()} action used to lookup the symbol associated with a 2N/A * @author Tom Erickson 2N/A * Need to prevent DefaultPersistenceDelegate from using 2N/A * overridden equals() method, resulting in a 2N/A * StackOverFlowError. Revert to PersistenceDelegate 2N/A * implementation. See 2N/A * Called by native code. 2N/A * Creates a {@code KernelSymbolRecord} with the given symbol lookup 2N/A * and kernel address converted in probe context as a result of the 2N/A * DTrace {@code mod()}, {@code func()}, or {@code sym()} action. 2N/A * Supports XML persistence. 2N/A * @param addressValue symbol address 2N/A * @param lookupValue the result in the native DTrace library of 2N/A * looking up the symbol associated with the given kernel address 2N/A * @throws NullPointerException if the given lookup value is {@code null} 2N/A * Gets the result of the address lookup in the same form returned 2N/A * by {@link Consumer#lookupKernelFunction(long address)}. 2N/A * @return non-null address lookup in the format defined by the 2N/A * native DTrace library 2N/A * Called by native code and ProbeData addSymbolRecord() 2N/A * Gets the symbol's kernel address. 2N/A * @return the symbol's kernel address 2N/A * Gets the symbol's kernel address. The value is used in {@link 2N/A * #equals(Object o) equals()} and {@link 2N/A * #compareTo(KernelSymbolRecord r) compareTo()} to test equality 2N/A * and to determine the natural ordering of {@code 2N/A * KernelSymbolRecord} instances. 2N/A * @return non-null value of the symbol's kernel address 2N/A * Compares the specified object with this {@code KernelSymbolRecord} 2N/A * for equality. Returns {@code true} if and only if the specified 2N/A * object is also a {@code KernelSymbolRecord} and both records have 2N/A * @return {@code true} if and only if the specified object is also 2N/A * a {@code KernelSymbolRecord} and both records have the same 2N/A * Overridden to ensure that equal instances have equal hash codes. 2N/A * Compares this record with the given kernel symbol lookup and 2N/A * orders by address. The comparison treats addresses as unsigned 2N/A * values so the ordering is consistent with that defined in the 2N/A * native DTrace library. The {@code compareTo()} method is 2N/A * compatible with {@link #equals(Object o) equals()}. 2N/A * @return -1, 0, or 1 as this record's address is less than, equal 2N/A * to, or greater than the given record's address 2N/A // check class invariants 2N/A * Gets the result of this symbol lookup. The format is defined in 2N/A * the native DTrace library and is as stable as that library 2N/A * @return {@link #getSymbol()}