Start documentation of scripting API
authorChristoph Egger <christoph@christoph-egger.org>
Sat, 10 Oct 2015 16:52:42 +0000 (18:52 +0200)
committerChristoph Egger <christoph@christoph-egger.org>
Sat, 10 Oct 2015 17:03:36 +0000 (19:03 +0200)
source/api.rst [new file with mode: 0644]
source/index.rst

diff --git a/source/api.rst b/source/api.rst
new file mode 100644 (file)
index 0000000..ad044f0
--- /dev/null
@@ -0,0 +1,91 @@
+API
+===
+
+The APIs for the individual programming languages all derive from the
+C++ structure of ``src/core`` adapted to the native spelling of the
+respective programming language. As an example, all from within guile
+all methods are available as ``classname-functionname`` with
+name-components separated by dashes instead of CamelCase.
+
+Function
+--------
+
+.. cpp:class:: Function
+
+   Represents a function in the binary. Functions are typically the
+   target of ``call`` instructions and are composed of
+   :cpp:class:`BasicBlock`
+
+.. cpp:function:: std::string Function::getName() const
+
+   Returns the Name of the function
+
+.. cpp:function:: void Function::setName(const std::string& new_name)
+
+   Updates the Name of the Function. Also takes care to notify all
+   consumers of the changed name so the new name is displayed
+   consistently
+
+.. cpp:function:: bool Function::isDynamic() const
+
+   Returns whether the Function is of the dynamic type. Dynamic
+   functions are the ones which are imported from shared libraries and
+   not structly part of the binary at hand.
+
+.. cpp:function:: uint64_t Function::getStartAddress() const
+
+.. cpp:function:: InformationManager* Function::getManager() const
+
+.. cpp:function:: void Function::addBasicBlock(BasicBlock* block)
+
+.. cpp:function:: const std::map<uint64_t, BasicBlock*>& Function::blocks()
+
+BasicBlock
+----------
+.. cpp:class:: BasicBlock
+
+.. cpp:function:: uint64_t BasicBlock::getStartAddress() const
+.. cpp:function:: uint64_t BasicBlock::getEndAddress() const
+.. cpp:function:: void BasicBlock::setStartAddress(uint64_t address)
+.. cpp:function:: void BasicBlock::setEndAddress(uint64_t address)
+.. cpp:function:: InformationManager* BasicBlock::getManager() const
+.. cpp:function:: uint64_t BasicBlock::getNextBlock(size_t index) const
+.. cpp:function:: void BasicBlock::setNextBlock(size_t index, uint64_t address)
+.. cpp:function:: std::string BasicBlock::getName() const
+.. cpp:function:: std::vector<Instruction> BasicBlock::getInstructions() const
+
+Comment
+-------
+
+.. cpp:class:: Comment
+
+.. cpp:function:: bool Comment::isLocal() const
+
+   Comments, which are valid for every instance of an address are
+   considered *global* while comments only valid within the
+   context of the current function are considered *local*
+
+.. cpp:function:: void Comment::setText(const std::string& text)
+
+   Updates the text of an comment and takes care of notifying all
+   consumers of the change.
+
+.. cpp:function:: std::string Comment::getText() const
+
+   Returns the current text of the comment without any :doc:`macros` expanded.
+
+.. cpp:function:: uint64_t Comment::getAddress()
+
+   Returns address this comment talks about
+
+.. cpp:function:: Function* Comment::getLocation()
+
+   Returns the function, the comment talks about, or NULL if the
+   function is local
+
+
+InformationManager
+------------------
+
+Disassembler
+------------
index 3596dc8917203a84f38703a41053d77e861a4737..3466c7407e78ef37a3f1b8346b7c2ffe618a85a8 100644 (file)
@@ -16,7 +16,8 @@ Contents:
    using                         
    macros
    scripting
-   
+   api
+
 Indices and tables
 ==================