object man page on Plan9

Man page or keyword search:  
man Server   549 pages
apropos Keyword Search (all sections)
Output format
Plan9 logo
[printable version]

OBJECT(2)							     OBJECT(2)

NAME
       objtype,	 readobj,  objtraverse,	 isar,	nextar,	 readar	 - object file
       interpretation functions

SYNOPSIS
       #include <u.h>
       #include <libc.h>
       #include <bio.h>
       #include <mach.h>

       int  objtype(Biobuf *bp, char **name)

       int  readobj(Biobuf *bp, int objtype)

       void  objtraverse(void(*)(Sym*, void*), void*)

       int isar(Biobuf *bp)

       int nextar(Biobuf *bp, int offset, char *buf)

       int readar(Biobuf *bp, int objtype, int end)

DESCRIPTION
       These functions provide machine-independent access to object files in a
       directory  or  an  archive.   Mach(2) and symbol(2) describe additional
       library functions  for  interpreting  executable	 files	and  executing
       images.

       Object  files  contain  no  formal symbol table; instead, references to
       symbols must be extracted from the encoded  object  representation  and
       resolved.  The resulting symbol information is loaded into a dummy sym‐
       bol table where it is available for processing by an application.   The
       organization of the dummy symbol table is identical to that produced by
       the loader and described in symbol(2) and a.out(6):  a  vector  of  Sym
       data  structures	 defining  the	name, type and relative offset of each
       symbol.

       Objtype reads the header at the current position of the file associated
       with  bp	 (see Bio(2)) to see if it is an intermediate object file.  If
       it is, a code indicating the architecture type of the file is  returned
       and the second argument, if it is non-zero, is set pointing to a string
       describing the type of the file.	 If the header does  not  indicate  an
       object  file,  -1  is  returned.	  The header may be at the start of an
       object file or at the beginning of an  archive  member.	 The  file  is
       rewound to its starting position after decoding the header.

       Readobj	constructs  a symbol table for the object file associated with
       bp.  The second argument contains the type code	produced  by  function
       objtype.	  The file must be positioned at the start of the object file.
       Each invocation of readobj destroys the symbol definitions for any pre‐
       vious file.

       Objtraverse  scans  the	symbol	table  previously  built by readobj or
       readar.	Objtraverse requires two arguments: the address of a call-back
       function and a generic pointer.	The call-back function is invoked once
       for each symbol in the symbol table with the  address  of  a  Sym  data
       structure as the first argument and the generic pointer as the second.

       Isar  reads the header at the current point in the file associated with
       bp and returns 1 if it is an archive or zero otherwise.	 The  file  is
       positioned at the end of the archive header and at the beginning of the
       first member of the archive.

       Nextar extracts information describing the  archive  member  stored  at
       offset  in  the	file associated with bp.  If the header describing the
       member can be  extracted	 and  decoded,	the  size  of  the  member  is
       returned.   Adding this value to offset yields the offset of the begin‐
       ning of the next member in the archive.	On return the  input  file  is
       positioned  at  the end of the member header and the name of the member
       is stored in buf, a buffer of SARNAME characters.  If there are no more
       members,	 nextar returns zero; a negative return indicates a missing or
       malformed header.

       Readar constructs the symbol table of the object	 file  stored  at  the
       current	position  in  the  archive  associated with bp.	 This function
       operates exactly as readobj; the only difference is the extra argument,
       end,  specifying	 the offset to the beginning of the next member in the
       archive.	 Readar leaves the file positioned at that point.

SOURCE
       /sys/src/libmach

SEE ALSO
       mach(2), symbol(2), bio(2), a.out(6)

DIAGNOSTICS
       These routines set errstr.

								     OBJECT(2)
[top]
                             _         _         _ 
                            | |       | |       | |     
                            | |       | |       | |     
                         __ | | __ __ | | __ __ | | __  
                         \ \| |/ / \ \| |/ / \ \| |/ /  
                          \ \ / /   \ \ / /   \ \ / /   
                           \   /     \   /     \   /    
                            \_/       \_/       \_/ 
More information is available in HTML format for server Plan9

List of man pages available for Plan9

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net