xref: /illumos-gate/usr/src/cmd/sgs/prof/common/symint.h (revision 92ed1782)
17c478bd9Sstevel@tonic-gate /*
27c478bd9Sstevel@tonic-gate  * CDDL HEADER START
37c478bd9Sstevel@tonic-gate  *
47c478bd9Sstevel@tonic-gate  * The contents of this file are subject to the terms of the
57c478bd9Sstevel@tonic-gate  * Common Development and Distribution License, Version 1.0 only
67c478bd9Sstevel@tonic-gate  * (the "License").  You may not use this file except in compliance
77c478bd9Sstevel@tonic-gate  * with the License.
87c478bd9Sstevel@tonic-gate  *
97c478bd9Sstevel@tonic-gate  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
107c478bd9Sstevel@tonic-gate  * or http://www.opensolaris.org/os/licensing.
117c478bd9Sstevel@tonic-gate  * See the License for the specific language governing permissions
127c478bd9Sstevel@tonic-gate  * and limitations under the License.
137c478bd9Sstevel@tonic-gate  *
147c478bd9Sstevel@tonic-gate  * When distributing Covered Code, include this CDDL HEADER in each
157c478bd9Sstevel@tonic-gate  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
167c478bd9Sstevel@tonic-gate  * If applicable, add the following below this CDDL HEADER, with the
177c478bd9Sstevel@tonic-gate  * fields enclosed by brackets "[]" replaced with your own identifying
187c478bd9Sstevel@tonic-gate  * information: Portions Copyright [yyyy] [name of copyright owner]
197c478bd9Sstevel@tonic-gate  *
207c478bd9Sstevel@tonic-gate  * CDDL HEADER END
217c478bd9Sstevel@tonic-gate  */
23*92ed1782Smike_s /*
24*92ed1782Smike_s  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
25*92ed1782Smike_s  * Use is subject to license terms.
26*92ed1782Smike_s  */
287c478bd9Sstevel@tonic-gate /*	Copyright (c) 1988 AT&T	*/
297c478bd9Sstevel@tonic-gate /*	  All Rights Reserved  	*/
32*92ed1782Smike_s 	/* protect against multiple inclusion */
33*92ed1782Smike_s #ifndef _SYMINT_H
34*92ed1782Smike_s #define	_SYMINT_H
367c478bd9Sstevel@tonic-gate #pragma ident	"%Z%%M%	%I%	%E% SMI"
387c478bd9Sstevel@tonic-gate #include "symintHdr.h"
40*92ed1782Smike_s #ifdef  __cplusplus
41*92ed1782Smike_s extern "C" {
42*92ed1782Smike_s #endif
44*92ed1782Smike_s /*
457c478bd9Sstevel@tonic-gate  * symint.c -- symbol information interface routines,
46*92ed1782Smike_s  *		interface definition.
47*92ed1782Smike_s  *
487c478bd9Sstevel@tonic-gate  * these routines form a symbol information access
497c478bd9Sstevel@tonic-gate  * interface, for the profilers to get at object file
507c478bd9Sstevel@tonic-gate  * information.  this interface was designed to aid
517c478bd9Sstevel@tonic-gate  * in the COFF to ELF conversion of prof, lprof and friends.
52*92ed1782Smike_s  *
537c478bd9Sstevel@tonic-gate  * this file includes all declarative information required
547c478bd9Sstevel@tonic-gate  * by a user of this interface.
55*92ed1782Smike_s  *
567c478bd9Sstevel@tonic-gate  * ASSUMPTIONS
577c478bd9Sstevel@tonic-gate  * ===========
58*92ed1782Smike_s  *
597c478bd9Sstevel@tonic-gate  * 1.	that there exists a routine _Malloc, with the following
607c478bd9Sstevel@tonic-gate  * 	(effective) prototype:
617c478bd9Sstevel@tonic-gate  * 		char * _Malloc (int item_count, int item_size);
627c478bd9Sstevel@tonic-gate  * 	which does NOT (necessarily) initialize the allocated storage,
637c478bd9Sstevel@tonic-gate  * 	and which issues an error message and calls exit() if
647c478bd9Sstevel@tonic-gate  * 	the storage could not be allocated.
65*92ed1782Smike_s  *
667c478bd9Sstevel@tonic-gate  */
69*92ed1782Smike_s /*
707c478bd9Sstevel@tonic-gate  * the interface routines:
71*92ed1782Smike_s  *
727c478bd9Sstevel@tonic-gate  * 	1. open an object file, set up PROF_FILE et al. (_symintOpen).
737c478bd9Sstevel@tonic-gate  * 	1. close an object file, clean up PROF_FILE et al. (_symintClose).
74*92ed1782Smike_s  *
757c478bd9Sstevel@tonic-gate  * the data:
76*92ed1782Smike_s  *
777c478bd9Sstevel@tonic-gate  * 	(none yet.)
78*92ed1782Smike_s  *
797c478bd9Sstevel@tonic-gate  */
81*92ed1782Smike_s PROF_FILE *_symintOpen(char *aout_name);	/* NULL or ptr */
82*92ed1782Smike_s void _symintClose(PROF_FILE *profPtr);		/* nuttin */
83*92ed1782Smike_s PROF_SYMBOL *_symintLoad(PROF_FILE *proffilePtr);
85*92ed1782Smike_s /*
867c478bd9Sstevel@tonic-gate  * required to be provided by the user of the interface...
877c478bd9Sstevel@tonic-gate  */
89*92ed1782Smike_s void *_Malloc(uint_t item_count, uint_t item_size);
90*92ed1782Smike_s void _err_exit(char *format_s, ...);
92*92ed1782Smike_s #ifdef  __cplusplus
93*92ed1782Smike_s }
947c478bd9Sstevel@tonic-gate #endif
96*92ed1782Smike_s #endif	/* _SYMINT_H */