libMarshall
<?xml version="1.0" encoding="UTF-8"?>
<!-- $Id$ -->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY firstname "Pierre">
<!ENTITY surname "Pronchery">
<!ENTITY username "khorben">
<!ENTITY email "khorben@defora.org">
<!ENTITY section "1">
<!ENTITY title "libMarshall User Manual">
<!ENTITY package "DeforaOS libMarshall">
<!ENTITY name "runso">
<!ENTITY purpose "Execute methods in arbitrary binaries">
]>
<refentry>
<refentryinfo>
<title>&title;</title>
<date>@DATE@</date>
<productname>&package;</productname>
<authorgroup>
<author>
<firstname>&firstname;</firstname>
<surname>&surname;</surname>
<contrib>Code and documentation.</contrib>
<address>
<email>&email;</email>
</address>
</author>
</authorgroup>
<copyright>
<year>2016</year>
<year>2017</year>
<year>2018</year>
<year>2019</year>
<holder>&firstname; &surname; <&email;></holder>
</copyright>
<legalnotice>
<para>This manual page was written for the DeforaOS project (and may be
used by others).</para>
<para>Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU General Public License,
Version 3 as published by the Free Software Foundation.</para>
</legalnotice>
</refentryinfo>
<refmeta>
<refentrytitle>&name;</refentrytitle>
<manvolnum>§ion;</manvolnum>
</refmeta>
<refnamediv>
<refname>&name;</refname>
<refpurpose>&purpose;</refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>&name;</command>
<arg choice="plain"><replaceable>filename</replaceable></arg>
<arg choice="plain"><replaceable>method</replaceable></arg>
<arg choice="plain" rep="repeat">
<arg choice="opt"><replaceable>argument</replaceable></arg>
</arg>
</cmdsynopsis>
<cmdsynopsis>
<command>&name;</command>
<arg choice="plain"><option>-s</option></arg>
<arg choice="plain"><replaceable>method</replaceable></arg>
<arg choice="plain" rep="repeat">
<arg choice="opt"><replaceable>argument</replaceable></arg>
</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1 id="description">
<title>Description</title>
<para><command>&name;</command> is a generic tool for executing code contained
in existing plug-ins, libraries or executable files.</para>
</refsect1>
<refsect1 id="options">
<title>Options</title>
<para><command>&name;</command> expects a path to the binary file to open, the
name of a symbol to look up, and an optional list of arguments to be given on
the command line.</para>
<para>If the <option>-s</option> option is set, <command>&name;</command> will
look for symbols within its own process image at run-time.</para>
<variablelist>
<varlistentry>
<term><option>-s</option></term>
<listitem>
<para>Look for callbacks inside &name; itself.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="bugs">
<title>Bugs</title>
<para>The following issues are currently known:</para>
<itemizedlist>
<listitem><para>The value returned is assumed to be a 32-bits
integer.</para></listitem>
<listitem><para>Arguments are not supported at the moment.</para></listitem>
</itemizedlist>
<para>Further issues can be listed and reported at <ulink
url="https://www.defora.org/os/project/bug_list/4400/libMarshall"/>.</para>
</refsect1>
<refsect1 id="see_also">
<title>See also</title>
<para>
<citerefentry>
<refentrytitle>ffi</refentrytitle>
<manvolnum>3</manvolnum>
</citerefentry>
</para>
</refsect1>
</refentry>
<!-- vim: set noet ts=1 sw=1 sts=1 tw=80: -->