GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
x86_init(3) libdisasm x86_init(3)

x86_init, x86_cleanup - initialize and cleanup libdisasm

#include <libdis.h>

typedef void (*DISASM_REPORTER)( enum x86_report_codes code, void * data, void * arg );

int x86_init( enum x86_options options, DISASM_REPORTER reporter, void * arg);

int x86_cleanup(void);

enum x86_options {
opt_none= 0,
opt_ignore_nulls=1, /* ignore sequences of > 4 NULL bytes */
opt_16_bit=2, /* 16-bit/DOS disassembly */
opt_unknown
};

enum x86_report_codes { report_disasm_bounds, report_insn_bounds, report_invalid_insn, report_unknown
};

The following provides a skeleton for initializing and terminating
libdisasm:

void reporter( enum x86_report_codes code, void *data, void *arg ) { char * str = NULL; FILE *stream = (FILE *) arg; if (! stream ) stream = stderr;

/* here would could examine the error and do something useful; * instead we just print that an error occurred */ switch ( code ) { case report_disasm_bounds: str = "Attempt to disassemble RVA " "beyond end of buffer"; break; case report_insn_bounds: str = "Instruction at RVA extends " "beyond buffer"; break; case report_invalid_insn: str = "Invalid opcode at RVA"; break; case report_unknown: str = "Unknown Error"; break; }

fprintf(stream, "ERROR ´%s:´ %p0, str, data);
}

int main( int argc, char **argv ) { x86_init(opt_none, reporter, stderr);

/* disassembler code goes here */

x86_cleanup();
}

libdisasm(7), x86_disasm(3), x86_format_insn(3), x86dis(1)

0.21 mammon_

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.