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;
 | 
					    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 listHead = (loaderPtr) 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static loaderPtr
 | 
					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 LoaderOpen(const char *, const char *, int, int *, int *, int *, int);
 | 
				
			||||||
int LoaderHandleOpen(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
 | 
					 * object to name lookup routines
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue