diff options
author | bellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162> | 2006-08-03 17:53:19 +0000 |
---|---|---|
committer | bellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162> | 2006-08-03 17:53:19 +0000 |
commit | 7f1a8398ab447c9ba2cc0e73935d7c97d6075053 (patch) | |
tree | 14e7b859abc10deef5b7d9da01934fbd8407845a /osdep.c | |
parent | e7b81015e5b8d03c13670940a80c9be0eeb816f6 (diff) | |
download | qemu-7f1a8398ab447c9ba2cc0e73935d7c97d6075053.zip qemu-7f1a8398ab447c9ba2cc0e73935d7c97d6075053.tar.gz qemu-7f1a8398ab447c9ba2cc0e73935d7c97d6075053.tar.bz2 |
removed unused code
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2080 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'osdep.c')
-rw-r--r-- | osdep.c | 238 |
1 files changed, 0 insertions, 238 deletions
@@ -33,242 +33,6 @@ #include "vl.h" #endif -#if defined(__i386__) && !defined(CONFIG_SOFTMMU) && !defined(CONFIG_USER_ONLY) - -#include <sys/mman.h> -#include <sys/ipc.h> - -/* When not using soft mmu, libc independant functions are needed for - the CPU core because it needs to use alternates stacks and - libc/thread incompatibles settings */ - -#include <linux/unistd.h> - -#define QEMU_SYSCALL0(name) \ -{ \ -long __res; \ -__asm__ volatile ("int $0x80" \ - : "=a" (__res) \ - : "0" (__NR_##name)); \ -return __res; \ -} - -#define QEMU_SYSCALL1(name,arg1) \ -{ \ -long __res; \ -__asm__ volatile ("int $0x80" \ - : "=a" (__res) \ - : "0" (__NR_##name),"b" ((long)(arg1))); \ -return __res; \ -} - -#define QEMU_SYSCALL2(name,arg1,arg2) \ -{ \ -long __res; \ -__asm__ volatile ("int $0x80" \ - : "=a" (__res) \ - : "0" (__NR_##name),"b" ((long)(arg1)),"c" ((long)(arg2))); \ -return __res; \ -} - -#define QEMU_SYSCALL3(name,arg1,arg2,arg3) \ -{ \ -long __res; \ -__asm__ volatile ("int $0x80" \ - : "=a" (__res) \ - : "0" (__NR_##name),"b" ((long)(arg1)),"c" ((long)(arg2)), \ - "d" ((long)(arg3))); \ -return __res; \ -} - -#define QEMU_SYSCALL4(name,arg1,arg2,arg3,arg4) \ -{ \ -long __res; \ -__asm__ volatile ("int $0x80" \ - : "=a" (__res) \ - : "0" (__NR_##name),"b" ((long)(arg1)),"c" ((long)(arg2)), \ - "d" ((long)(arg3)),"S" ((long)(arg4))); \ -return __res; \ -} - -#define QEMU_SYSCALL5(name,arg1,arg2,arg3,arg4,arg5) \ -{ \ -long __res; \ -__asm__ volatile ("int $0x80" \ - : "=a" (__res) \ - : "0" (__NR_##name),"b" ((long)(arg1)),"c" ((long)(arg2)), \ - "d" ((long)(arg3)),"S" ((long)(arg4)),"D" ((long)(arg5))); \ -return __res; \ -} - -#define QEMU_SYSCALL6(name,arg1,arg2,arg3,arg4,arg5,arg6) \ -{ \ -long __res; \ -__asm__ volatile ("push %%ebp ; movl %%eax,%%ebp ; movl %1,%%eax ; int $0x80 ; pop %%ebp" \ - : "=a" (__res) \ - : "i" (__NR_##name),"b" ((long)(arg1)),"c" ((long)(arg2)), \ - "d" ((long)(arg3)),"S" ((long)(arg4)),"D" ((long)(arg5)), \ - "0" ((long)(arg6))); \ -return __res; \ -} - -/****************************************************************/ -/* shmat replacement */ - -int qemu_ipc(int call, unsigned long first, - unsigned long second, unsigned long third, - void *ptr, unsigned long fifth) -{ - QEMU_SYSCALL6(ipc, call, first, second, third, ptr, fifth); -} - -#define SHMAT 21 - -/* we must define shmat so that a specific address will be used when - mapping the X11 ximage */ -void *shmat(int shmid, const void *shmaddr, int shmflg) -{ - void *ptr; - int ret; - /* we give an address in the right memory area */ - if (!shmaddr) - shmaddr = get_mmap_addr(8192 * 1024); - ret = qemu_ipc(SHMAT, shmid, shmflg, (unsigned long)&ptr, (void *)shmaddr, 0); - if (ret < 0) - return NULL; - return ptr; -} - -/****************************************************************/ -/* sigaction bypassing the threads */ - -static int kernel_sigaction(int signum, const struct qemu_sigaction *act, - struct qemu_sigaction *oldact, - int sigsetsize) -{ - QEMU_SYSCALL4(rt_sigaction, signum, act, oldact, sigsetsize); -} - -int qemu_sigaction(int signum, const struct qemu_sigaction *act, - struct qemu_sigaction *oldact) -{ - return kernel_sigaction(signum, act, oldact, 8); -} - -/****************************************************************/ -/* memory allocation */ - -//#define DEBUG_MALLOC - -#define MALLOC_BASE 0xab000000 -#define PHYS_RAM_BASE 0xac000000 - -#define MALLOC_ALIGN 16 -#define BLOCK_HEADER_SIZE 16 - -typedef struct MemoryBlock { - struct MemoryBlock *next; - unsigned long size; /* size of block, including header */ -} MemoryBlock; - -static MemoryBlock *first_free_block; -static unsigned long malloc_addr = MALLOC_BASE; - -static void *malloc_get_space(size_t size) -{ - void *ptr; - size = TARGET_PAGE_ALIGN(size); - ptr = mmap((void *)malloc_addr, size, - PROT_WRITE | PROT_READ, - MAP_PRIVATE | MAP_FIXED | MAP_ANON, -1, 0); - if (ptr == MAP_FAILED) - return NULL; - malloc_addr += size; - return ptr; -} - -void *qemu_malloc(size_t size) -{ - MemoryBlock *mb, *mb1, **pmb; - void *ptr; - size_t size1, area_size; - - if (size == 0) - return NULL; - - size = (size + BLOCK_HEADER_SIZE + MALLOC_ALIGN - 1) & ~(MALLOC_ALIGN - 1); - pmb = &first_free_block; - for(;;) { - mb = *pmb; - if (mb == NULL) - break; - if (size <= mb->size) - goto found; - pmb = &mb->next; - } - /* no big enough blocks found: get new space */ - area_size = TARGET_PAGE_ALIGN(size); - mb = malloc_get_space(area_size); - if (!mb) - return NULL; - size1 = area_size - size; - if (size1 > 0) { - /* create a new free block */ - mb1 = (MemoryBlock *)((uint8_t *)mb + size); - mb1->next = NULL; - mb1->size = size1; - *pmb = mb1; - } - goto the_end; - found: - /* a free block was found: use it */ - size1 = mb->size - size; - if (size1 > 0) { - /* create a new free block */ - mb1 = (MemoryBlock *)((uint8_t *)mb + size); - mb1->next = mb->next; - mb1->size = size1; - *pmb = mb1; - } else { - /* suppress the first block */ - *pmb = mb->next; - } - the_end: - mb->size = size; - mb->next = NULL; - ptr = ((uint8_t *)mb + BLOCK_HEADER_SIZE); -#ifdef DEBUG_MALLOC - qemu_printf("malloc: size=0x%x ptr=0x%lx\n", size, (unsigned long)ptr); -#endif - return ptr; -} - -void qemu_free(void *ptr) -{ - MemoryBlock *mb; - - if (!ptr) - return; - mb = (MemoryBlock *)((uint8_t *)ptr - BLOCK_HEADER_SIZE); - mb->next = first_free_block; - first_free_block = mb; -} - -/****************************************************************/ -/* virtual memory allocation */ - -unsigned long mmap_addr = PHYS_RAM_BASE; - -void *get_mmap_addr(unsigned long size) -{ - unsigned long addr; - addr = mmap_addr; - mmap_addr += ((size + 4095) & ~4095) + 4096; - return (void *)addr; -} - -#else - #ifdef _WIN32 #include <windows.h> #elif defined(_BSD) @@ -424,8 +188,6 @@ void qemu_vfree(void *ptr) #endif -#endif - void *qemu_mallocz(size_t size) { void *ptr; |