int disassembler (
unsigned long iadr,
void (*print_header)() );
Specifies the instruction address to be disassembled. Specifies how registers are named in the disassembly; if the value is 0, compiler names are used; otherwise, hardware names are used.
The next four arguments are function pointers, most of which give the caller some flexibility in the appearance of the disassembly. The only function that must be provided is get_bytes. All other functions are optional; pass a NULL for each that is not needed. Is called with no arguments and returns the next byte or bytes to disassemble. Is passed an address, which is the target of a jmp, jsr, or bsr instruction. If NULL is returned or if get_symname is NULL, the disassembler prints the address; otherwise, the string name is printed as returned from get_symname. If not NULL, is passed a register number and returns the current contents of the specified register. The disassembler prints this information along with the instruction disassembly. If not NULL, is passed the instruction address iadr and the current instruction to be disassembled, which is the return value from get_bytes. Print_header can use these parameters to print any desired information before the actual instruction disassembly is printed.
The disassembler disassembles and prints a machine instruction on stdout.
The program must be linked with the object file access routine library libmld.a.
If get_bytes is NULL, the disassembler returns -1 and errno is set to EINVAL; otherwise, the number of bytes that were disassembled is returned.
ldfcn(4). delim off