Files
Arquivotheca.SunOS-4.1.4/usr.etc/gt/lib/a.out.c
seta75D ff309bfe1c Init
2021-10-11 18:37:13 -03:00

82 lines
1022 B
C

#ifndef lint
static char sccsid[] = "@(#)a.out.c 1.1 94/10/31 SMI";
#endif
#include <stdio.h>
#include <a.out.h>
char *
aout_gettext(fp, size, laddr)
FILE *fp;
int *size, *laddr;
{
struct exec a;
char *p;
rewind(fp);
fread(&a, 1, sizeof(struct exec), fp);
fseek(fp, N_TXTOFF(a), 0);
p = (char *)malloc(a.a_text);
fread(p, 1, a.a_text, fp);
if (size)
*size = a.a_text;
if (laddr)
*laddr = a.a_entry;
return (p);
}
char *
aout_getdata(fp, size, laddr)
FILE *fp;
int *size, *laddr;
{
struct exec a;
char *p;
rewind(fp);
fread(&a, 1, sizeof(struct exec), fp);
fseek(fp, N_DATOFF(a), 0);
p = (char *)malloc(a.a_data);
fread(p, 1, a.a_data, fp);
if (size)
*size = a.a_data;
if (laddr)
*laddr = a.a_entry + a.a_text;
return (p);
}
aout_getbss(fp)
FILE *fp;
{
struct exec a;
rewind(fp);
fread(&a, 1, sizeof(struct exec), fp);
return (a.a_bss);
}
aout_getentry(fp)
FILE *fp;
{
struct exec a;
rewind(fp);
fread(&a, 1, sizeof(struct exec), fp);
return (a.a_entry);
}