Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
x86_init(3)			   libdisasm			   x86_init(3)

NAME
       x86_init, x86_cleanup - initialize and cleanup libdisasm

SYNOPSIS
       #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);

DESCRIPTION
       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
       };

EXAMPLES
       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();
       }

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

mammon_				     0.21			   x86_init(3)

NAME | SYNOPSIS | DESCRIPTION | EXAMPLES | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=x86_init&sektion=3&manpath=FreeBSD+13.0-RELEASE+and+Ports>

home | help