diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/cmd/label/CreateNamespacesCmd.java b/Ghidra/Features/Base/src/main/java/ghidra/app/cmd/label/CreateNamespacesCmd.java index 64c25cb3c6..6fb1468af5 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/cmd/label/CreateNamespacesCmd.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/cmd/label/CreateNamespacesCmd.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -30,8 +30,8 @@ import ghidra.util.exception.InvalidInputException; * * Example strings: * *

* diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/ProgramPlugin.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/ProgramPlugin.java index 2c976a65a2..457d827d3a 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/ProgramPlugin.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/ProgramPlugin.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -34,11 +34,11 @@ import ghidra.program.util.ProgramSelection; * Subclasses should override the following methods if they are interested in the corresponding * events: *

*/ public abstract class ProgramPlugin extends Plugin { diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/analysis/GolangStringAnalyzer.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/analysis/GolangStringAnalyzer.java index ba96bd861a..0bb4a68fca 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/analysis/GolangStringAnalyzer.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/analysis/GolangStringAnalyzer.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -50,8 +50,8 @@ import ghidra.util.task.UnknownProgressWrappingTaskMonitor; *

* The string struct is found in a couple of different ways: *

* Some char[] data is only referenced from Golang string structs that exist temporarily * in registers after being set by an instruction that statically references the char[] data, diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/console/CodeCompletion.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/console/CodeCompletion.java index 7b58194c66..7c83260bbf 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/console/CodeCompletion.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/console/CodeCompletion.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -23,20 +23,20 @@ import javax.swing.JComponent; * It is intended to be used by the code completion process, especially the * CodeCompletionWindow. It encapsulates: * *

* For example, if one wants to autocomplete a string "Runscr" into "runScript", * the fields may look as follows: *

*/ public class CodeCompletion implements Comparable { diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/cparser/ParseDialog.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/cparser/ParseDialog.java index c07818f942..eb3137f900 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/cparser/ParseDialog.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/cparser/ParseDialog.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -58,9 +58,9 @@ import resources.Icons; * Dialog that shows files used for parsing C header files. The profile has a list of source header * files to parse, followed by parse options (compiler directives). Ghidra supplies a Windows * profile by default in core/parserprofiles. The user can do "save as" on this default profile to - * create new profiles that will be written to the user's /userprofiles directory. The + * create new profiles that will be written to the user's {@code /userprofiles} directory. The * CParserPlugin creates this directory if it doesn't exist. - * + *

* The data types resulting from the parse operation can either be added to the data type manager in * the current program, or written to an archive data file. * diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/function/tags/FunctionTagTable.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/function/tags/FunctionTagTable.java index 792693bfc7..97a2115689 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/function/tags/FunctionTagTable.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/function/tags/FunctionTagTable.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -79,8 +79,10 @@ public class FunctionTagTable extends GhidraTable { /** * We need to override the renderer for the following cases: - *

  • italicize tags that cannot be edited
  • - *
  • disable rows in the source table that have already been added to the selected function
  • + *
      + *
    • italicize tags that cannot be edited
    • + *
    • disable rows in the source table that have already been added to the selected function
    • + *
    */ @Override public TableCellRenderer getCellRenderer(int row, int col) { diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/instructionsearch/ui/InsertBytesWidget.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/instructionsearch/ui/InsertBytesWidget.java index f5a11e3d98..63396d14d1 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/instructionsearch/ui/InsertBytesWidget.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/instructionsearch/ui/InsertBytesWidget.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -398,8 +398,10 @@ public class InsertBytesWidget extends ReusableDialogComponentProvider implement /** * Verifies that the input entered by the user is valid. Meaning: - *
  • The string represents a hex or binary number.
  • - *
  • The string contains only full bytes.
  • + *
      + *
    • The string represents a hex or binary number.
    • + *
    • The string contains only full bytes.
    • + *
    * * @return true if input is valid */ diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/navigation/NextPrevCodeUnitPlugin.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/navigation/NextPrevCodeUnitPlugin.java index 424da1777d..63220d40d8 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/navigation/NextPrevCodeUnitPlugin.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/navigation/NextPrevCodeUnitPlugin.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -40,13 +40,13 @@ import resources.Icons; * The NextPrevCodeUnitPlugin generates a GoTo event based on where the cursor * is located in the program. The GoTo events provided by this plugin are: *
      - *
    • Next-Previous Instruction - *
    • Next-Previous Defined Data - *
    • Next-Previous Undefined Data - *
    • Next-Previous Function - *
    • Next-Previous Non-Function - *
    • Next-Previous Label - *
    • Next-Previous Bookmark + *
    • Next-Previous Instruction
    • + *
    • Next-Previous Defined Data
    • + *
    • Next-Previous Undefined Data
    • + *
    • Next-Previous Function
    • + *
    • Next-Previous Non-Function
    • + *
    • Next-Previous Label
    • + *
    • Next-Previous Bookmark
    • *
    */ //@formatter:off diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/osgi/BundleHost.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/osgi/BundleHost.java index 6633f6d332..72fdec3d22 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/osgi/BundleHost.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/osgi/BundleHost.java @@ -49,11 +49,11 @@ import utilities.util.FileUtilities; * Note: {@link GhidraBundle}, its implementations, and this class constitute a bridge between * OSGi's {@link Bundle} and Ghidra. *
      - *
    • unqualified, "bundle" will mean {@link GhidraBundle} + *
    • unqualified, "bundle" will mean {@link GhidraBundle}
    • *
    • use of OSGi types, including {@link Bundle} and {@link Framework}, should be package scoped - * (not public) + * (not public)
    • *
    • bundle lifecycle is simplified to "active"(same as OSGi "active" state) and "inactive" - * (OSGi "uninstalled" state) + * (OSGi "uninstalled" state)
    • *
    */ public class BundleHost { diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/scalartable/RangeFilterTextField.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/scalartable/RangeFilterTextField.java index 45fed24095..f74cd69291 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/scalartable/RangeFilterTextField.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/scalartable/RangeFilterTextField.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -25,8 +25,8 @@ import ghidra.program.model.listing.Program; *

    * Specifically this provides the following: *

      - *
    • Ability to specify if this is a min/max range field - *
    • Allows hex input of the form "0x...." for hex values + *
    • Ability to specify if this is a min/max range field
    • + *
    • Allows hex input of the form "0x...." for hex values
    • *
    */ public class RangeFilterTextField extends IntegerTextField { diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/scalartable/ScalarSearchProvider.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/scalartable/ScalarSearchProvider.java index 6aebe42f08..320ac43882 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/scalartable/ScalarSearchProvider.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/scalartable/ScalarSearchProvider.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -42,8 +42,8 @@ import help.HelpService; /** * Displays the results of a query from the {@link ScalarSearchPlugin}. Consists of 2 components: *
      - *
    • The scalar table that is displayed to the user - *
    • The range filter that allows the user to filter the scalar table via a min and max value. + *
    • The scalar table that is displayed to the user
    • + *
    • The range filter that allows the user to filter the scalar table via a min and max value.
    • *
    */ public class ScalarSearchProvider extends ComponentProviderAdapter { diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/string/DefinedStringIterator.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/string/DefinedStringIterator.java index 7e23cf17ee..63bd2e94c5 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/string/DefinedStringIterator.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/string/DefinedStringIterator.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -15,7 +15,7 @@ */ package ghidra.app.plugin.core.string; -import static ghidra.program.util.string.FoundString.DefinedState.DEFINED; +import static ghidra.program.util.string.FoundString.DefinedState.*; import java.util.Iterator; @@ -31,9 +31,9 @@ import ghidra.program.util.string.FoundString; * Basic Algorithm: Uses a defined data iterator to find all defined data in a program. For * each defined data, strings are searched as follows: *
      - *
    1. is it a string? if so, add to the queue of results - *
    2. is it an array? if so, are they non-primitive elements? if so, recursively search them for strings. - *
    3. is it a composite (structure or union)? if so, recursively search each element of the structure. + *
    4. is it a string? if so, add to the queue of results
    5. + *
    6. is it an array? if so, are they non-primitive elements? if so, recursively search them for strings.
    7. + *
    8. is it a composite (structure or union)? if so, recursively search each element of the structure.
    9. *
    *

    * This class maintains a queue of all strings found at any given top-level data element. When diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/terminal/vt/VtHandler.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/terminal/vt/VtHandler.java index 0685d9770c..f370d4a3a2 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/terminal/vt/VtHandler.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/terminal/vt/VtHandler.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -62,17 +62,17 @@ import ghidra.util.Msg; * {@code "\033["} * * - * {@code OSC} + * {@code OSC} * {@code ESC ]} * {@code "\033]"} * * - * {@code ST} + * {@code ST} * {@code ESC \} * {@code "\033\\"} * * - * {@code BEL} + * {@code BEL} * byte 0x07 * {@code "\007"} * diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/exceptionhandlers/gcc/structures/gccexcepttable/LSDATable.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/exceptionhandlers/gcc/structures/gccexcepttable/LSDATable.java index fb4f7ca346..3604b672e1 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/exceptionhandlers/gcc/structures/gccexcepttable/LSDATable.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/exceptionhandlers/gcc/structures/gccexcepttable/LSDATable.java @@ -1,13 +1,12 @@ /* ### * IP: GHIDRA - * REVIEWED: YES * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -38,10 +37,10 @@ import ghidra.util.task.TaskMonitor; * The LSDA is comprised of: *

      *
    • A header that describes the bounds of exception handling support and encoding - * modes for values found later in the LSDA table + * modes for values found later in the LSDA table
    • *
    • A call site table that describes each location a 'throws' occurs and where - * a corresponding catch block resides, and the actions to take. - *
    • An action table, that describes what the runtime needs to do during unwind + * a corresponding catch block resides, and the actions to take.
    • + *
    • An action table, that describes what the runtime needs to do during unwind
    • *
    *

    * The structures modeled here are described in detail in the C++ ABI. diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/dwarf/DWARFDataTypeConflictHandler.java b/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/dwarf/DWARFDataTypeConflictHandler.java index 1b2b171960..9340af6564 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/dwarf/DWARFDataTypeConflictHandler.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/dwarf/DWARFDataTypeConflictHandler.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -39,16 +39,16 @@ import ghidra.util.SystemUtilities; *

    *

      *
    • discarded and replaced by the existing data type - * ({@link ConflictResult#USE_EXISTING}) + * ({@link ConflictResult#USE_EXISTING})
    • *
    • used to overwrite the existing data type - * ({@link ConflictResult#REPLACE_EXISTING}) + * ({@link ConflictResult#REPLACE_EXISTING})
    • *
    * or the candidate data type was NOT matched with an existing data type, * and the new data type is: *

    *

      *
    • kept, but renamed with a .conflictNNNN suffix to make it unique - * ({@link ConflictResult#RENAME_AND_ADD}) + * ({@link ConflictResult#RENAME_AND_ADD})
    • *
    * NOTE: structures with alignment (instead of being statically laid out) * are not treated specially and will not match other aligned or non-aligned diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/elf/info/StandardElfInfoProducer.java b/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/elf/info/StandardElfInfoProducer.java index 097e4163a9..73a35cf9e8 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/elf/info/StandardElfInfoProducer.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/elf/info/StandardElfInfoProducer.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -31,7 +31,6 @@ import ghidra.program.model.listing.Program; import ghidra.program.model.mem.Memory; import ghidra.program.model.mem.MemoryBlock; import ghidra.program.model.util.CodeUnitInsertionException; -import ghidra.util.Msg; import ghidra.util.classfinder.ExtensionPointProperties; import ghidra.util.exception.CancelledException; import ghidra.util.task.TaskMonitor; @@ -39,11 +38,11 @@ import ghidra.util.task.TaskMonitor; /** * Handles marking up and program info for basic ELF note (and note-like) sections. *
      - *
    • NoteAbiTag - *
    • NoteGnuBuildId - *
    • NoteGnuProperty - *
    • GnuDebugLink (not a note) - *
    • ElfComment (not a note) + *
    • NoteAbiTag
    • + *
    • NoteGnuBuildId
    • + *
    • NoteGnuProperty
    • + *
    • GnuDebugLink (not a note)
    • + *
    • ElfComment (not a note)
    • *
    *

    * Runs after other ElfInfoProducers that have a normal priority. diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/golang/GoFunctionMultiReturn.java b/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/golang/GoFunctionMultiReturn.java index 92c11096b1..ede4f2e851 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/golang/GoFunctionMultiReturn.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/golang/GoFunctionMultiReturn.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -30,10 +30,10 @@ import ghidra.program.model.lang.Register; *

    * Assigning custom storage for the return value is complicated by: *

      - *
    • golang storage allocations depend on the formal ordering of the return values - *
    • stack storage must be last in a list of varnodes + *
    • golang storage allocations depend on the formal ordering of the return values
    • + *
    • stack storage must be last in a list of varnodes
    • *
    • the decompiler maps a structure's contents to the list of varnodes in an endian-dependent - * manner. + * manner.
    • *
    * To meet these complications, the structure's layout is modified to put all items that were * marked as being stack parameters to either the front or back of the structure. diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/golang/GolangElfInfoProducer.java b/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/golang/GolangElfInfoProducer.java index 2654b53efd..301cc30800 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/golang/GolangElfInfoProducer.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/golang/GolangElfInfoProducer.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -28,16 +28,17 @@ import ghidra.util.task.TaskMonitor; /** * Handles marking up and program info for Golang binaries. - *

    *

      - *
    • NoteGoBuildId - *
    • GoBuildInfo - *
        - *
      • Go version - *
      • App path, main package - *
      • Module dependency list - *
      • Build settings / flags - *
      + *
    • NoteGoBuildId
    • + *
    • GoBuildInfo
    • + *
    • + *
        + *
      • Go version
      • + *
      • App path, main package
      • + *
      • Module dependency list
      • + *
      • Build settings / flags
      • + *
      + *
    • *
    */ public class GolangElfInfoProducer implements ElfInfoProducer { diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/golang/rtti/GoFuncData.java b/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/golang/rtti/GoFuncData.java index 7ba8f8d25c..01c3660f2f 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/golang/rtti/GoFuncData.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/golang/rtti/GoFuncData.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -225,8 +225,8 @@ public class GoFuncData implements StructureMarkup { *

    * The information that can be recovered about arguments is limited to: *

      - *
    • the size of the argument - *
    • general grouping (eg. grouping of arg values as a structure or array) + *
    • the size of the argument
    • + *
    • general grouping (eg. grouping of arg values as a structure or array)
    • *
    * Return value information is unknown and always represented as an "undefined" data type. * diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/golang/rtti/GoRttiMapper.java b/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/golang/rtti/GoRttiMapper.java index 819f563831..891d828e1f 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/golang/rtti/GoRttiMapper.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/golang/rtti/GoRttiMapper.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -58,22 +58,26 @@ import ghidra.util.task.UnknownProgressWrappingTaskMonitor; *
  • Find the GoBuildInfo struct. This struct is the easiest to locate, even when the binary * is stripped. This gives us the go pointerSize (probably same as ghidra pointer size) and the * goVersion. This struct does not rely on StructureMapping, allowing its use before a - * DataTypeMapper is created. - *
  • Create DataTypeMapper - *
  • Find the runtime.firstmoduledata structure. - *
      - *
    • If there are symbols, just use the symbol or named memory block. - *
    • If stripped: + * DataTypeMapper is created.
    • + *
    • Create DataTypeMapper
    • + *
    • Find the runtime.firstmoduledata structure.
    • + *
    • + *
        + *
      • If there are symbols, just use the symbol or named memory block.
      • + *
      • If stripped:
      • + *
      • *
          *
        • Find the pclntab. This has a magic signature, a pointerSize, and references - * to a couple of tables that are also referenced in the moduledata structure. + * to a couple of tables that are also referenced in the moduledata structure.
        • *
        • Search memory for a pointer to the pclntab struct. This should be the first * field of the moduledata structure. The values that are duplicated between the - * two structures can be compared to ensure validity. + * two structures can be compared to ensure validity.
        • *
        • Different binary formats (Elf vs PE) will determine which memory blocks to - * search. - *
        - *
      + * search.
    • + *
    + *
  • + * + * * */ public class GoRttiMapper extends DataTypeMapper implements DataTypeMapperContext { diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/macho/MachHeader.java b/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/macho/MachHeader.java index 4dd01eba16..3e34d12f47 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/macho/MachHeader.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/macho/MachHeader.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -196,7 +196,7 @@ public class MachHeader implements StructConverter { /** * Parses only this {@link MachHeader}'s {@link SegmentCommand segments} * - * @return A {@List} of this {@link MachHeader}'s {@link SegmentCommand segments} + * @return A {@link List} of this {@link MachHeader}'s {@link SegmentCommand segments} * @throws IOException If there was an IO-related error */ public List parseSegments() throws IOException { diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/cparser/C/CParserUtils.java b/Ghidra/Features/Base/src/main/java/ghidra/app/util/cparser/C/CParserUtils.java index 7389be2cd8..657a1ae83c 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/cparser/C/CParserUtils.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/util/cparser/C/CParserUtils.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -260,7 +260,7 @@ public class CParserUtils { * * @param filenames names of files in order to parse, could include strings with * "#" at start, which are ignored as comments - * @param args arguments for parsing, "-D=", "-I" + * @param args arguments for parsing, {@code -D=, -I} * * @param dataFileName name of data type archive file (include the .gdt extension) * @@ -297,8 +297,9 @@ public class CParserUtils { * * @param filenames names of files in order to parse, could include strings with * "#" at start, which are ignored as comments - * @param includePaths paths to include files, instead of using "-I" in args - * @param args arguments for parsing, "-D=", ( "-I" use includePaths parm instead) + * @param includePaths paths to include files, instead of using {@code -I} in args + * @param args arguments for parsing, {@code -D=}, ( {@code -I} use + * includePaths parm instead) * * @param dataFileName name of data type archive file (include the .gdt extension) * @@ -338,8 +339,8 @@ public class CParserUtils { * * @param filenames names of files in order to parse, could include strings with * "#" at start, which are ignored as comments - * @param includePaths path to include files, could also be in args with "-I" - * @param args arguments for parsing, "-D=", "-I" + * @param includePaths path to include files, could also be in args with {@code -I} + * @param args arguments for parsing, {@code -D=, -I} * * @param dataFileName name of data type archive file (include the .gdt extension) * @@ -391,11 +392,12 @@ public class CParserUtils { * * @param filenames names of files in order to parse, could include strings with * "#" at start, which are ignored as comments - * @param args arguments for parsing, "-D=", ( "-I" use includePaths parm instead) + * @param args arguments for parsing, {@code -D=}, ({@code -I} use + * includePaths parm instead) * * @param existingDTMgr datatypes will be populated into this provided DTMgr, can pass Program or File DTMgr * - * @param languageId language identication to use for data type organization definitions (int, long, ptr size) + * @param languageId language identification to use for data type organization definitions (int, long, ptr size) * @param compileSpecId compiler specification to use for parsing * * @param monitor used to cancel or provide results @@ -431,12 +433,12 @@ public class CParserUtils { * * @param filenames names of files in order to parse, could include strings with * "#" at start, which are ignored as comments - * @param includePaths paths to include files, instead of using "-I" in args - * @param args arguments for parsing, "-D=", ( "-I" use includePaths parm instead) + * @param includePaths paths to include files, instead of using {@code -I} in args + * @param args arguments for parsing, {@code -D=}, ( {@code -I} use includePaths parm instead) * * @param existingDTMgr datatypes will be populated into this provided DTMgr, can pass Program or File DTMgr * - * @param languageId language identication to use for data type organization definitions (int, long, ptr size) + * @param languageId language identification to use for data type organization definitions (int, long, ptr size) * @param compileSpecId compiler specification to use for parsing * * @param monitor used to cancel or provide results @@ -508,8 +510,8 @@ public class CParserUtils { * * @param filenames names of files in order to parse, could include strings with * "#" at start, which are ignored as comments - * @param includePaths paths to include files, instead of using "-I" in args - * @param args arguments for parsing, "-D=", ( "-I" use includePaths parm instead) + * @param includePaths paths to include files, instead of using {@code -I} in args + * @param args arguments for parsing, {@code -D=}, ( {@code -I} use includePaths parm instead) * * @param dtMgr datatypes will be populated into this provided DTMgr, can pass Program or File DTMgr * diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/opinion/BoundedBufferedReader.java b/Ghidra/Features/Base/src/main/java/ghidra/app/util/opinion/BoundedBufferedReader.java index 52cf576279..8b313a929a 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/opinion/BoundedBufferedReader.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/util/opinion/BoundedBufferedReader.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -200,13 +200,13 @@ public class BoundedBufferedReader extends Reader { * true: *
      * - *
    • The specified number of characters have been read, + *
    • The specified number of characters have been read,
    • * *
    • The read method of the underlying stream returns - * -1, indicating end-of-file, or + * -1, indicating end-of-file, or
    • * *
    • The ready method of the underlying stream returns - * false, indicating that further input requests would block. + * false, indicating that further input requests would block.
    • * *
    * If the first read on the underlying stream returns diff --git a/Ghidra/Features/Base/src/main/java/ghidra/formats/gfilesystem/FSRL.java b/Ghidra/Features/Base/src/main/java/ghidra/formats/gfilesystem/FSRL.java index 7c561acff8..f0d9fbc18d 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/formats/gfilesystem/FSRL.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/formats/gfilesystem/FSRL.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -39,13 +39,13 @@ import ghidra.util.SystemUtilities; *

    * Examples (pipes shown in red since they are hard to see): *

      - *
    • file://dir/subdir -- simplest example, locates a file on local computer filesystem. - *
    • file://dir/subdir/example.zip|zip://readme.txt -- points to a file named "readme.txt" in a zip file. - *
    • file://dir/subdir/example.zip|zip://dir/nested.tar|tar://file.txt -- points to - * a file inside a TAR archive, which is inside a ZIP archive, which is on the local filesystem. - *
    • file://dir/subdir/example.zip?MD5=1234567|zip://readme.txt?MD5=987654 -- + *
    • file://dir/subdir -- simplest example, locates a file on local computer filesystem.
    • + *
    • file://dir/subdir/example.zip|zip://readme.txt -- points to a file named "readme.txt" in a zip file.
    • + *
    • file://dir/subdir/example.zip|zip://dir/nested.tar|tar://file.txt -- points to + * a file inside a TAR archive, which is inside a ZIP archive, which is on the local filesystem.
    • + *
    • file://dir/subdir/example.zip?MD5=1234567|zip://readme.txt?MD5=987654 -- * points to a file named "readme.txt" (with a MD5 hash) in a zip file (that has another - * MD5 hash). + * MD5 hash).
    • *
    *

    * See {@link FSRLRoot} for examples of how FSRL and FSRLRoot's are related. diff --git a/Ghidra/Features/Base/src/main/java/ghidra/formats/gfilesystem/FSRLRoot.java b/Ghidra/Features/Base/src/main/java/ghidra/formats/gfilesystem/FSRLRoot.java index 1c8a6d4f9d..0c604d53be 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/formats/gfilesystem/FSRLRoot.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/formats/gfilesystem/FSRLRoot.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -26,11 +26,11 @@ package ghidra.formats.gfilesystem; *

    *

      *
    • FSRLRoot [ file:// ]
      - * "file://" + * "file://"
    • *
    • {@literal FSRLRoot [ file:// ] <---- FSRL [ /filename.txt ]}
      - * "file:///filename.txt" + * "file:///filename.txt"
    • *
    • {@literal FSRLRoot [ file:// ] <---- FSRL [ /filename.txt ] <--- FSRLRoot [ subfs:// ]}
      - * "file:///filename.txt|subfs://" + * "file:///filename.txt|subfs://"
    • *
    */ public class FSRLRoot extends FSRL { diff --git a/Ghidra/Features/Base/src/main/java/ghidra/program/flatapi/FlatProgramAPI.java b/Ghidra/Features/Base/src/main/java/ghidra/program/flatapi/FlatProgramAPI.java index c26ed1b82a..98bb4ec573 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/program/flatapi/FlatProgramAPI.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/program/flatapi/FlatProgramAPI.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -57,8 +57,8 @@ import ghidra.util.task.TaskMonitor; *

    * NOTE: *

      - *
    1. NO METHODS *SHOULD* EVER BE REMOVED FROM THIS CLASS. - *
    2. NO METHOD SIGNATURES *SHOULD* EVER BE CHANGED IN THIS CLASS. + *
    3. NO METHODS *SHOULD* EVER BE REMOVED FROM THIS CLASS.
    4. + *
    5. NO METHOD SIGNATURES *SHOULD* EVER BE CHANGED IN THIS CLASS.
    6. *
    *

    * This class is used by GhidraScript. diff --git a/Ghidra/Features/Base/src/main/java/ghidra/util/bytesearch/AlignRule.java b/Ghidra/Features/Base/src/main/java/ghidra/util/bytesearch/AlignRule.java index b6606476f8..3a5bc5a977 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/util/bytesearch/AlignRule.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/util/bytesearch/AlignRule.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -22,12 +22,12 @@ import ghidra.xml.XmlPullParser; /** * ByteSearch post search rule when a pattern is found. Used when a pattern must have a certain * alignment at an offset from the location the pattern matches. - * + *

    * The pattern can be constructed or restored from XML of the form, * where alignOffset=mark, alignmask=bits - * - * - * + *

    {@code
    + *   
    + * }
    */ public class AlignRule implements PostRule { diff --git a/Ghidra/Features/Base/src/main/java/ghidra/util/bytesearch/Pattern.java b/Ghidra/Features/Base/src/main/java/ghidra/util/bytesearch/Pattern.java index 7d65fa7afc..03893ebfa5 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/util/bytesearch/Pattern.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/util/bytesearch/Pattern.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -185,7 +185,7 @@ public class Pattern extends DittedBitSequence { } /** - * Read just the post patterns from the tags + * Read just the post patterns from the {@code } tags * @param file is the file to read from * @param patternList collects the resulting Pattern objects * @param pfactory is the factory for constructing postrules and matchactions diff --git a/Ghidra/Features/Base/src/main/java/ghidra/util/bytesearch/PatternPairSet.java b/Ghidra/Features/Base/src/main/java/ghidra/util/bytesearch/PatternPairSet.java index bd6fe348c5..a1cd57da6d 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/util/bytesearch/PatternPairSet.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/util/bytesearch/PatternPairSet.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -27,28 +27,31 @@ import ghidra.xml.XmlPullParser; * To match, a sequence from the "pre" sequence set must first match, then one of the "post" patterns * is matched relative to the matching "pre" pattern. This class is really a storage object for the * patterns and provides a mechanism to read the pre/post patterns from an XML file. - * + *

    * The larger pattern has the idea of bits of check, which means the number of bits that are fixed to * a value when matching (not don't care). There is a pre pattern bits of check and post pattern bits * of check. The bits of check are used to statistically gauge the accuracy of the pattern. - * + *

    * An example of the XML format follows: - * - * - * 0xe12fff1. - * 0xe12fff1e 0x46c0 - * 0xe12fff1e 0xe1a00000 - * + *

     {@code
    + * 
    + *   
    + *     0xe12fff1.                  
    + *     0xe12fff1e 0x46c0           
    + *     0xe12fff1e 0xe1a00000       
    + *   
      *    
    - *  
    - *       0xe24dd...                              11101001 00101101 .1...... ....0000  
    - *       11101001 00101101 .1...... ....0000     0xe24dd...                           
    - *       11101001 00101101 .1...... ....0000     0x........ 0xe24dd...                
    - *      
    - *      
    - *      
    - *    
    - *  
    + *   
    + *      0xe24dd...                              11101001 00101101 .1...... ....0000  
    + *      11101001 00101101 .1...... ....0000     0xe24dd...                           
    + *      11101001 00101101 .1...... ....0000     0x........ 0xe24dd...                
    + *     
    + *     
    + *     
    + *   
    + * 
    + * }
    + * 
    * * Note: The post Patterns can also have a set of rules that must be satisfied along with one of the * Pattern DittedBitSequence matches. diff --git a/Ghidra/Features/Decompiler/src/main/java/ghidra/app/decompiler/DecompInterface.java b/Ghidra/Features/Decompiler/src/main/java/ghidra/app/decompiler/DecompInterface.java index 10ca35da40..4ecaf2e2b1 100644 --- a/Ghidra/Features/Decompiler/src/main/java/ghidra/app/decompiler/DecompInterface.java +++ b/Ghidra/Features/Decompiler/src/main/java/ghidra/app/decompiler/DecompInterface.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -462,18 +462,18 @@ public class DecompInterface { * The current predefined analysis class are: *
      *
    • "decompile" - this is the default, and performs all - * analysis steps suitable for producing C code. + * analysis steps suitable for producing C code.
    • *
    • "normalize" - omits type recovery from the analysis * and some of the final clean-up steps involved in * making valid C code. It is suitable for creating - * normalized pcode syntax trees of the dataflow. + * normalized pcode syntax trees of the dataflow.
    • *
    • "firstpass" - does no analysis, but produces an - * unmodified syntax tree of the dataflow from the - *
    • "register" - does ???. + * unmodified syntax tree of the dataflow from the
    • + *
    • "register" - does ???.
    • *
    • "paramid" - does required amount of decompilation * followed by analysis steps that send parameter * measure information for parameter id analysis. - * raw pcode. + * raw pcode.
    • *
    * *

    diff --git a/Ghidra/Features/Decompiler/src/main/java/ghidra/app/util/DecompilerConcurrentQ.java b/Ghidra/Features/Decompiler/src/main/java/ghidra/app/util/DecompilerConcurrentQ.java index 3cca028fe6..df62938fec 100644 --- a/Ghidra/Features/Decompiler/src/main/java/ghidra/app/util/DecompilerConcurrentQ.java +++ b/Ghidra/Features/Decompiler/src/main/java/ghidra/app/util/DecompilerConcurrentQ.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -37,7 +37,7 @@ import utility.function.Dummy; * {@link #waitForResults()}. *

  • For non-blocking usage, simply call * {@link #process(Iterator, Consumer)}, passing the consumer of the results.
  • - * + * *

    * * @param The input data needed by the supplied {@link QCallback} diff --git a/Ghidra/Framework/DB/src/main/java/db/VarRecNode.java b/Ghidra/Framework/DB/src/main/java/db/VarRecNode.java index 9ed17d7ecc..e6180054bd 100644 --- a/Ghidra/Framework/DB/src/main/java/db/VarRecNode.java +++ b/Ghidra/Framework/DB/src/main/java/db/VarRecNode.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -27,11 +27,11 @@ import ghidra.util.exception.AssertException; *

    * This type of node has the following layout within a single DataBuffer * (field size in bytes): - *

    + * 
    {@code
      *   | NodeType(1) | KeyCount(4) | PrevLeafId(4) | NextLeafId(4) | Key0(8) | RecOffset0(4) | IndFlag0(1) |...  
      *     
      *   | KeyN(8) | RecOffsetN(4) | IndFlagN(1) |...... | RecN |... | Rec0 |
    - * 
    + * }
    * IndFlag - if not zero the record has been stored within a chained DBBuffer * whose 4-byte integer buffer ID has been stored within this leaf at the record offset. */ diff --git a/Ghidra/Framework/Docking/src/main/java/docking/ComponentProvider.java b/Ghidra/Framework/Docking/src/main/java/docking/ComponentProvider.java index 2fe3ef2d13..46d15f32aa 100644 --- a/Ghidra/Framework/Docking/src/main/java/docking/ComponentProvider.java +++ b/Ghidra/Framework/Docking/src/main/java/docking/ComponentProvider.java @@ -49,17 +49,17 @@ import utilities.util.reflection.ReflectionUtilities; *

    * This also provides several useful convenience methods: *

      - *
    • {@link #addLocalAction(DockingActionIf)} - *
    • {@link #addToTool()} - *
    • {@link #setVisible(boolean)} - *
    • {@link #setTitle(String)} - *
    • {@link #setIcon(Icon)} + *
    • {@link #addLocalAction(DockingActionIf)}
    • + *
    • {@link #addToTool()}
    • + *
    • {@link #setVisible(boolean)}
    • + *
    • {@link #setTitle(String)}
    • + *
    • {@link #setIcon(Icon)}
    • *
    *

    * There are a handful of stub methods that can be overridden as desired: *

      - *
    • {@link #componentActivated()} and {@link #componentDeactived()} - *
    • {@link #componentHidden()} and {@link #componentShown()} + *
    • {@link #componentActivated()} and {@link #componentDeactived()}
    • + *
    • {@link #componentHidden()} and {@link #componentShown()}
    • *
    * *

    diff --git a/Ghidra/Framework/Docking/src/main/java/docking/KeyBindingOverrideKeyEventDispatcher.java b/Ghidra/Framework/Docking/src/main/java/docking/KeyBindingOverrideKeyEventDispatcher.java index a660115b52..bb2d4c9ec3 100644 --- a/Ghidra/Framework/Docking/src/main/java/docking/KeyBindingOverrideKeyEventDispatcher.java +++ b/Ghidra/Framework/Docking/src/main/java/docking/KeyBindingOverrideKeyEventDispatcher.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -86,7 +86,7 @@ public class KeyBindingOverrideKeyEventDispatcher implements KeyEventDispatcher * * Ghidra has altered this flow to be: *

      - *
    1. Reserved keybinding actions + *
    2. Reserved keybinding actions
    3. *
    4. KeyListeners on the focused Component
    5. *
    6. InputMap and ActionMap actions for the Component
    7. *
    8. Ghidra tool-level actions
    9. diff --git a/Ghidra/Framework/Docking/src/main/java/docking/PlaceholderSet.java b/Ghidra/Framework/Docking/src/main/java/docking/PlaceholderSet.java index 87c776ee48..30041c666e 100644 --- a/Ghidra/Framework/Docking/src/main/java/docking/PlaceholderSet.java +++ b/Ghidra/Framework/Docking/src/main/java/docking/PlaceholderSet.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -21,8 +21,8 @@ import java.util.Map.Entry; /** * A class that tracks: *
        - *
      • placeholders that are being used for a given provider - *
      • placeholders that are no longer being used, which are available for reuse + *
      • placeholders that are being used for a given provider
      • + *
      • placeholders that are no longer being used, which are available for reuse
      • *
      */ class PlaceholderSet { diff --git a/Ghidra/Framework/Docking/src/main/java/docking/dnd/Draggable.java b/Ghidra/Framework/Docking/src/main/java/docking/dnd/Draggable.java index f41c83bb3d..7244895ed4 100644 --- a/Ghidra/Framework/Docking/src/main/java/docking/dnd/Draggable.java +++ b/Ghidra/Framework/Docking/src/main/java/docking/dnd/Draggable.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -51,9 +51,9 @@ public interface Draggable { /** * Get the drag actions supported by this drag source: *
        - *
      • DnDConstants.ACTION_MOVE - *
      • DnDConstants.ACTION_COPY - *
      • DnDConstants.ACTION_COPY_OR_MOVE + *
      • DnDConstants.ACTION_MOVE
      • + *
      • DnDConstants.ACTION_COPY
      • + *
      • DnDConstants.ACTION_COPY_OR_MOVE
      • *
      * * @return the drag actions diff --git a/Ghidra/Framework/Docking/src/main/java/docking/widgets/OptionDialog.java b/Ghidra/Framework/Docking/src/main/java/docking/widgets/OptionDialog.java index 6146a73b2c..e549fb0767 100644 --- a/Ghidra/Framework/Docking/src/main/java/docking/widgets/OptionDialog.java +++ b/Ghidra/Framework/Docking/src/main/java/docking/widgets/OptionDialog.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -34,9 +34,7 @@ import ghidra.util.exception.AssertException; * A utility class to easily show dialogs that require input from the user. * * - *

      Option Dialogs


      - *
      - *

      + *

      Option Dialogs

      * The primary type of * dialog provided herein is the basic option dialog that allows the user to specify the buttons * that appear on the dialog. By default, the given option text will appear as a button(s), @@ -44,55 +42,37 @@ import ghidra.util.exception.AssertException; * {@link #showOptionNoCancelDialog(Component, String, String, String, String, int)} methods if * you do not want a Cancel button. To use this type of dialog you can use the * various showOptionDialog* methods. - *

      *

      * Each of the option dialog methods will return a result, which is a number indicating the * choice made by the user. See each method for more details. - *

      - *
      * * - *

      Data Input and Choice Dialogs


      - *
      - *

      - * The methods listed here allow the user to either enter data from the keyboard or to choose - * from a pre-populated list of data. - *

      - *
      - * {@link #showInputChoiceDialog(Component, String, String, String[], String, int)}
      - * {@link #showInputMultilineDialog(Component, String, String, String)}
      - * {@link #showInputSingleLineDialog(Component, String, String, String)} - *
      - *
      + *

      Data Input and Choice Dialogs

      + * The methods listed here allow the user to either enter data from the keyboard or to choose + * from a pre-populated list of data. + *
        + *
      • {@link #showInputChoiceDialog(Component, String, String, String[], String, int)}
      • + *
      • {@link #showInputMultilineDialog(Component, String, String, String)}
      • + *
      • {@link #showInputSingleLineDialog(Component, String, String, String)}
      • + *
      * * - *

      Yes/No Dialogs


      - *
      - *

      + *

      Yes/No Dialogs

      * Finally, there are a series of methods that present Yes and No buttons in * a dialog. There are versions that do and do not have a Cancel button. - *

      - *
      * * - *

      Basic Message / Warning / Error Dialogs


      - *
      - *

      + *

      Basic Message / Warning / Error Dialogs

      * If you would like to display a simple message to the user, but do not require input from the * user, then you should use the various methods of {@link Msg}, such as * {@link Msg#showInfo(Object, Component, String, Object)}. - *

      *

      * Note, the user will be unable to select any text shown in the message area of the dialog. - *

      - *
      * - *

      "Apply to All" / "Don't Show Again"


      - *
      - *

      For more advanced input dialog usage, to include allowing the user to tell the dialog + *

      "Apply to All" / "Don't Show Again"

      + * For more advanced input dialog usage, to include allowing the user to tell the dialog * to remember a particular decision, or to apply a given choice to all future request, see * {@link OptionDialogBuilder}. - *
      * * @see Msg * @see OptionDialogBuilder diff --git a/Ghidra/Framework/Docking/src/main/java/docking/widgets/autocomplete/TextFieldAutocompleter.java b/Ghidra/Framework/Docking/src/main/java/docking/widgets/autocomplete/TextFieldAutocompleter.java index 263641006e..f4a67e99d0 100644 --- a/Ghidra/Framework/Docking/src/main/java/docking/widgets/autocomplete/TextFieldAutocompleter.java +++ b/Ghidra/Framework/Docking/src/main/java/docking/widgets/autocomplete/TextFieldAutocompleter.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -77,7 +77,7 @@ import ghidra.util.task.SwingUpdateManager; * The simplest use case is to create a text field, create an autocompleter with a custom model, and * then attach and show. * - *
      + * 
      {@code
        * JTextField field = new JTextField();
        *
        * AutocompletionModel model = new AutocompletionModel() {
      @@ -90,7 +90,7 @@ import ghidra.util.task.SwingUpdateManager;
        * completer.attachTo(field);
        * // ... Add the field to, e.g., a dialog, and show.
        *
      - * 
      + * }
      * * @param the type of suggestions presented by this autocompleter. */ diff --git a/Ghidra/Framework/Docking/src/main/java/docking/widgets/filechooser/GhidraFileChooser.java b/Ghidra/Framework/Docking/src/main/java/docking/widgets/filechooser/GhidraFileChooser.java index 8096629abe..01727533c2 100644 --- a/Ghidra/Framework/Docking/src/main/java/docking/widgets/filechooser/GhidraFileChooser.java +++ b/Ghidra/Framework/Docking/src/main/java/docking/widgets/filechooser/GhidraFileChooser.java @@ -626,13 +626,13 @@ public class GhidraFileChooser extends ReusableDialogComponentProvider implement * Sets the GhidraFileChooser to allow the user to just * select files, just select * directories, or select both files and directories. The default is - * JFilesChooser.FILES_ONLY. + * {@link JFileChooser#FILES_ONLY}. * * @param mode the type of files to be displayed: *
        - *
      • GhidraFileChooser.FILES_ONLY - *
      • GhidraFileChooser.DIRECTORIES_ONLY - *
      • GhidraFileChooser.FILES_AND_DIRECTORIES + *
      • {@link GhidraFileChooser#FILES_ONLY}
      • + *
      • {@link GhidraFileChooser#DIRECTORIES_ONLY}
      • + *
      • {@link GhidraFileChooser#FILES_AND_DIRECTORIES}
      • *
      * * @exception IllegalArgumentException if mode is an @@ -1007,8 +1007,8 @@ public class GhidraFileChooser extends ReusableDialogComponentProvider implement *
        *
      • If the parent directory of the file exists, then the parent directory will be made * the current directory and the name of the file will be put into the filename - * textfield; otherwise, - *
      • If the parent file does not exist, then the selection is cleared. + * textfield; otherwise,
      • + *
      • If the parent file does not exist, then the selection is cleared.
      • *
      *

      * If the given file is null, then the selected file state is cleared. diff --git a/Ghidra/Framework/Docking/src/main/java/docking/widgets/searchlist/DefaultSearchListModel.java b/Ghidra/Framework/Docking/src/main/java/docking/widgets/searchlist/DefaultSearchListModel.java index bdd8ac2d2a..d38d9b1381 100644 --- a/Ghidra/Framework/Docking/src/main/java/docking/widgets/searchlist/DefaultSearchListModel.java +++ b/Ghidra/Framework/Docking/src/main/java/docking/widgets/searchlist/DefaultSearchListModel.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -26,8 +26,8 @@ import utility.function.Dummy; /** * Default implementation of the {@link SearchListModel}. Since this model's primary purpose is * to also implement the {@link ListModel}, this class extends the AbstractListModel. - * This model's primary type is T, but it implements the list model on SearchListEntry to provide - * more information for the custom rendering that groups items into categories. + * This model's primary type is T, but it implements the list model on {@code SearchListEntry} + * to provide more information for the custom rendering that groups items into categories. * * @param The type of items to display and select. */ diff --git a/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/GTableFilterPanel.java b/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/GTableFilterPanel.java index e2f5e3bbed..e2eb1c8eb6 100644 --- a/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/GTableFilterPanel.java +++ b/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/GTableFilterPanel.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -65,8 +65,8 @@ import utility.function.Callback; * * Important Usage Notes *

        - *
      • You must translate row values retrieved from the table using - * this panel. + *
      • You must translate row values retrieved from the table using + * this panel.
      • *

        * Since this class wraps the given table with a new model, you must use this class to * translate row number values. For example, when getting the selected row, the normal Java @@ -84,14 +84,14 @@ import utility.function.Callback; * * * - *

      • This class may set a new model on the given table, which can affect how tables are sized. + *
      • This class may set a new model on the given table, which can affect how tables are sized.
      • *

        * If {@link JTable#getAutoCreateColumnsFromModel()} returns true, then the columns will * be recreated and resized when this class is constructed. *

      • The {@link TableFilter} used by this class will be passed the empty string ("") when - * {@link TableFilter#acceptsRow(Object)} is called. + * {@link TableFilter#acceptsRow(Object)} is called.
      • *
      • You cannot rely on {@link JTable#getRowCount()} to access all of the table data, - * since the data may be filtered. + * since the data may be filtered.
      • *

        * To get a row count that is always all of the model's data, call * {@link #getUnfilteredRowCount()}. diff --git a/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/constrainteditor/LocalDateSpinnerModel.java b/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/constrainteditor/LocalDateSpinnerModel.java index b0f4ee2f79..41bfd6a670 100644 --- a/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/constrainteditor/LocalDateSpinnerModel.java +++ b/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/constrainteditor/LocalDateSpinnerModel.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -38,9 +38,9 @@ public class LocalDateSpinnerModel extends AbstractSpinnerModel { * @param maxDate maximum value for spinner model. (Can be null) * @param calendarField specifies the year, month, or day to increment/decrement. One of: *

          - *
        • Calendar.YEAR - *
        • Calendar.MONTH - *
        • Calendar.DAY_OF_MONTH + *
        • {@link Calendar#YEAR}
        • + *
        • {@link Calendar#MONTH}
        • + *
        • {@link Calendar#DAY_OF_MONTH}
        • *
        *

        */ @@ -128,9 +128,9 @@ public class LocalDateSpinnerModel extends AbstractSpinnerModel { * * @param calendarField one of *

          - *
        • Calendar.YEAR - *
        • Calendar.MONTH - *
        • Calendar.DAY_OF_MONTH + *
        • {@link Calendar#YEAR}
        • + *
        • {@link Calendar#MONTH}
        • + *
        • {@link Calendar#DAY_OF_MONTH}
        • *
        *

        * diff --git a/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/threaded/TableUpdateJob.java b/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/threaded/TableUpdateJob.java index ba4e1cfe99..53ba881ce4 100644 --- a/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/threaded/TableUpdateJob.java +++ b/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/threaded/TableUpdateJob.java @@ -191,18 +191,18 @@ public class TableUpdateJob { * effect depends on the running job's state: *

          *
        • If the sort state hasn't happened yet, all it does is set the comparator for when - * the sort occurs. + * the sort occurs.
        • *
        • If the sort state has already been started or completed, then this method attempts * to stop the current process phase and cause the state machine to return to the sort - * phase. + * phase.
        • *
        • If the current job has already entered the DONE state, then the sort cannot take * effect in this job and a false value is returned to indicate the - * sort was not handled by this job. + * sort was not handled by this job.
        • *
        * @param newSortingContext the TableColumnComparator to use to sort the data. * @param forceSort True signals to re-sort, even if this is already sorted * @return true if the sort can be processed by this job, false if this job is essentially - * already completed and therefor cannot perform the sort job. + * already completed and therefore cannot perform the sort job. */ public synchronized boolean requestSort(TableSortingContext newSortingContext, boolean forceSort) { @@ -225,16 +225,16 @@ public class TableUpdateJob { * depends on the running job's state: *
          *
        • If the filter state hasn't happened yet, then nothing needs to be done as this job - * will filter later anyway. + * will filter later anyway.
        • *
        • If the filter state has already been started or completed, then this method * attempts to stop the current process phase and cause the state machine to return to - * the filter phase. + * the filter phase.
        • *
        • If the current job has already entered the DONE state, then the filter cannot take * effect in this job and a false value is returned to indicate the filter was not - * handled by this job. + * handled by this job.
        • *
        * @return true if the filter can be processed by this job, false if this job is essentially - * already completed and therefor cannot perform the filter job. + * already completed and therefore cannot perform the filter job. */ public synchronized boolean requestFilter() { if (currentState == DONE) { @@ -718,7 +718,7 @@ public class TableUpdateJob { } /** - * Wraps a comparator to add progress monitoring and cancel checking + * Wraps a {@link Comparator} to add progress monitoring and cancel checking * * @param The type of data being sorted */ diff --git a/Ghidra/Framework/Docking/src/main/java/ghidra/util/task/BasicTaskMonitor.java b/Ghidra/Framework/Docking/src/main/java/ghidra/util/task/BasicTaskMonitor.java index 53d13b9450..dc72a9cb08 100644 --- a/Ghidra/Framework/Docking/src/main/java/ghidra/util/task/BasicTaskMonitor.java +++ b/Ghidra/Framework/Docking/src/main/java/ghidra/util/task/BasicTaskMonitor.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -30,7 +30,7 @@ import ghidra.util.exception.CancelledException; * the Java concurrent structures (e.g., {@link AtomicBoolean}). In order to keep the values of * this class's fields update-to-date, we have chosen to synchronize the package-level client of * this class. If this class is ever made public, then most of the methods herein need to - * be synchronized to prevent race conditions and to provide visibility. + * be synchronized to prevent race conditions and to provide visibility. */ class BasicTaskMonitor implements TaskMonitor { diff --git a/Ghidra/Framework/Docking/src/main/java/ghidra/util/task/TaskLauncher.java b/Ghidra/Framework/Docking/src/main/java/ghidra/util/task/TaskLauncher.java index 8f1b49aaf4..210933b37a 100644 --- a/Ghidra/Framework/Docking/src/main/java/ghidra/util/task/TaskLauncher.java +++ b/Ghidra/Framework/Docking/src/main/java/ghidra/util/task/TaskLauncher.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -26,7 +26,7 @@ import java.awt.Component; * {@link #TaskLauncher(Task, Component, int, int)}. Alternatively, for simpler uses, * see one of the many static convenience methods. * - *

        Modal Usage
        + *

        Modal Usage

        * Most clients of this class should not be concerned with where * the dialog used by this class will appear. By default, it will be shown over * the active window, which is the desired @@ -63,13 +63,12 @@ public class TaskLauncher { /** * A convenience method to directly run a {@link MonitoredRunnable} in a separate * thread as a {@link Task}, displaying a non-modal progress dialog. - *

        - * - * TaskLauncher.launchNonModal( "My task",
        - *   null, // parent
        - *   monitor -> { while ( !monitor.isCanceled() ) { longRunningWork(); } }
        + *

        {@code
        +	 * TaskLauncher.launchNonModal("My task",
        +	 *   null, // parent
        +	 *   monitor -> { while (!monitor.isCanceled()) { longRunningWork(); } }
         	 * );
        -	 * 
        +	 * }
        * *

        Note: the task created by this call will be both cancellable and have progress. If * you task cannot be cancelled or does not have progress, then do not use this @@ -93,13 +92,12 @@ public class TaskLauncher { /** * A convenience method to directly run a {@link MonitoredRunnable} in a separate * thread as a {@link Task}, displaying a modal progress dialog. - *

        - * - * TaskLauncher.launchModal( "My task",
        - *   null, // parent
        - *   monitor -> { while ( !monitor.isCanceled() ) { longRunningWork(); } }
        + *

        {@code
        +	 * TaskLauncher.launchModal("My task",
        +	 *    null, // parent
        +	 *    monitor -> { while (!monitor.isCanceled()) { longRunningWork(); } }
         	 * );
        -	 * 
        +	 * }
        * *

        Note: the task created by this call will be both cancellable and have progress. If * you task cannot be cancelled or does not have progress, then do not use this @@ -128,11 +126,11 @@ public class TaskLauncher { * to have it immediately go away. If you desire this default behavior, then do not use * this convenience method. * - *

        - * TaskLauncher.launchModal( "My task",
        - *   monitor -> { { foo(); }
        + *

        {@code
        +	 * TaskLauncher.launchModal("My task",
        +	 *   monitor -> { foo(); }
         	 * );
        -	 * 
        +	 * }
        * *

        Note: the task created by this call will not be cancellable nor have progress. If * you need either of these behaviors, the do not use this diff --git a/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/exec/PcodeUseropLibrary.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/exec/PcodeUseropLibrary.java index b9cba81972..91daf85621 100644 --- a/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/exec/PcodeUseropLibrary.java +++ b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/exec/PcodeUseropLibrary.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -40,7 +40,7 @@ public interface PcodeUseropLibrary { /** * The class of the empty userop library. * - * @see {@link PcodeUseropLibrary#nil()} + * @see PcodeUseropLibrary#nil() */ final class EmptyPcodeUseropLibrary implements PcodeUseropLibrary { @Override diff --git a/Ghidra/Framework/Generic/src/main/java/ghidra/util/CountLatch.java b/Ghidra/Framework/Generic/src/main/java/ghidra/util/CountLatch.java index 89b60bc34b..9a38981200 100644 --- a/Ghidra/Framework/Generic/src/main/java/ghidra/util/CountLatch.java +++ b/Ghidra/Framework/Generic/src/main/java/ghidra/util/CountLatch.java @@ -1,13 +1,12 @@ /* ### * IP: GHIDRA - * REVIEWED: YES * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -105,15 +104,15 @@ public class CountLatch { * dormant until one of two things happen: *
          *
        • The count reaches zero due to invocations of the - * {@link #decrement} method; or + * {@link #decrement} method; or
        • *
        • Some other thread {@linkplain Thread#interrupt interrupts} - * the current thread. + * the current thread.
        • *
        * *

        If the current thread: *

          - *
        • has its interrupted status set on entry to this method; or - *
        • is {@linkplain Thread#interrupt interrupted} while waiting, + *
        • has its interrupted status set on entry to this method; or
        • + *
        • is {@linkplain Thread#interrupt interrupted} while waiting,
        • *
        * then {@link InterruptedException} is thrown and the current thread's * interrupted status is cleared. @@ -138,10 +137,10 @@ public class CountLatch { * dormant until one of three things happen: *
          *
        • The count reaches zero due to invocations of the - * {@link #decrement} method; or + * {@link #decrement} method; or
        • *
        • Some other thread {@linkplain Thread#interrupt interrupts} - * the current thread; or - *
        • The specified waiting time elapses. + * the current thread; or
        • + *
        • The specified waiting time elapses.
        • *
        * *

        If the count reaches zero then the method returns with the @@ -149,8 +148,8 @@ public class CountLatch { * *

        If the current thread: *

          - *
        • has its interrupted status set on entry to this method; or - *
        • is {@linkplain Thread#interrupt interrupted} while waiting, + *
        • has its interrupted status set on entry to this method; or
        • + *
        • is {@linkplain Thread#interrupt interrupted} while waiting,
        • *
        * then {@link InterruptedException} is thrown and the current thread's * interrupted status is cleared. diff --git a/Ghidra/Framework/Graph/src/main/java/ghidra/graph/GraphAlgorithms.java b/Ghidra/Framework/Graph/src/main/java/ghidra/graph/GraphAlgorithms.java index 4a58588a9b..b8061dd9e2 100644 --- a/Ghidra/Framework/Graph/src/main/java/ghidra/graph/GraphAlgorithms.java +++ b/Ghidra/Framework/Graph/src/main/java/ghidra/graph/GraphAlgorithms.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -38,25 +38,30 @@ import util.CollectionUtils; * a node 'a' dominates node 'b' if all paths from start to 'b' contain 'a'; * a node always dominates itself (except in 'strict dominance', which is all * dominators except for itself) + * * *
      • * post-dominance: * A node 'b' is said to post-dominate node 'a' if all paths from 'a' * to END contain 'b' + *
      • * *
      • * immediate dominator: * the closest dominator of a node + *
      • * *
      • * dominance tree: * A dominator tree is a tree where each node's children are those nodes * it *immediately* dominates (a idom b) + *
      • * *
      • * dominance frontier: * the immediate successors of the nodes dominated by 'a'; it is the set of * nodes where d's dominance stops. + *
      • * *
      • * strongly connected components: @@ -64,8 +69,11 @@ import util.CollectionUtils; * from every other vertex. The strongly connected components * of an arbitrary directed graph form a partition into * subgraphs that are themselves strongly connected. + *
      • + * *
      • * graph density: + *
      • *
          *                        E
          *          Density =  --------
        diff --git a/Ghidra/Framework/Graph/src/main/java/ghidra/graph/viewer/GraphViewerUtils.java b/Ghidra/Framework/Graph/src/main/java/ghidra/graph/viewer/GraphViewerUtils.java
        index ae0dd17646..17ea317fe6 100644
        --- a/Ghidra/Framework/Graph/src/main/java/ghidra/graph/viewer/GraphViewerUtils.java
        +++ b/Ghidra/Framework/Graph/src/main/java/ghidra/graph/viewer/GraphViewerUtils.java
        @@ -4,9 +4,9 @@
          * Licensed under the Apache License, Version 2.0 (the "License");
          * you may not use this file except in compliance with the License.
          * You may obtain a copy of the License at
        - * 
        + *
          *      http://www.apache.org/licenses/LICENSE-2.0
        - * 
        + *
          * Unless required by applicable law or agreed to in writing, software
          * distributed under the License is distributed on an "AS IS" BASIS,
          * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
        @@ -48,11 +48,11 @@ import ghidra.graph.viewer.vertex.VisualGraphVertexShapeTransformer;
          * 
          * 
          *
        • Layout Space - the layout contains Point2D objects that represent positions of the - * vertices. + * vertices.
        • *
        • Graph Space - the space where the Layout points are transformed as the view is moved - * around the screen (e.g., as the user pans) + * around the screen (e.g., as the user pans)
        • *
        • View Space - the coordinate system of Java 2D rendering; scaling (zooming) transformations - * are applied at this layer + * are applied at this layer
        • *
        * *

        Note: vertex relative means that the value is from inside the vertex, or the vertex's diff --git a/Ghidra/Framework/Graph/src/main/java/ghidra/graph/viewer/edge/VisualGraphPathHighlighter.java b/Ghidra/Framework/Graph/src/main/java/ghidra/graph/viewer/edge/VisualGraphPathHighlighter.java index c96435223d..8d963a27bb 100644 --- a/Ghidra/Framework/Graph/src/main/java/ghidra/graph/viewer/edge/VisualGraphPathHighlighter.java +++ b/Ghidra/Framework/Graph/src/main/java/ghidra/graph/viewer/edge/VisualGraphPathHighlighter.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -49,7 +49,7 @@ import utility.function.Callback; *

      • Results must be cached for speed, but may cleared as the graph is mutated
      • *
      • Algorithms must not block the UI thread
      • *
      • Related actions (i.e., hover vs. selection) should cancel any pending action, but not - * unrelated actions (e.g., a new hover request should cancel a pending hover update) + * unrelated actions (e.g., a new hover request should cancel a pending hover update)
      • * * * Based on these requirements, we need to use multi-threading. Further complicating the need diff --git a/Ghidra/Framework/Gui/src/main/java/generic/theme/SystemThemeIds.java b/Ghidra/Framework/Gui/src/main/java/generic/theme/SystemThemeIds.java index 08851486ce..4b2eb71eca 100644 --- a/Ghidra/Framework/Gui/src/main/java/generic/theme/SystemThemeIds.java +++ b/Ghidra/Framework/Gui/src/main/java/generic/theme/SystemThemeIds.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -35,18 +35,18 @@ import generic.theme.laf.UiDefaultsMapper; *
      • VIEW - these ids are used for the colors and fonts used for widgets that display data * such as Trees, Tables, TextFieds, and Lists
      • *
      • MENU - these ids are used by menu components such as Menus and MenuItems.
      • - *
      • TOOLTIP - these ids are used just by the tooltip component + *
      • TOOLTIP - these ids are used just by the tooltip component
      • * *

        * For each of those categories the ids specify a specific property for those components. *

          - *
        • BG - the background color - *
        • FG - the foreground color - *
        • BG_SELECTED - the background color when the component is selected - *
        • FG_SELECTED - the foreground color when the component is selected - *
        • FG_DISABLED - the foreground color when the component is disabled - *
        • BG_BORDER - the border color - *
        • FONT - the font + *
        • BG - the background color
        • + *
        • FG - the foreground color
        • + *
        • BG_SELECTED - the background color when the component is selected
        • + *
        • FG_SELECTED - the foreground color when the component is selected
        • + *
        • FG_DISABLED - the foreground color when the component is disabled
        • + *
        • BG_BORDER - the border color
        • + *
        • FONT - the font
        • *
        */ public class SystemThemeIds { diff --git a/Ghidra/Framework/Gui/src/main/java/generic/theme/ThemeManager.java b/Ghidra/Framework/Gui/src/main/java/generic/theme/ThemeManager.java index 508d76da55..243e762227 100644 --- a/Ghidra/Framework/Gui/src/main/java/generic/theme/ThemeManager.java +++ b/Ghidra/Framework/Gui/src/main/java/generic/theme/ThemeManager.java @@ -41,13 +41,13 @@ import utility.function.Callback; * The basic idea is that all the colors, fonts, and icons used in an application should be * accessed indirectly via an "id" string. Then the actual color, font, or icon can be changed * without changing the source code. The default mapping of the id strings to a value is defined - * in .theme.properties files which are dynamically discovered by searching the module's + * in {@code .theme.properties} files which are dynamically discovered by searching the module's * data directory. Also, these files can optionally define a dark default value for an id which * would replace the standard default value in the event that the current theme specifies that it * is a dark theme. Themes are used to specify the application's {@link LookAndFeel}, whether or * not it is dark, and any customized values for colors, fonts, or icons. There are several * "built-in" themes, one for each supported {@link LookAndFeel}, but additional themes can - * be defined and stored in the users application home directory as a .theme file. + * be defined and stored in the users application home directory as a {@code .theme} file. *

        * Clients that just need to access the colors, fonts, and icons from the theme can use the * convenience methods in the {@link Gui} class. Clients that need to directly manipulate the diff --git a/Ghidra/Framework/Gui/src/main/java/generic/theme/laf/UiDefaultsMapper.java b/Ghidra/Framework/Gui/src/main/java/generic/theme/laf/UiDefaultsMapper.java index 433717b7d7..17ef4d0129 100644 --- a/Ghidra/Framework/Gui/src/main/java/generic/theme/laf/UiDefaultsMapper.java +++ b/Ghidra/Framework/Gui/src/main/java/generic/theme/laf/UiDefaultsMapper.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -47,16 +47,16 @@ import ghidra.util.Msg; * Some basic concepts: *

          *
        • UI Defaults - key-value pairs defined by the Java LaF; there are 2 key types, widget - * keys and Java group/reusable keys (e.g., Button.background; control) + * keys and Java group/reusable keys (e.g., Button.background; control)
        • *
        • UI Indirection - UI Defaults values are changed to point to custom terms we created to - * allow for indirection (e.g., Button.background -> laf.color.Button.background) + * allow for indirection (e.g., Button.background -> laf.color.Button.background)
        • *
        • Normalized Keys - keys we created to facilitate the UI Indirection, based upon the Java - * keys (e.g., laf.color.Button.background) + * keys (e.g., laf.color.Button.background)
        • *
        • System Color/Font Keys - user facing terms for common color or font concepts into an - * easy-to-change setting (e.g., system.color.fg.text) + * easy-to-change setting (e.g., system.color.fg.text)
        • *
        • Palette Keys - dynamically generated color palette keys based on the LaF for any colors * and fonts that were not mapped into an system color or font (e.g., - * laf.palette.color.01) + * laf.palette.color.01)
        • *
        * *

        @@ -65,7 +65,7 @@ import ghidra.util.Msg; *

      • Extracts all color, font, and icon values from the UI Defaults.
      • *
      • Use the current LaF values to populate the pre-defined system colors and fonts.
      • *
      • Any UI Defaults values not assigned in the previous step will be assigned to a dynamic shared - * palette color or font. + * palette color or font.
      • *
      • Update Java UI Defaults to use our indirection and system values.
      • * * diff --git a/Ghidra/Framework/Help/src/main/java/help/GHelpBuilder.java b/Ghidra/Framework/Help/src/main/java/help/GHelpBuilder.java index c343bdc3bb..2d57f5f4be 100644 --- a/Ghidra/Framework/Help/src/main/java/help/GHelpBuilder.java +++ b/Ghidra/Framework/Help/src/main/java/help/GHelpBuilder.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -37,9 +37,9 @@ import help.validator.location.HelpModuleCollection; * Note: Help links must not be absolute. They can be relative, including . and .. * syntax. Further, they can use the special help system syntax, which is: *
          - *
        • help/topics/topicName/Filename.html for referencing help topic files + *
        • help/topics/topicName/Filename.html for referencing help topic files
        • *
        • help/shared/image.png for referencing image files at paths rooted under - * the module's root help dir + * the module's root help dir
        • *
        */ public class GHelpBuilder { diff --git a/Ghidra/Framework/Project/src/main/java/ghidra/framework/main/logviewer/ui/FileViewer.java b/Ghidra/Framework/Project/src/main/java/ghidra/framework/main/logviewer/ui/FileViewer.java index 53b03de770..6c5a8ed7e7 100644 --- a/Ghidra/Framework/Project/src/main/java/ghidra/framework/main/logviewer/ui/FileViewer.java +++ b/Ghidra/Framework/Project/src/main/java/ghidra/framework/main/logviewer/ui/FileViewer.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -40,17 +40,17 @@ import utilities.util.FileUtilities; *
          *
        1. The viewer consists of a simple JTable and a custom JSlider. The table displays lines of * text described by {@link Chunk} objects. The number of chunks visible at any given time - * is restricted by the {@link ChunkModel#MAX_VISIBLE_CHUNKS} property. + * is restricted by the {@link ChunkModel#MAX_VISIBLE_CHUNKS} property.
        2. * *
        3. Because only part of the file is loaded into the viewable table at any given time, the * built-in scrollbar associated with the scroll pane cannot be used. We want the scroll bar * maximum size to reflect the total size of the file, not just what's in view at the time. So * we use our own slider implementation ({@link FVSlider}) and manage the size/position * ourselves. If you're asking why a JSlider is used instead of a JScrollPane, it's because the - * former is more easily configuration for what we need. + * former is more easily configuration for what we need.
        4. * *
        5. Communication between modules (the table, the slider, the viewport utility, etc...) is done - * almost exclusively via events, using the custom {@link FVEvent} framework. + * almost exclusively via events, using the custom {@link FVEvent} framework.
        6. *
        */ public class FileViewer extends JPanel implements Observer { diff --git a/Ghidra/Framework/Project/src/main/java/ghidra/framework/plugintool/Plugin.java b/Ghidra/Framework/Project/src/main/java/ghidra/framework/plugintool/Plugin.java index 3efd06adc5..955b0eeff5 100644 --- a/Ghidra/Framework/Project/src/main/java/ghidra/framework/plugintool/Plugin.java +++ b/Ghidra/Framework/Project/src/main/java/ghidra/framework/plugintool/Plugin.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -40,15 +40,17 @@ import ghidra.util.classfinder.ExtensionPoint; *

        *

        Well formed Plugins:

        *
          - *
        • Derive from Plugin (directly or indirectly). - *
        • Class name ends with "Plugin" and does not match any other Plugin, regardless of - * its location in the package tree. - *
        • Have a {@link PluginInfo @PluginInfo()} annotation. - *
        • Have a constructor with exactly 1 parameter: PluginTool. - *
            - *
          • public MyPlugin(PluginTool tool) { ... } - *
          - *
        • Usually overrides protected void init(). + *
        • Derive from Plugin (directly or indirectly).
        • + *
        • Class name ends with "Plugin" and does not match any other Plugin, regardless of its + * location in the package tree.
        • + *
        • Have a {@link PluginInfo @PluginInfo()} annotation.
        • + *
        • Have a constructor with exactly 1 parameter: PluginTool.
        • + *
        • + *
            + *
          • public MyPlugin(PluginTool tool) { ... }
          • + *
          + *
        • + *
        • Usually overrides protected void init().
        • *
        *

        Class naming

        * All Plugin Classes MUST END IN "Plugin". If not, the ClassSearcher will not find them. @@ -58,50 +60,60 @@ import ghidra.util.classfinder.ExtensionPoint; * *

        Plugin Life cycle

        *
          - *
        1. Your Plugin's constructor is called - *
            - *
          1. Plugin base class constructor is called. - *
              - *
            1. Services listed in the @PluginInfo annotation are automatically added - * to dependency list - *
            - *
          2. Your Plugin publishes any services listed in PluginInfo using - * {@link Plugin#registerServiceProvided(Class, Object) registerServiceProvided()}. - * (required) - *
          3. Create Actions (optional) - *
          4. Register {@link ghidra.framework.options.Options Options} with the - * {@link PluginTool#getOptions(String)}. (optional)
            - *
          - *
        2. Other Plugins are constructed, dependencies evaluated, etc.
          + *
        3. Your Plugin's constructor is called
        4. + *
        5. + *
            + *
          1. Plugin base class constructor is called.
          2. + *
          3. + *
              + *
            1. Services listed in the @PluginInfo annotation are automatically added to dependency + * list
            2. + *
            + *
          4. + *
          5. Your Plugin publishes any services listed in PluginInfo using + * {@link Plugin#registerServiceProvided(Class, Object) registerServiceProvided()}. + * (required)
          6. + *
          7. Create Actions (optional)
          8. + *
          9. Register {@link ghidra.framework.options.Options Options} with the + * {@link PluginTool#getOptions(String)}. (optional)

          10. + *
          + *
        6. + *
        7. Other Plugins are constructed, dependencies evaluated, etc.
          * If your dependencies are not available (i.e., not installed, threw an exception during their * initialization, etc), your Plugin's {@link #dispose()} will be called and then your Plugin - * instance will be discarded.
          - *
        8. Your Plugin's {@link #init()} method is called (when its dependencies are met). - *
            - *
          1. Call {@link PluginTool#getService(Class)} to get service - * implementations. (the service class being requested should already be - * listed in the @PluginInfo) - *
          2. Create Actions (optional) - *
          3. Other initialization stuff. - *
          - *
        9. Your Plugin's {@link #readConfigState(SaveState)} is called. - *
        10. ...user uses Ghidra... - *
            - *
          • Your Plugin's {@link #processEvent(PluginEvent)} is called for events. - *
          • Your Plugin's Action's methods (i.e., - * {@link DockingAction#actionPerformed(docking.ActionContext) actionPerformed}) are - * called. - *
          • Your Plugin's published service methods are called by other Plugins. - *
          • Your Plugin's listener methods are called. - *
          - *
        11. Plugin is unloaded due to shutdown of the Tool or being disabled by user - *
            - *
          1. Your Plugin's {@link #writeConfigState(SaveState)} is called - override this - * method to write configuration info into the Tool definition. - *
          2. Your Plugin's {@link #dispose()} is called - override this method to free - * any resources and perform any needed cleanup. - *
          3. Your Plugin's services and events are de-registered automatically. - *
          + * instance will be discarded.

        12. + *
        13. Your Plugin's {@link #init()} method is called (when its dependencies are met).
        14. + *
        15. + *
            + *
          1. Call {@link PluginTool#getService(Class)} to get service + * implementations. (the service class being requested should already be + * listed in the @PluginInfo)
          2. + *
          3. Create Actions (optional)
          4. + *
          5. Other initialization stuff.
          6. + *
          + *
        16. + *
        17. Your Plugin's {@link #readConfigState(SaveState)} is called.
        18. + *
        19. ...user uses Ghidra...
        20. + *
        21. + *
            + *
          • Your Plugin's {@link #processEvent(PluginEvent)} is called for events.
          • + *
          • Your Plugin's Action's methods (i.e., + * {@link DockingAction#actionPerformed(docking.ActionContext) actionPerformed}) are + * called.
          • + *
          • Your Plugin's published service methods are called by other Plugins.
          • + *
          • Your Plugin's listener methods are called.
          • + *
          + *
        22. + *
        23. Plugin is unloaded due to shutdown of the Tool or being disabled by user
        24. + *
        25. + *
            + *
          1. Your Plugin's {@link #writeConfigState(SaveState)} is called - override this + * method to write configuration info into the Tool definition.
          2. + *
          3. Your Plugin's {@link #dispose()} is called - override this method to free + * any resources and perform any needed cleanup.
          4. + *
          5. Your Plugin's services and events are de-registered automatically.
          6. + *
          + *
        26. *
        * *

        Plugin Service dependency

        @@ -164,26 +176,26 @@ import ghidra.util.classfinder.ExtensionPoint; *

        Plugin Events

        *
          *
        • Every type of plugin event should be represented by some class extending - * {@link PluginEvent}. + * {@link PluginEvent}.
        • *
        • One PluginEvent subclass may be used for more than one event type as long as there's some - * natural grouping. + * natural grouping.
        • *
        * *

        Component Providers

        *
          *
        • A plugin may supply a {@link ComponentProvider} that provides a visual component when - * the plugin is added to the tool. + * the plugin is added to the tool.
        • *
        * *

        Important interfaces Plugins often need to implement

        *
          *
        • {@link OptionsChangeListener} - to receive notification when a configuration option - * is changed by the user. + * is changed by the user.
        • *
        • {@link ApplicationLevelPlugin} - marks this Plugin as being suitable for inclusion in the - * application-level tool. + * application-level tool.
        • *
        • {@link ApplicationLevelOnlyPlugin} - marks this Plugin as application-level only, not - * usable in an application's sub-tools. - *
        • {@link ProgramaticUseOnly} - marks this Plugin as special and not for user configuration. + * usable in an application's sub-tools.
        • + *
        • {@link ProgramaticUseOnly} - marks this Plugin as special and not for user configuration.
        • *
        * */ diff --git a/Ghidra/Framework/Project/src/main/java/ghidra/framework/plugintool/PluginTool.java b/Ghidra/Framework/Project/src/main/java/ghidra/framework/plugintool/PluginTool.java index 4a0f47d91e..5dd633d397 100644 --- a/Ghidra/Framework/Project/src/main/java/ghidra/framework/plugintool/PluginTool.java +++ b/Ghidra/Framework/Project/src/main/java/ghidra/framework/plugintool/PluginTool.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -1197,13 +1197,13 @@ public abstract class PluginTool extends AbstractDockingTool { * Closes this tool, possibly with input from the user. The following conditions are checked * and can prompt the user for more info and allow them to cancel the close. *
          - *
        1. Running tasks. Closing with running tasks could lead to data loss. + *
        2. Running tasks. Closing with running tasks could lead to data loss.
        3. *
        4. Plugins get asked if they can be closed. They may prompt the user to resolve - * some plugin specific state. - *
        5. The user is prompted to save any data changes. + * some plugin specific state.
        6. + *
        7. The user is prompted to save any data changes.
        8. *
        9. Tools are saved, possibly asking the user to resolve any conflicts caused by - * changing multiple instances of the same tool in different ways. - *
        10. If all the above conditions passed, the tool is closed and disposed. + * changing multiple instances of the same tool in different ways.
        11. + *
        12. If all the above conditions passed, the tool is closed and disposed.
        13. *
        */ @Override diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/plugin/assembler/sleigh/SleighAssemblerBuilder.java b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/plugin/assembler/sleigh/SleighAssemblerBuilder.java index ccf42cbb41..3ca1b5e3bc 100644 --- a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/plugin/assembler/sleigh/SleighAssemblerBuilder.java +++ b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/plugin/assembler/sleigh/SleighAssemblerBuilder.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -187,8 +187,8 @@ import ghidra.program.model.listing.Program; * *
          *
        1. Resolve operands from right to left, descending into sub-table operands.
        2. - *
        3. Solve context mutations, in reverse order. - *
        4. Apply the required patterns + *
        5. Solve context mutations, in reverse order.
        6. + *
        7. Apply the required patterns
        8. *
        * *

        diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/plugin/processors/sleigh/ParserWalker.java b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/plugin/processors/sleigh/ParserWalker.java index 0f2cc7d104..358c4c2aac 100644 --- a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/plugin/processors/sleigh/ParserWalker.java +++ b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/plugin/processors/sleigh/ParserWalker.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -26,9 +26,9 @@ import ghidra.util.exception.AssertException; * Class for walking the Sleigh Parser tree. The nodes of the tree are the Sleigh Constructors arranged for a particular * instruction. This tree is walked for various purposes: *

          - *
        • SleighInstructionPrototype.resolve - initial parsing of instruction and building the tree - *
        • SleighInstructionPrototype.resolveHandles - filling in Varnode values for all the Constructor exports - *
        • PcodeEmit - for weaving together p-code for an instruction + *
        • SleighInstructionPrototype.resolve - initial parsing of instruction and building the tree
        • + *
        • SleighInstructionPrototype.resolveHandles - filling in Varnode values for all the Constructor exports
        • + *
        • PcodeEmit - for weaving together p-code for an instruction
        • *
        * */ diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/plugin/processors/sleigh/SleighParserContext.java b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/plugin/processors/sleigh/SleighParserContext.java index 6949072495..a125bfc4e4 100644 --- a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/plugin/processors/sleigh/SleighParserContext.java +++ b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/plugin/processors/sleigh/SleighParserContext.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -72,7 +72,7 @@ public class SleighParserContext implements ParserContext { /** * Constructor for building precompiled templates. - * NOTE: This form does not support use of inst_next2. + * NOTE: This form does not support use of {@code inst_next2}. * @param aAddr = address to which 'inst_start' resolves * @param nAddr = address to which 'inst_next' resolves * @param rAddr = special address associated with original call diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/plugin/processors/sleigh/VarnodeData.java b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/plugin/processors/sleigh/VarnodeData.java index 5c60196e6b..c33008a617 100644 --- a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/plugin/processors/sleigh/VarnodeData.java +++ b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/plugin/processors/sleigh/VarnodeData.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -36,7 +36,7 @@ public class VarnodeData { public int size; /** - * Encode the data to stream as an \ element + * Encode the data to stream as an {@code } element * @param encoder is the stream encoder * @throws IOException for errors writing to the underlying stream */ diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/plugin/processors/sleigh/template/ConstructTpl.java b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/plugin/processors/sleigh/template/ConstructTpl.java index 194b68e05e..78c2a68b60 100644 --- a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/plugin/processors/sleigh/template/ConstructTpl.java +++ b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/plugin/processors/sleigh/template/ConstructTpl.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -96,7 +96,7 @@ public class ConstructTpl { } /** - * Decode this template from a \ tag in the stream. + * Decode this template from a {@code } tag in the stream. * @param decoder is the stream * @return the constructor section id described by the tag * @throws DecoderException for errors in the encoding diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/util/NamespaceUtils.java b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/util/NamespaceUtils.java index 792e471ad2..6ba53ea9bd 100644 --- a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/util/NamespaceUtils.java +++ b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/util/NamespaceUtils.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -29,25 +29,25 @@ import ghidra.util.exception.*; * * Example string format: *
          - *
        • global{@link Namespace#DELIMITER ::}child1{@link Namespace#DELIMITER ::}child2 - *
        • child1 + *
        • global{@link Namespace#DELIMITER ::}child1{@link Namespace#DELIMITER ::}child2
        • + *
        • child1
        • *
        * * Assumptions for creating namespaces from a path string: *
          *
        • All elements of a namespace path should be namespace symbols and not other - * symbol types. - *
        • Absolute paths can optionally start with the global namespace. + * symbol types.
        • + *
        • Absolute paths can optionally start with the global namespace.
        • *
        • You can provide a relative path that will start at the given - * parent namespace (or global if there is no parent provided). + * parent namespace (or global if there is no parent provided).
        • *
        • You can provide a path that has as its first entry the name of the * given parent. In this case, the first entry will not be created, - * but rather the provided parent will be used. + * but rather the provided parent will be used.
        • *
        • If you provide a path and a parent, but the first element of the * path is the global namespace, then the global namespace will be - * used as the parent namespace and not the one that was provided. + * used as the parent namespace and not the one that was provided.
        • *
        • You cannot embed the global namespace in a path, but it can be at - * the root. + * the root.
        • *
        * * diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/util/PseudoDisassembler.java b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/util/PseudoDisassembler.java index 424f94ed33..45b09b5962 100644 --- a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/util/PseudoDisassembler.java +++ b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/util/PseudoDisassembler.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -361,10 +361,10 @@ public class PseudoDisassembler { /** * Check that this entry point leads to valid code: *
          - *
        • May have multiple entries into the body of the code. - *
        • The intent is that it be valid code, not nice code. - *
        • Hit no bad instructions. - *
        • It should return. + *
        • May have multiple entries into the body of the code.
        • + *
        • The intent is that it be valid code, not nice code.
        • + *
        • Hit no bad instructions.
        • + *
        • It should return.
        • *
        * @param entryPoint * @return true if the entry point leads to valid code @@ -377,10 +377,10 @@ public class PseudoDisassembler { /** * Check that this entry point leads to valid code: *
          - *
        • May have multiple entries into the body of the code. - *
        • The intent is that it be valid code, not nice code. - *
        • Hit no bad instructions. - *
        • It should return. + *
        • May have multiple entries into the body of the code.
        • + *
        • The intent is that it be valid code, not nice code.
        • + *
        • Hit no bad instructions.
        • + *
        • It should return.
        • *
        * * @param entryPoint location to test for valid code diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/util/SymbolPath.java b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/util/SymbolPath.java index 4cb840c043..fe274942e0 100644 --- a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/util/SymbolPath.java +++ b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/util/SymbolPath.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -28,9 +28,9 @@ import ghidra.program.model.symbol.*; * name of a symbol in the "bar" namespace, which is in the "foo" namespace. *

        *

          - *
        • {@link #getName()} will return "baz". - *
        • {@link #getParentPath()} will return "foo:bar". - *
        • {@link #getPath()} will return "foo::bar::baz". + *
        • {@link #getName()} will return "baz".
        • + *
        • {@link #getParentPath()} will return "foo:bar".
        • + *
        • {@link #getPath()} will return "foo::bar::baz".
        • *
        * */ diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/pcodeCPort/slgh_compile/ParseException.java b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/pcodeCPort/slgh_compile/ParseException.java index 9dbd54948b..baeaed59fb 100644 --- a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/pcodeCPort/slgh_compile/ParseException.java +++ b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/pcodeCPort/slgh_compile/ParseException.java @@ -1,13 +1,12 @@ /* ### * IP: GHIDRA - * REVIEWED: YES * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -28,18 +27,18 @@ package ghidra.pcodeCPort.slgh_compile; */ public class ParseException extends Exception { - /** - * This constructor is used by the method "generateParseException" - * in the generated parser. Calling this constructor generates - * a new object of this type with the fields "currentToken", - * "expectedTokenSequences", and "tokenImage" set. The boolean - * flag "specialConstructor" is also set to true to indicate that - * this constructor was used to create this object. - * This constructor calls its super class with the empty string - * to force the "toString" method of parent class "Throwable" to - * print the error message in the form: - * ParseException: - */ + /** + * This constructor is used by the method "generateParseException" + * in the generated parser. Calling this constructor generates + * a new object of this type with the fields "currentToken", + * "expectedTokenSequences", and "tokenImage" set. The boolean + * flag "specialConstructor" is also set to true to indicate that + * this constructor was used to create this object. + * This constructor calls its super class with the empty string + * to force the "toString" method of parent class "Throwable" to + * print the error message in the form: + * {@code ParseException: } + */ public ParseException(Token currentTokenVal, int[][] expectedTokenSequencesVal, String[] tokenImageVal diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/ProgramAddressFactory.java b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/ProgramAddressFactory.java index 885437c1f1..3dc0b79009 100644 --- a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/ProgramAddressFactory.java +++ b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/ProgramAddressFactory.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -40,7 +40,7 @@ public class ProgramAddressFactory extends DefaultAddressFactory { *
      • A stack space (see {@link AddressSpace#TYPE_STACK})
      • *
      • {@link AddressSpace#HASH_SPACE}
      • *
      • A join space (see {@link AddressSpace#TYPE_JOIN})
      • - * + * * In addition, support is provided for {@link ProgramOverlayAddressSpace}. * @param language language specification * @param compilerSpec compiler specification diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/SpecExtension.java b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/SpecExtension.java index e89f614cfb..2944a4d58c 100644 --- a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/SpecExtension.java +++ b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/SpecExtension.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -35,34 +35,37 @@ import ghidra.xml.*; /** * Utility class for installing/removing "specification extensions" to a Program. * A specification extension is a program specific version of either a: - * - Prototype Model - * - Call Fixup or - * - Callother Fixup + *
          + *
        • Prototype Model
        • + *
        • Call Fixup or
        • + *
        • Callother Fixup
        • + *
        * Normally these objects are provided by the language specific configuration files (.cspec or .pspec), * but this class allows additional objects to be added that are specific to the program. - * + *

        * Internally, each spec extension is stored as an XML document as a formal Program Option. Each type of * extension is described by a specific XML tag and is parsed as it would be in a .cspec or .pspec file. * The XML tags are: - * - \ - describing a Call Fixup - * - \ - describing a Callother Fixup - * - \ - describing a typical Prototype Model - * - \ - describing a Prototype Model merged from other models - * + *

          + *
        • {@code } - describing a Call Fixup
        • + *
        • {@code } - describing a Callother Fixup
        • + *
        • {@code } - describing a typical Prototype Model
        • + *
        • {@code } - describing a Prototype Model merged from other models
        • + *
        * Each type of object has a unique name or target, which must be specified as part of the XML tag, - * which is referred to in this class as the extension's "formal name". In the \ tag, - * the formal name is given by the "targetop" attribute; for all the other tags, the formal name is - * given by the "name" attribute". - * + * which is referred to in this class as the extension's "formal name". In the + * {@code } tag, the formal name is given by the "targetop" attribute; for all the + * other tags, the formal name is given by the "name" attribute". + *

        * The parent option for all extensions is given by the static field SPEC_EXTENSION. Under the parent * option, each extension is stored as a string with an option name, constructed by * concatenating the extension's formal name with a prefix corresponding to the extension's XML tag name. - * + *

        * testExtensionDocument() is used independently to extensively test whether a document * describes a valid extension. - * - * Extensions are installed on a program via addReplaceCompilerSpecExtension(). - * Extensions are removed from a program via removeCompilerSpecExtension(). + *

        + * Extensions are installed on a program via {@code addReplaceCompilerSpecExtension()}. + * Extensions are removed from a program via {@code removeCompilerSpecExtension()}. */ public class SpecExtension { @@ -394,10 +397,12 @@ public class SpecExtension { /** * Parse an XML string and build the corresponding compiler spec extension object. * Currently this can either be a - * - PrototypeModel or - * - InjectPayload + *

          + *
        • PrototypeModel
        • + *
        • InjectPayload
        • + *
        * - * For InjectPayloadCallfixup or InjectPayloadCallother, the p-code \ tag + * For InjectPayloadCallfixup or InjectPayloadCallother, the p-code {@code } tag * is also parsed, and the caller can control whether any parse errors * cause an exception or whether a dummy payload is provided instead. * @param optionName is the option name the extension is attached to diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/util/AddressRangeMapDB.java b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/util/AddressRangeMapDB.java index 7c76443f37..b90bfa018d 100644 --- a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/util/AddressRangeMapDB.java +++ b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/util/AddressRangeMapDB.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -39,9 +39,9 @@ import ghidra.util.task.TaskMonitor; *

        * This is implemented by storing records for each contiguous range with the same value. *

          - *
        • The key is the encoded start address of the range. - *
        • The TO_COL column of the record stores the encoded end address of the range. - *
        • The VALUE_COL column of the record stores the value for the range. + *
        • The key is the encoded start address of the range.
        • + *
        • The TO_COL column of the record stores the encoded end address of the range.
        • + *
        • The VALUE_COL column of the record stores the value for the range.
        • *
        *

        * This implementation is complicated by several issues. @@ -51,7 +51,7 @@ import ghidra.util.task.TaskMonitor; * Encoded addresses do not necessarily encode to keys that have the same ordering. * Therefore, all comparisons must be done in address space and not in the encoded space. * Also, record iterators must use the {@link AddressKeyRecordIterator} which will return - * records in address order versus encoded key order. + * records in address order versus encoded key order. *

      • The default space's image base can be changed after records have been created. This can * cause the address ranges represented by a record to wrap around. For example, suppose * the image base is 0 and you paint a range from address 0 to 0x20, which say maps to @@ -66,7 +66,8 @@ import ghidra.util.task.TaskMonitor; * logic, any wrapping record will first be split into two records before painting. However * we can only do this during a write operation (when we can make changes). Since the getter * methods and iterators cannot modify the database, they have to deal with wrapping - * records on the fly. + * records on the fly.
      • + * */ public class AddressRangeMapDB implements DBListener { public static final String RANGE_MAP_TABLE_PREFIX = "Range Map - "; diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/block/BasicBlockModel.java b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/block/BasicBlockModel.java index 515dbd03f8..345c880d98 100644 --- a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/block/BasicBlockModel.java +++ b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/block/BasicBlockModel.java @@ -1,13 +1,12 @@ /* ### * IP: GHIDRA - * REVIEWED: YES * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -26,14 +25,14 @@ import ghidra.program.model.symbol.*; * Each Codeblock is made up of contiguous instructions in address order. * * Blocks satisfy the following:
          - *
        1. Any instruction with a label starts a block. + *
        2. Any instruction with a label starts a block.
        3. *
        4. Each instruction that could cause program control flow to change local to - * the containing function (i.e., excludes calls) is the last instruction of a Codeblock. + * the containing function (i.e., excludes calls) is the last instruction of a Codeblock.
        5. *
        6. All other instructions are "NOP" fallthroughs, meaning * after execution the program counter will be at - * the instruction immediately following. + * the instruction immediately following.
        7. *
        8. Any instruction that is unreachable and has no label is also considered the start - * of a block. + * of a block.
        9. *
        * So a CodeBlock in this model consists of contiguous code that has zero or * more fallthrough or call instructions followed by a single flow instruction. @@ -41,11 +40,12 @@ import ghidra.program.model.symbol.*; * have a label at any other instruction contained in the block. * * This model handles delay slot instructions with the following - * assumptions:
          + * assumptions: + *
            *
          1. The delay slot depth of the delayed instruction will always * correspond to the number of delay slot instructions immediately * following the instruction. The model may not behave properly if - * the disassembled code violates this assumption. + * the disassembled code violates this assumption.
          2. *
          * @see ghidra.program.model.block.CodeBlockModel */ diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/block/SimpleBlockModel.java b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/block/SimpleBlockModel.java index f01fdb7a30..449d48c42b 100644 --- a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/block/SimpleBlockModel.java +++ b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/block/SimpleBlockModel.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -30,34 +30,35 @@ import ghidra.util.task.TaskMonitor; * Each Codeblock is made up of contiguous instructions in address order. * * Blocks satisfy the following:
            - *
          1. Any instruction with a label starts a block. + *
          2. Any instruction with a label starts a block.
          3. *
          4. Each instruction that could cause program control flow to change is the - * last instruction of a Codeblock. + * last instruction of a Codeblock.
          5. *
          6. All other instructions are "NOP" fallthroughs, meaning * after execution the program counter will be at - * the instruction immediately following. + * the instruction immediately following.
          7. *
          8. Any instruction that is unreachable and has no label is also considered the start - * of a block. + * of a block.
          9. *
          * So a CodeBlock in this model consists of contiguous code that has zero or * more nonflow fallthrough instructions followed by a single flow instruction. * Each block may or may not have a label at the first instruction, but may not * have a label at any other instruction contained in the block. - * + *

          * This model does not implement the pure simple block model * because unreachable code is still considered a block. - * + *

          * This model handles delay slot instructions with the following - * assumptions:

            + * assumptions: + *
              *
            1. A delayed instruction is always corresponds to a change in * flow and terminates a block. The delay slot instructions * following this instruction are always included with the - * block. Therefor, delay slot instructions will always fall - * at the bottom of a simple block. + * block. Therefore, delay slot instructions will always fall + * at the bottom of a simple block.
            2. *
            3. The delay slot depth of the delayed instruction will always * correspond to the number of delay slot instructions immediately * following the instruction. The model may not behave properly if - * the disassembled code violates this assumption. + * the disassembled code violates this assumption.
            4. *
            * @see ghidra.program.model.block.CodeBlockModel */ diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/data/BitFieldPackingImpl.java b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/data/BitFieldPackingImpl.java index e213342e22..899ba51463 100644 --- a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/data/BitFieldPackingImpl.java +++ b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/data/BitFieldPackingImpl.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -165,7 +165,7 @@ public class BitFieldPackingImpl implements BitFieldPacking { } /** - * Restore settings from a \ tag in an XML stream. + * Restore settings from a {@code } tag in an XML stream. * The XML is designed to override existing settings from the default constructor * @param parser is the XML stream */ diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/data/Composite.java b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/data/Composite.java index 320a5cadaf..7b95fdf200 100644 --- a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/data/Composite.java +++ b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/data/Composite.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -275,9 +275,9 @@ public interface Composite extends DataType { * affect of disabled packing differs between {@link Structure} and {@link Union}. When * packing disabled: *
              - *
            • Structures utilize explicit component offsets and produce undefined filler - * components where defined components do not consume space.
            • - *
            • Unions always place components at offset 0 and do not pad for alignment. + *
            • Structures utilize explicit component offsets and produce undefined filler + * components where defined components do not consume space.
            • + *
            • Unions always place components at offset 0 and do not pad for alignment.
            • *
            * In addition, when packing is disabled the default alignment is always 1 unless a * different minimum alignment has been set. When packing is enabled the overall diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/data/DataUtilities.java b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/data/DataUtilities.java index 6cf8153f3d..51c5b9493f 100644 --- a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/data/DataUtilities.java +++ b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/data/DataUtilities.java @@ -424,7 +424,7 @@ public final class DataUtilities { * *
          1. If the originalDataType is any type of pointer the supplied newDatatype * will replace the pointer's base type (e.g., int * would become db * when - * newDataType is {@link ByteDataType}). + * newDataType is {@link ByteDataType}).
          2. * *

            If false, only required transformations will be applied, Example: * if newDataType is a FunctionDefinitionDataType it will be transformed diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/data/StringDataType.java b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/data/StringDataType.java index f8977ca0c3..0629092f5e 100644 --- a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/data/StringDataType.java +++ b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/data/StringDataType.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -23,23 +23,23 @@ import ghidra.util.classfinder.ClassTranslator; *

            * All string data types: *

              - *
            • {@link StringDataType} - this type, fixed length, user settable charset. - *
            • {@link StringUTF8DataType} - fixed length UTF-8 string. - *
            • {@link TerminatedStringDataType} - terminated and unbounded string, user settable charset. - *
            • {@link TerminatedUnicodeDataType} - terminated and unbounded UTF-16 string. - *
            • {@link TerminatedUnicode32DataType} - terminated and unbounded UTF-32 string. - *
            • {@link PascalString255DataType} - length-prefixed string (limited to 255 chars), user settable charset. - *
            • {@link PascalStringDataType} - length-prefixed string (limited to 64k), user settable charset. - *
            • {@link PascalUnicodeDataType} - length-prefixed UTF-16 (limited to 64k). - *
            • {@link UnicodeDataType} - fixed length UTF-16 string. - *
            • {@link Unicode32DataType} - fixed length UTF-32 string. + *
            • {@link StringDataType} - this type, fixed length, user settable charset.
            • + *
            • {@link StringUTF8DataType} - fixed length UTF-8 string.
            • + *
            • {@link TerminatedStringDataType} - terminated and unbounded string, user settable charset.
            • + *
            • {@link TerminatedUnicodeDataType} - terminated and unbounded UTF-16 string.
            • + *
            • {@link TerminatedUnicode32DataType} - terminated and unbounded UTF-32 string.
            • + *
            • {@link PascalString255DataType} - length-prefixed string (limited to 255 chars), user settable charset.
            • + *
            • {@link PascalStringDataType} - length-prefixed string (limited to 64k), user settable charset.
            • + *
            • {@link PascalUnicodeDataType} - length-prefixed UTF-16 (limited to 64k).
            • + *
            • {@link UnicodeDataType} - fixed length UTF-16 string.
            • + *
            • {@link Unicode32DataType} - fixed length UTF-32 string.
            • *
            *

            * The following settings are supported by all string types on the data instance: *

              *
            • {@link TranslationSettingsDefinition} - controls display of string values that have been - * translated to english. - *
            • {@link RenderUnicodeSettingsDefinition} - controls display of non-ascii Unicode characters. + * translated to English.
            • + *
            • {@link RenderUnicodeSettingsDefinition} - controls display of non-ascii Unicode characters.
            • *
            */ public class StringDataType extends AbstractStringDataType { diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/data/StringLayoutEnum.java b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/data/StringLayoutEnum.java index 550a05c201..d8e0143a8c 100644 --- a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/data/StringLayoutEnum.java +++ b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/data/StringLayoutEnum.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,12 +18,12 @@ package ghidra.program.model.data; /** * Controls strings termination *
              - *
            • {@link StringLayoutEnum#FIXED_LEN} - *
            • {@link StringLayoutEnum#CHAR_SEQ} - *
            • {@link StringLayoutEnum#NULL_TERMINATED_UNBOUNDED} - *
            • {@link StringLayoutEnum#NULL_TERMINATED_BOUNDED} - *
            • {@link StringLayoutEnum#PASCAL_255} - *
            • {@link StringLayoutEnum#PASCAL_64k} + *
            • {@link StringLayoutEnum#FIXED_LEN}
            • + *
            • {@link StringLayoutEnum#CHAR_SEQ}
            • + *
            • {@link StringLayoutEnum#NULL_TERMINATED_UNBOUNDED}
            • + *
            • {@link StringLayoutEnum#NULL_TERMINATED_BOUNDED}
            • + *
            • {@link StringLayoutEnum#PASCAL_255}
            • + *
            • {@link StringLayoutEnum#PASCAL_64k}
            • *
            */ public enum StringLayoutEnum { diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/data/StructureDataType.java b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/data/StructureDataType.java index 3bc5fc85b9..497ea46d18 100644 --- a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/data/StructureDataType.java +++ b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/data/StructureDataType.java @@ -29,7 +29,7 @@ import ghidra.util.exception.AssertException; * NOTES: *
              *
            • Implementation is not thread safe when being modified.
            • - *
            • For a structure to treated as having a zero-length (see {@link #isZeroLength()}) it + *
            • For a structure to treated as having a zero-length (see {@link #isZeroLength()}) it
            • * *
            * diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/data/StructureFactory.java b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/data/StructureFactory.java index 149b48b7f9..5fdd018e4c 100644 --- a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/data/StructureFactory.java +++ b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/data/StructureFactory.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -47,12 +47,12 @@ public class StructureFactory { * @return A new structure not yet added to memory. * @throws IllegalArgumentException for the following conditions: *
              - *
            • if dataLength is not greater than zero + *
            • if dataLength is not greater than zero
            • *
            • if the number of components to add exceeds the available - * address space + * address space
            • *
            • if there are any instructions in the provided - * address space - *
            • if there are no data components to add to the structure + * address space
            • + *
            • if there are no data components to add to the structure
            • *
            */ public static Structure createStructureDataType(Program program, Address address, @@ -73,13 +73,13 @@ public class StructureFactory { * @return A new structure not yet added to memory. * @throws IllegalArgumentException for the following conditions: *
              - *
            • if structureName is null - *
            • if dataLength is not greater than zero + *
            • if structureName is null
            • + *
            • if dataLength is not greater than zero
            • *
            • if the number of components to add exceeds the available - * address space + * address space
            • *
            • if there are any instructions in the provided - * address space - *
            • if there are no data components to add to the structure + * address space
            • + *
            • if there are no data components to add to the structure
            • *
            */ public static Structure createStructureDataType(Program program, Address address, @@ -147,9 +147,9 @@ public class StructureFactory { * @throws IllegalArgumentException for the following conditions: *
              *
            • if the component at fromPath or the component - * at toPath are null - *
            • if there is not data to add to the structure - *
            • if the parent data type is not a structure + * at toPath are null
            • + *
            • if there is not data to add to the structure
            • + *
            • if the parent data type is not a structure
            • *
            */ public static Structure createStructureDataTypeInStrucuture(Program program, Address address, @@ -176,11 +176,11 @@ public class StructureFactory { * @return A new structure not yet added to memory. * @throws IllegalArgumentException for the following conditions: *
              - *
            • if structureName is null + *
            • if structureName is null
            • *
            • if the component at fromPath or the component - * at toPath are null - *
            • if there is not data to add to the structure - *
            • if the parent data type is not a structure + * at toPath are null
            • + *
            • if there is not data to add to the structure
            • + *
            • if the parent data type is not a structure
            • *
            */ public static Structure createStructureDataTypeInStrucuture(Program program, Address address, diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/lang/BasicCompilerSpec.java b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/lang/BasicCompilerSpec.java index 89bb059f43..9b36c235c5 100644 --- a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/lang/BasicCompilerSpec.java +++ b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/lang/BasicCompilerSpec.java @@ -5,9 +5,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -582,7 +582,7 @@ public class BasicCompilerSpec implements CompilerSpec { } /** - * Initialize this object from an XML stream. A single \ tag is expected. + * Initialize this object from an XML stream. A single {@code } tag is expected. * @param parser is the XML stream * @throws XmlParseException for badly formed XML * @throws DuplicateNameException if we parse more than one PrototypeModel with the same name diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/lang/CompilerSpec.java b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/lang/CompilerSpec.java index ce9f62732d..550f7b9a07 100644 --- a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/lang/CompilerSpec.java +++ b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/lang/CompilerSpec.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -261,7 +261,7 @@ public interface CompilerSpec { /** * Encode this entire specification to a stream. A document is written with - * root element \. + * root element {@code }. * @param encoder is the stream encoder * @throws IOException for errors writing to the underlying stream */ diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/lang/ContextSetting.java b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/lang/ContextSetting.java index f71e63cfdf..c7999a2a3b 100644 --- a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/lang/ContextSetting.java +++ b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/lang/ContextSetting.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -47,11 +47,11 @@ public final class ContextSetting { } /** - * Construct from an XML \ tag. The tag is a child of either \ or \ - * which provides details of the memory range affected. + * Construct from an XML {@code } tag. The tag is a child of either {@code } + * or {@code } which provides details of the memory range affected. * @param el is the XML tag * @param cspec is used to lookup register names present in the tag - * @param isContextReg is true for a \ parent, false for a \ parent + * @param isContextReg is true for a {@code } parent, false for a {@code } parent * @param first is the first Address in the affected memory range * @param last is the last Address in the affected memory range */ diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/lang/InjectPayload.java b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/lang/InjectPayload.java index f357d90ae5..6284a9244f 100644 --- a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/lang/InjectPayload.java +++ b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/lang/InjectPayload.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -157,7 +157,7 @@ public interface InjectPayload { public boolean isIncidentalCopy(); /** - * Encode configuration parameters as a \ element to stream + * Encode configuration parameters as a {@code } element to stream * @param encoder is the stream encoder * @throws IOException for errors writing to the underlying stream */ @@ -165,7 +165,7 @@ public interface InjectPayload { /** * Restore the payload from an XML stream. The root expected document is - * the \ tag, which may be wrapped with another tag by the derived class. + * the {@code } tag, which may be wrapped with another tag by the derived class. * @param parser is the XML stream * @param language is used to resolve registers and address spaces * @throws XmlParseException for badly formed XML diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/pcode/AddressXML.java b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/pcode/AddressXML.java index 4e001d33bf..d4fc461e17 100644 --- a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/pcode/AddressXML.java +++ b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/pcode/AddressXML.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -34,15 +34,16 @@ import ghidra.xml.XmlParseException; /** * Utility class for the myriad ways of marshaling/unmarshaling an address and an optional size, * to/from XML for the various configuration files. - * + *

            * An object of the class itself is the most general form, where the specified address - * - MAY have an associated size given in bytes - * - MAY be in the JOIN address space, with physical pieces making up the logical value explicitly provided. - * - * The static buildXML methods write out an \ tag given component elements without allocating an object. + *

              + *
            • MAY have an associated size given in bytes
            • + *
            • MAY be in the JOIN address space, with physical pieces making up the logical value explicitly provided
            • + *
            + * The static buildXML methods write out an {@code } tag given component elements without allocating an object. * The static readXML methods read XML tags (presented in different forms) and returns an Address object. * The static appendAttributes methods write out attributes of an address to an arbitrary XML tag. - * The static restoreXML methods read an \ tag and produce a general AddressXML object. + * The static restoreXML methods read an {@code } tag and produce a general AddressXML object. */ public class AddressXML { @@ -136,7 +137,7 @@ public class AddressXML { } /** - * Encode this sized address as an \ element to the stream + * Encode this sized address as an {@code } element to the stream * @param encoder is the stream encoder * @throws IOException for errors in the underlying stream */ @@ -433,12 +434,14 @@ public class AddressXML { /** * Create an address from a stream encoding. This recognizes elements - * - \ - * - \ - * - \ or - * - any element with "space" and "offset" attributes - * - * An empty \ element, with no attributes, results in Address.NO_ADDRESS being returned. + *
              + *
            • {@code }
            • + *
            • {@code }
            • + *
            • {@code } or
            • + *
            • any element with "space" and "offset" attributes
            • + *
            + * An empty {@code } element, with no attributes, results in {@link Address#NO_ADDRESS} + * being returned. * @param decoder is the stream decoder * @return Address created from decode info * @throws DecoderException for any problems decoding the stream @@ -545,7 +548,7 @@ public class AddressXML { } /** - * Encode the given Address as an \ element to the stream + * Encode the given Address as an {@code } element to the stream * * @param encoder is the stream encoder * @param addr -- Address to encode @@ -563,7 +566,7 @@ public class AddressXML { } /** - * Encode the given Address and a size as an \ element to the stream + * Encode the given Address and a size as an {@code } element to the stream * * @param encoder is the stream encoder * @param addr is the given Address @@ -577,9 +580,9 @@ public class AddressXML { } /** - * Encode a sequence of Varnodes as a single \ element to the stream. + * Encode a sequence of Varnodes as a single {@code } element to the stream. * If there is more than one Varnode, or if the logical size is non-zero, - * the \ element will specify the address space as "join" and will have + * the {@code } element will specify the address space as "join" and will have * additional "piece" attributes. * * @param encoder is the stream encoder diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/pcode/PcodeDataTypeManager.java b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/pcode/PcodeDataTypeManager.java index 9af94f1f9c..d2d0503538 100644 --- a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/pcode/PcodeDataTypeManager.java +++ b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/pcode/PcodeDataTypeManager.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -826,8 +826,8 @@ public class PcodeDataTypeManager { /** * Encode a TypeDef data-type to the stream. Generally this sends - * a \ element with a \ reference to the underlying data-type being typedefed, - * but we check for Settings on the TypeDef object that can indicate + * a {@code } element with a {@code } reference to the underlying data-type being + * typedefed, but we check for Settings on the TypeDef object that can indicate * specialty data-types with their own encodings. * @param encoder is the stream encoder * @param type is the TypeDef to build the XML for diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/pcode/PcodeOp.java b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/pcode/PcodeOp.java index 8c993de27a..fedc30abfe 100644 --- a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/pcode/PcodeOp.java +++ b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/pcode/PcodeOp.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -431,7 +431,7 @@ public class PcodeOp { /** * Encode just the opcode and input/output Varnode data for this PcodeOp to a stream - * as an \ element + * as an {@code } element * @param encoder is the stream encoder * @param addrFactory is a factory for looking up encoded address spaces * @throws IOException for errors in the underlying stream diff --git a/Ghidra/Framework/Utility/src/main/java/ghidra/framework/ApplicationIdentifier.java b/Ghidra/Framework/Utility/src/main/java/ghidra/framework/ApplicationIdentifier.java index a2ff8d4753..a417595054 100644 --- a/Ghidra/Framework/Utility/src/main/java/ghidra/framework/ApplicationIdentifier.java +++ b/Ghidra/Framework/Utility/src/main/java/ghidra/framework/ApplicationIdentifier.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -29,7 +29,7 @@ import utility.application.ApplicationUtilities; *

            * Examples: *

              - *
            • ghidra-7.4_DEV + *
            • ghidra-7.4_DEV
            • *
            */ public class ApplicationIdentifier { diff --git a/Ghidra/Framework/Utility/src/main/java/ghidra/framework/ApplicationVersion.java b/Ghidra/Framework/Utility/src/main/java/ghidra/framework/ApplicationVersion.java index b549c37003..bf53b68224 100644 --- a/Ghidra/Framework/Utility/src/main/java/ghidra/framework/ApplicationVersion.java +++ b/Ghidra/Framework/Utility/src/main/java/ghidra/framework/ApplicationVersion.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,16 +18,16 @@ package ghidra.framework; /** * Class to represent an application's version information. *

            - * The version format is \d\.\d(\.\d)?(\-.+)? + * The version format is {@code \d\.\d(\.\d)?(\-.+)?} *

            * Note: this class has a natural ordering that is inconsistent with equals (the tag * part of the version is disregarded in the {@link #compareTo(ApplicationVersion)} method). *

            * Examples: *

              - *
            • 7.4 - *
            • 7.4.1 - *
            • 7.4.1-BETA + *
            • 7.4
            • + *
            • 7.4.1
            • + *
            • 7.4.1-BETA
            • *
            */ public class ApplicationVersion implements Comparable { diff --git a/Ghidra/Framework/Utility/src/main/java/ghidra/util/UserSearchUtils.java b/Ghidra/Framework/Utility/src/main/java/ghidra/util/UserSearchUtils.java index 3cd71fb1ed..4bd372ea8c 100644 --- a/Ghidra/Framework/Utility/src/main/java/ghidra/util/UserSearchUtils.java +++ b/Ghidra/Framework/Utility/src/main/java/ghidra/util/UserSearchUtils.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -82,10 +82,10 @@ public class UserSearchUtils { * Note: This method will escape regular expression * characters, such as: *
              - *
            • ? - *
            • . - *
            • $ - *
            • ...and many others + *
            • ?
            • + *
            • .
            • + *
            • $
            • + *
            • ...and many others
            • *
            * Thus, this method is not meant to accept regular expressions, but * rather generates regular expressions.