Commit 7f1a8398ab447c9ba2cc0e73935d7c97d6075053
1 parent
e7b81015
removed unused code
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2080 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
2 changed files
with
0 additions
and
273 deletions
osdep.c
| @@ -33,242 +33,6 @@ | @@ -33,242 +33,6 @@ | ||
| 33 | #include "vl.h" | 33 | #include "vl.h" |
| 34 | #endif | 34 | #endif |
| 35 | 35 | ||
| 36 | -#if defined(__i386__) && !defined(CONFIG_SOFTMMU) && !defined(CONFIG_USER_ONLY) | ||
| 37 | - | ||
| 38 | -#include <sys/mman.h> | ||
| 39 | -#include <sys/ipc.h> | ||
| 40 | - | ||
| 41 | -/* When not using soft mmu, libc independant functions are needed for | ||
| 42 | - the CPU core because it needs to use alternates stacks and | ||
| 43 | - libc/thread incompatibles settings */ | ||
| 44 | - | ||
| 45 | -#include <linux/unistd.h> | ||
| 46 | - | ||
| 47 | -#define QEMU_SYSCALL0(name) \ | ||
| 48 | -{ \ | ||
| 49 | -long __res; \ | ||
| 50 | -__asm__ volatile ("int $0x80" \ | ||
| 51 | - : "=a" (__res) \ | ||
| 52 | - : "0" (__NR_##name)); \ | ||
| 53 | -return __res; \ | ||
| 54 | -} | ||
| 55 | - | ||
| 56 | -#define QEMU_SYSCALL1(name,arg1) \ | ||
| 57 | -{ \ | ||
| 58 | -long __res; \ | ||
| 59 | -__asm__ volatile ("int $0x80" \ | ||
| 60 | - : "=a" (__res) \ | ||
| 61 | - : "0" (__NR_##name),"b" ((long)(arg1))); \ | ||
| 62 | -return __res; \ | ||
| 63 | -} | ||
| 64 | - | ||
| 65 | -#define QEMU_SYSCALL2(name,arg1,arg2) \ | ||
| 66 | -{ \ | ||
| 67 | -long __res; \ | ||
| 68 | -__asm__ volatile ("int $0x80" \ | ||
| 69 | - : "=a" (__res) \ | ||
| 70 | - : "0" (__NR_##name),"b" ((long)(arg1)),"c" ((long)(arg2))); \ | ||
| 71 | -return __res; \ | ||
| 72 | -} | ||
| 73 | - | ||
| 74 | -#define QEMU_SYSCALL3(name,arg1,arg2,arg3) \ | ||
| 75 | -{ \ | ||
| 76 | -long __res; \ | ||
| 77 | -__asm__ volatile ("int $0x80" \ | ||
| 78 | - : "=a" (__res) \ | ||
| 79 | - : "0" (__NR_##name),"b" ((long)(arg1)),"c" ((long)(arg2)), \ | ||
| 80 | - "d" ((long)(arg3))); \ | ||
| 81 | -return __res; \ | ||
| 82 | -} | ||
| 83 | - | ||
| 84 | -#define QEMU_SYSCALL4(name,arg1,arg2,arg3,arg4) \ | ||
| 85 | -{ \ | ||
| 86 | -long __res; \ | ||
| 87 | -__asm__ volatile ("int $0x80" \ | ||
| 88 | - : "=a" (__res) \ | ||
| 89 | - : "0" (__NR_##name),"b" ((long)(arg1)),"c" ((long)(arg2)), \ | ||
| 90 | - "d" ((long)(arg3)),"S" ((long)(arg4))); \ | ||
| 91 | -return __res; \ | ||
| 92 | -} | ||
| 93 | - | ||
| 94 | -#define QEMU_SYSCALL5(name,arg1,arg2,arg3,arg4,arg5) \ | ||
| 95 | -{ \ | ||
| 96 | -long __res; \ | ||
| 97 | -__asm__ volatile ("int $0x80" \ | ||
| 98 | - : "=a" (__res) \ | ||
| 99 | - : "0" (__NR_##name),"b" ((long)(arg1)),"c" ((long)(arg2)), \ | ||
| 100 | - "d" ((long)(arg3)),"S" ((long)(arg4)),"D" ((long)(arg5))); \ | ||
| 101 | -return __res; \ | ||
| 102 | -} | ||
| 103 | - | ||
| 104 | -#define QEMU_SYSCALL6(name,arg1,arg2,arg3,arg4,arg5,arg6) \ | ||
| 105 | -{ \ | ||
| 106 | -long __res; \ | ||
| 107 | -__asm__ volatile ("push %%ebp ; movl %%eax,%%ebp ; movl %1,%%eax ; int $0x80 ; pop %%ebp" \ | ||
| 108 | - : "=a" (__res) \ | ||
| 109 | - : "i" (__NR_##name),"b" ((long)(arg1)),"c" ((long)(arg2)), \ | ||
| 110 | - "d" ((long)(arg3)),"S" ((long)(arg4)),"D" ((long)(arg5)), \ | ||
| 111 | - "0" ((long)(arg6))); \ | ||
| 112 | -return __res; \ | ||
| 113 | -} | ||
| 114 | - | ||
| 115 | -/****************************************************************/ | ||
| 116 | -/* shmat replacement */ | ||
| 117 | - | ||
| 118 | -int qemu_ipc(int call, unsigned long first, | ||
| 119 | - unsigned long second, unsigned long third, | ||
| 120 | - void *ptr, unsigned long fifth) | ||
| 121 | -{ | ||
| 122 | - QEMU_SYSCALL6(ipc, call, first, second, third, ptr, fifth); | ||
| 123 | -} | ||
| 124 | - | ||
| 125 | -#define SHMAT 21 | ||
| 126 | - | ||
| 127 | -/* we must define shmat so that a specific address will be used when | ||
| 128 | - mapping the X11 ximage */ | ||
| 129 | -void *shmat(int shmid, const void *shmaddr, int shmflg) | ||
| 130 | -{ | ||
| 131 | - void *ptr; | ||
| 132 | - int ret; | ||
| 133 | - /* we give an address in the right memory area */ | ||
| 134 | - if (!shmaddr) | ||
| 135 | - shmaddr = get_mmap_addr(8192 * 1024); | ||
| 136 | - ret = qemu_ipc(SHMAT, shmid, shmflg, (unsigned long)&ptr, (void *)shmaddr, 0); | ||
| 137 | - if (ret < 0) | ||
| 138 | - return NULL; | ||
| 139 | - return ptr; | ||
| 140 | -} | ||
| 141 | - | ||
| 142 | -/****************************************************************/ | ||
| 143 | -/* sigaction bypassing the threads */ | ||
| 144 | - | ||
| 145 | -static int kernel_sigaction(int signum, const struct qemu_sigaction *act, | ||
| 146 | - struct qemu_sigaction *oldact, | ||
| 147 | - int sigsetsize) | ||
| 148 | -{ | ||
| 149 | - QEMU_SYSCALL4(rt_sigaction, signum, act, oldact, sigsetsize); | ||
| 150 | -} | ||
| 151 | - | ||
| 152 | -int qemu_sigaction(int signum, const struct qemu_sigaction *act, | ||
| 153 | - struct qemu_sigaction *oldact) | ||
| 154 | -{ | ||
| 155 | - return kernel_sigaction(signum, act, oldact, 8); | ||
| 156 | -} | ||
| 157 | - | ||
| 158 | -/****************************************************************/ | ||
| 159 | -/* memory allocation */ | ||
| 160 | - | ||
| 161 | -//#define DEBUG_MALLOC | ||
| 162 | - | ||
| 163 | -#define MALLOC_BASE 0xab000000 | ||
| 164 | -#define PHYS_RAM_BASE 0xac000000 | ||
| 165 | - | ||
| 166 | -#define MALLOC_ALIGN 16 | ||
| 167 | -#define BLOCK_HEADER_SIZE 16 | ||
| 168 | - | ||
| 169 | -typedef struct MemoryBlock { | ||
| 170 | - struct MemoryBlock *next; | ||
| 171 | - unsigned long size; /* size of block, including header */ | ||
| 172 | -} MemoryBlock; | ||
| 173 | - | ||
| 174 | -static MemoryBlock *first_free_block; | ||
| 175 | -static unsigned long malloc_addr = MALLOC_BASE; | ||
| 176 | - | ||
| 177 | -static void *malloc_get_space(size_t size) | ||
| 178 | -{ | ||
| 179 | - void *ptr; | ||
| 180 | - size = TARGET_PAGE_ALIGN(size); | ||
| 181 | - ptr = mmap((void *)malloc_addr, size, | ||
| 182 | - PROT_WRITE | PROT_READ, | ||
| 183 | - MAP_PRIVATE | MAP_FIXED | MAP_ANON, -1, 0); | ||
| 184 | - if (ptr == MAP_FAILED) | ||
| 185 | - return NULL; | ||
| 186 | - malloc_addr += size; | ||
| 187 | - return ptr; | ||
| 188 | -} | ||
| 189 | - | ||
| 190 | -void *qemu_malloc(size_t size) | ||
| 191 | -{ | ||
| 192 | - MemoryBlock *mb, *mb1, **pmb; | ||
| 193 | - void *ptr; | ||
| 194 | - size_t size1, area_size; | ||
| 195 | - | ||
| 196 | - if (size == 0) | ||
| 197 | - return NULL; | ||
| 198 | - | ||
| 199 | - size = (size + BLOCK_HEADER_SIZE + MALLOC_ALIGN - 1) & ~(MALLOC_ALIGN - 1); | ||
| 200 | - pmb = &first_free_block; | ||
| 201 | - for(;;) { | ||
| 202 | - mb = *pmb; | ||
| 203 | - if (mb == NULL) | ||
| 204 | - break; | ||
| 205 | - if (size <= mb->size) | ||
| 206 | - goto found; | ||
| 207 | - pmb = &mb->next; | ||
| 208 | - } | ||
| 209 | - /* no big enough blocks found: get new space */ | ||
| 210 | - area_size = TARGET_PAGE_ALIGN(size); | ||
| 211 | - mb = malloc_get_space(area_size); | ||
| 212 | - if (!mb) | ||
| 213 | - return NULL; | ||
| 214 | - size1 = area_size - size; | ||
| 215 | - if (size1 > 0) { | ||
| 216 | - /* create a new free block */ | ||
| 217 | - mb1 = (MemoryBlock *)((uint8_t *)mb + size); | ||
| 218 | - mb1->next = NULL; | ||
| 219 | - mb1->size = size1; | ||
| 220 | - *pmb = mb1; | ||
| 221 | - } | ||
| 222 | - goto the_end; | ||
| 223 | - found: | ||
| 224 | - /* a free block was found: use it */ | ||
| 225 | - size1 = mb->size - size; | ||
| 226 | - if (size1 > 0) { | ||
| 227 | - /* create a new free block */ | ||
| 228 | - mb1 = (MemoryBlock *)((uint8_t *)mb + size); | ||
| 229 | - mb1->next = mb->next; | ||
| 230 | - mb1->size = size1; | ||
| 231 | - *pmb = mb1; | ||
| 232 | - } else { | ||
| 233 | - /* suppress the first block */ | ||
| 234 | - *pmb = mb->next; | ||
| 235 | - } | ||
| 236 | - the_end: | ||
| 237 | - mb->size = size; | ||
| 238 | - mb->next = NULL; | ||
| 239 | - ptr = ((uint8_t *)mb + BLOCK_HEADER_SIZE); | ||
| 240 | -#ifdef DEBUG_MALLOC | ||
| 241 | - qemu_printf("malloc: size=0x%x ptr=0x%lx\n", size, (unsigned long)ptr); | ||
| 242 | -#endif | ||
| 243 | - return ptr; | ||
| 244 | -} | ||
| 245 | - | ||
| 246 | -void qemu_free(void *ptr) | ||
| 247 | -{ | ||
| 248 | - MemoryBlock *mb; | ||
| 249 | - | ||
| 250 | - if (!ptr) | ||
| 251 | - return; | ||
| 252 | - mb = (MemoryBlock *)((uint8_t *)ptr - BLOCK_HEADER_SIZE); | ||
| 253 | - mb->next = first_free_block; | ||
| 254 | - first_free_block = mb; | ||
| 255 | -} | ||
| 256 | - | ||
| 257 | -/****************************************************************/ | ||
| 258 | -/* virtual memory allocation */ | ||
| 259 | - | ||
| 260 | -unsigned long mmap_addr = PHYS_RAM_BASE; | ||
| 261 | - | ||
| 262 | -void *get_mmap_addr(unsigned long size) | ||
| 263 | -{ | ||
| 264 | - unsigned long addr; | ||
| 265 | - addr = mmap_addr; | ||
| 266 | - mmap_addr += ((size + 4095) & ~4095) + 4096; | ||
| 267 | - return (void *)addr; | ||
| 268 | -} | ||
| 269 | - | ||
| 270 | -#else | ||
| 271 | - | ||
| 272 | #ifdef _WIN32 | 36 | #ifdef _WIN32 |
| 273 | #include <windows.h> | 37 | #include <windows.h> |
| 274 | #elif defined(_BSD) | 38 | #elif defined(_BSD) |
| @@ -424,8 +188,6 @@ void qemu_vfree(void *ptr) | @@ -424,8 +188,6 @@ void qemu_vfree(void *ptr) | ||
| 424 | 188 | ||
| 425 | #endif | 189 | #endif |
| 426 | 190 | ||
| 427 | -#endif | ||
| 428 | - | ||
| 429 | void *qemu_mallocz(size_t size) | 191 | void *qemu_mallocz(size_t size) |
| 430 | { | 192 | { |
| 431 | void *ptr; | 193 | void *ptr; |
osdep.h
| @@ -15,39 +15,4 @@ void qemu_vfree(void *ptr); | @@ -15,39 +15,4 @@ void qemu_vfree(void *ptr); | ||
| 15 | 15 | ||
| 16 | void *get_mmap_addr(unsigned long size); | 16 | void *get_mmap_addr(unsigned long size); |
| 17 | 17 | ||
| 18 | -/* specific kludges for OS compatibility (should be moved elsewhere) */ | ||
| 19 | -#if defined(__i386__) && !defined(CONFIG_SOFTMMU) && !defined(CONFIG_USER_ONLY) | ||
| 20 | - | ||
| 21 | -/* disabled pthread version of longjmp which prevent us from using an | ||
| 22 | - alternative signal stack */ | ||
| 23 | -extern void __longjmp(jmp_buf env, int val); | ||
| 24 | -#define longjmp __longjmp | ||
| 25 | - | ||
| 26 | -#include <signal.h> | ||
| 27 | - | ||
| 28 | -struct siginfo; | ||
| 29 | - | ||
| 30 | -/* NOTE: it works only because the glibc sigset_t is >= kernel sigset_t */ | ||
| 31 | -struct qemu_sigaction { | ||
| 32 | - union { | ||
| 33 | - void (*_sa_handler)(int); | ||
| 34 | - void (*_sa_sigaction)(int, struct siginfo *, void *); | ||
| 35 | - } _u; | ||
| 36 | - unsigned long sa_flags; | ||
| 37 | - void (*sa_restorer)(void); | ||
| 38 | - sigset_t sa_mask; /* mask last for extensibility */ | ||
| 39 | -}; | ||
| 40 | - | ||
| 41 | -int qemu_sigaction(int signum, const struct qemu_sigaction *act, | ||
| 42 | - struct qemu_sigaction *oldact); | ||
| 43 | - | ||
| 44 | -#undef sigaction | ||
| 45 | -#undef sa_handler | ||
| 46 | -#undef sa_sigaction | ||
| 47 | -#define sigaction qemu_sigaction | ||
| 48 | -#define sa_handler _u._sa_handler | ||
| 49 | -#define sa_sigaction _u._sa_sigaction | ||
| 50 | - | ||
| 51 | -#endif | ||
| 52 | - | ||
| 53 | #endif | 18 | #endif |