Demolish now-unused loader functions.
This commit is contained in:
parent
f90761b06e
commit
21ebcfd702
|
@ -367,169 +367,6 @@ _GetModuleType(int fd, long offset)
|
|||
return LD_ELFDLOBJECT;
|
||||
}
|
||||
|
||||
static int offsetbias = 0; /* offset into archive */
|
||||
|
||||
/*
|
||||
* _LoaderFileToMem() loads the contents of a file into memory using
|
||||
* the most efficient method for a platform.
|
||||
*/
|
||||
void *
|
||||
_LoaderFileToMem(int fd, unsigned long offset, int size, char *label)
|
||||
{
|
||||
#ifdef UseMMAP
|
||||
unsigned long ret;
|
||||
|
||||
# ifdef MmapPageAlign
|
||||
unsigned long pagesize;
|
||||
unsigned long new_size;
|
||||
unsigned long new_off;
|
||||
unsigned long new_off_bias;
|
||||
# endif
|
||||
# define MMAP_PROT (PROT_READ|PROT_WRITE|PROT_EXEC)
|
||||
|
||||
# ifdef DEBUGMEM
|
||||
ErrorF("_LoaderFileToMem(%d,%u(%u),%d,%s)", fd, offset, offsetbias, size,
|
||||
label);
|
||||
# endif
|
||||
# ifdef MmapPageAlign
|
||||
pagesize = getpagesize();
|
||||
new_size = (size + pagesize - 1) / pagesize;
|
||||
new_size *= pagesize;
|
||||
new_off = (offset + offsetbias) / pagesize;
|
||||
new_off *= pagesize;
|
||||
new_off_bias = (offset + offsetbias) - new_off;
|
||||
if ((new_off_bias + size) > new_size)
|
||||
new_size += pagesize;
|
||||
ret = (unsigned long)mmap(0, new_size, MMAP_PROT, MAP_PRIVATE
|
||||
# ifdef __amd64__
|
||||
| MAP_32BIT
|
||||
# endif
|
||||
, fd, new_off);
|
||||
if (ret == -1)
|
||||
FatalError("mmap() failed: %s\n", strerror(errno));
|
||||
return (void *)(ret + new_off_bias);
|
||||
# else
|
||||
ret = (unsigned long)mmap(0, size, MMAP_PROT, MAP_PRIVATE
|
||||
# ifdef __amd64__
|
||||
| MAP_32BIT
|
||||
# endif
|
||||
, fd, offset + offsetbias);
|
||||
if (ret == -1)
|
||||
FatalError("mmap() failed: %s\n", strerror(errno));
|
||||
return (void *)ret;
|
||||
# endif
|
||||
#else
|
||||
char *ptr;
|
||||
|
||||
# ifdef DEBUGMEM
|
||||
ErrorF("_LoaderFileToMem(%d,%u(%u),%d,%s)", fd, offset, offsetbias, size,
|
||||
label);
|
||||
# endif
|
||||
|
||||
if (size == 0) {
|
||||
# ifdef DEBUGMEM
|
||||
ErrorF("=NULL\n", ptr);
|
||||
# endif
|
||||
return NULL;
|
||||
}
|
||||
# ifndef __UNIXOS2__
|
||||
if ((ptr = xf86loadercalloc(size, 1)) == NULL)
|
||||
FatalError("_LoaderFileToMem() malloc failed\n");
|
||||
# else
|
||||
if ((ptr = os2ldcalloc(size, 1)) == NULL)
|
||||
FatalError("_LoaderFileToMem() malloc failed\n");
|
||||
# endif
|
||||
# if defined(linux) && defined(__ia64__)
|
||||
{
|
||||
unsigned long page_size = getpagesize();
|
||||
unsigned long round;
|
||||
|
||||
round = (unsigned long)ptr & (page_size - 1);
|
||||
mprotect(ptr - round,
|
||||
(size + round + page_size - 1) & ~(page_size - 1),
|
||||
PROT_READ | PROT_WRITE | PROT_EXEC);
|
||||
}
|
||||
# endif
|
||||
|
||||
if (lseek(fd, offset + offsetbias, SEEK_SET) < 0)
|
||||
FatalError("\n_LoaderFileToMem() lseek() failed: %s\n",
|
||||
strerror(errno));
|
||||
|
||||
if (read(fd, ptr, size) != size)
|
||||
FatalError("\n_LoaderFileToMem() read() failed: %s\n",
|
||||
strerror(errno));
|
||||
|
||||
# if (defined(linux) || defined(__NetBSD__) || defined(__OpenBSD__) \
|
||||
|| defined(__FreeBSD__)) && defined(__powerpc__)
|
||||
/*
|
||||
* Keep the instruction cache in sync with changes in the
|
||||
* main memory.
|
||||
*/
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < size; i += 16)
|
||||
ppc_flush_icache(ptr + i);
|
||||
ppc_flush_icache(ptr + size - 1);
|
||||
}
|
||||
# endif
|
||||
|
||||
# ifdef DEBUGMEM
|
||||
ErrorF("=%lx\n", ptr);
|
||||
# endif
|
||||
|
||||
return (void *)ptr;
|
||||
#endif
|
||||
}
|
||||
|
||||
/*
|
||||
* _LoaderFreeFileMem() free the memory in which a file was loaded.
|
||||
*/
|
||||
void
|
||||
_LoaderFreeFileMem(void *addr, int size)
|
||||
{
|
||||
#if defined (UseMMAP) && defined (MmapPageAlign)
|
||||
unsigned long pagesize = getpagesize();
|
||||
memType i_addr = (memType) addr;
|
||||
unsigned long new_size;
|
||||
#endif
|
||||
#ifdef DEBUGMEM
|
||||
ErrorF("_LoaderFreeFileMem(%x,%d)\n", addr, size);
|
||||
#endif
|
||||
#ifdef UseMMAP
|
||||
# if defined (MmapPageAlign)
|
||||
i_addr /= pagesize;
|
||||
i_addr *= pagesize;
|
||||
new_size = (size + pagesize - 1) / pagesize;
|
||||
new_size *= pagesize;
|
||||
if (((memType) addr - i_addr + size) > new_size)
|
||||
new_size += pagesize;
|
||||
munmap((void *)i_addr, new_size);
|
||||
# else
|
||||
munmap((void *)addr, size);
|
||||
# endif
|
||||
#else
|
||||
if (size == 0)
|
||||
return;
|
||||
|
||||
xf86loaderfree(addr);
|
||||
#endif
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
int
|
||||
_LoaderFileRead(int fd, unsigned int offset, void *buf, int size)
|
||||
{
|
||||
if (lseek(fd, offset + offsetbias, SEEK_SET) < 0)
|
||||
FatalError("_LoaderFileRead() lseek() failed: %s\n", strerror(errno));
|
||||
|
||||
if (read(fd, buf, size) != size)
|
||||
FatalError("_LoaderFileRead() read() failed: %s\n", strerror(errno));
|
||||
|
||||
return size;
|
||||
}
|
||||
|
||||
static loaderPtr listHead = (loaderPtr) 0;
|
||||
|
||||
static loaderPtr
|
||||
|
|
|
@ -235,13 +235,6 @@ int _LoaderAddressToSection(const unsigned long, const char **,
|
|||
int LoaderOpen(const char *, const char *, int, int *, int *, int *, int);
|
||||
int LoaderHandleOpen(int);
|
||||
|
||||
/*
|
||||
* File interface functions
|
||||
*/
|
||||
void *_LoaderFileToMem(int fd, unsigned long offset, int size, char *label);
|
||||
void _LoaderFreeFileMem(void *addr, int size);
|
||||
int _LoaderFileRead(int fd, unsigned int offset, void *addr, int size);
|
||||
|
||||
/*
|
||||
* object to name lookup routines
|
||||
*/
|
||||
|
|
Loading…
Reference in New Issue
Block a user