gmon-sol2.c: Silence compilation warnings by partially synchronizing code with...

* config/i386/gmon-sol2.c: Silence compilation warnings by partially
	synchronizing code with config/sparc/gmon-sol2.c.  Remove #if 0
	blocks.  #include "tconfig.h" and "tsystem.h" to prototype system
	functions such as sbrk, write, etc..  Add function prototypes.
	Convert function declarations from K&R to ISO C.  Cast pointers
	to "long" and "unsigned long" instead of "int" and "unsigned int".
	Convert tokens following #endif into comments.


Co-Authored-By: Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>

From-SVN: r115540
This commit is contained in:
Roger Sayle 2006-07-18 00:29:20 +00:00 committed by Roger Sayle
parent d4bc44eadf
commit 4f5afe7d1a
2 changed files with 35 additions and 30 deletions

View file

@ -1,3 +1,14 @@
2006-07-17 Roger Sayle <roger@eyesopen.com>
Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* config/i386/gmon-sol2.c: Silence compilation warnings by partially
synchronizing code with config/sparc/gmon-sol2.c. Remove #if 0
blocks. #include "tconfig.h" and "tsystem.h" to prototype system
functions such as sbrk, write, etc.. Add function prototypes.
Convert function declarations from K&R to ISO C. Cast pointers
to "long" and "unsigned long" instead of "int" and "unsigned int".
Convert tokens following #endif into comments.
2006-07-17 Toon Moene <toon@moene.indiv.nluug.nl>
* invoke.texi: Remove mention of f77; Reformat table for

View file

@ -53,22 +53,19 @@
* This code could easily be integrated with the original gmon.c and perhaps
* should be.
*/
#include "tconfig.h"
#include "tsystem.h"
#include <fcntl.h> /* for creat() */
#ifndef lint
static char sccsid[] = "@(#)gmon.c 5.3 (Berkeley) 5/22/91";
#endif /* not lint */
#if 0
#include <unistd.h>
#endif
#ifdef DEBUG
#include <stdio.h>
#endif
#if 0
#include "i386/gmon.h"
#else
static void moncontrol (int);
extern void monstartup (char *, char *);
extern void _mcleanup (void);
extern void internal_mcount (void);
struct phdr {
char *lpc;
@ -90,6 +87,7 @@ struct tostruct {
long count;
unsigned short link;
};
struct rawarc {
unsigned long raw_frompc;
unsigned long raw_selfpc;
@ -97,14 +95,9 @@ struct rawarc {
};
#define ROUNDDOWN(x,y) (((x)/(y))*(y))
#define ROUNDUP(x,y) ((((x)+(y)-1)/(y))*(y))
#endif
/* char *minbrk; */
#ifdef __alpha
extern char *sbrk ();
#endif
/*
* froms is actually a bunch of unsigned shorts indexing tos
*/
@ -126,9 +119,8 @@ static int s_scale;
extern int errno;
monstartup(lowpc, highpc)
char *lowpc;
char *highpc;
void
monstartup(char *lowpc, char *highpc)
{
int monsize;
char *buffer;
@ -139,10 +131,10 @@ monstartup(lowpc, highpc)
* so the rest of the scaling (here and in gprof) stays in ints.
*/
lowpc = (char *)
ROUNDDOWN((unsigned)lowpc, HISTFRACTION*sizeof(HISTCOUNTER));
ROUNDDOWN((unsigned long)lowpc, HISTFRACTION*sizeof(HISTCOUNTER));
s_lowpc = lowpc;
highpc = (char *)
ROUNDUP((unsigned)highpc, HISTFRACTION*sizeof(HISTCOUNTER));
ROUNDUP((unsigned long)highpc, HISTFRACTION*sizeof(HISTCOUNTER));
s_highpc = highpc;
s_textsize = highpc - lowpc;
monsize = (s_textsize / HISTFRACTION) + sizeof(struct phdr);
@ -203,7 +195,8 @@ monstartup(lowpc, highpc)
moncontrol(1);
}
_mcleanup()
void
_mcleanup (void)
{
int fd;
int fromindex;
@ -220,7 +213,7 @@ _mcleanup()
}
# ifdef DEBUG
fprintf( stderr , "[mcleanup] sbuf 0x%x ssiz %d\n" , sbuf , ssiz );
# endif DEBUG
# endif /* DEBUG */
write( fd , sbuf , ssiz );
endfrom = s_textsize / (HASHFRACTION * sizeof(*froms));
@ -234,7 +227,7 @@ _mcleanup()
fprintf( stderr ,
"[mcleanup] frompc 0x%x selfpc 0x%x count %d\n" ,
frompc , tos[toindex].selfpc , tos[toindex].count );
# endif DEBUG
# endif /* DEBUG */
rawarc.raw_frompc = (unsigned long) frompc;
rawarc.raw_selfpc = (unsigned long) tos[toindex].selfpc;
rawarc.raw_count = tos[toindex].count;
@ -249,7 +242,8 @@ asm(".globl _mcount; _mcount: jmp internal_mcount");
/* This is for compatibility with old versions of gcc which used mcount. */
asm(".globl mcount; mcount: jmp internal_mcount");
internal_mcount()
void
internal_mcount (void)
{
register char *selfpc;
register unsigned short *frompcindex;
@ -271,10 +265,10 @@ internal_mcount()
frompcindex = (void *) __builtin_return_address (1);
if(!already_setup) {
extern etext();
extern char etext[];
already_setup = 1;
/* monstartup(0, etext); */
monstartup(0x08040000, etext);
monstartup((char*)0x08040000, etext);
#ifdef USE_ONEXIT
on_exit(_mcleanup, 0);
#else
@ -387,15 +381,15 @@ overflow:
* profiling is what mcount checks to see if
* all the data structures are ready.
*/
moncontrol(mode)
int mode;
static void
moncontrol(int mode)
{
if (mode)
{
/* start */
profil((unsigned short *)(sbuf + sizeof(struct phdr)),
ssiz - sizeof(struct phdr),
(int)s_lowpc, s_scale);
(long)s_lowpc, s_scale);
profiling = 0;
} else {