| 214 | } |
| 215 | |
| 216 | int myfindsize(void * p, struct mempage ***prevpagep, struct mempage **pagep){ |
| 217 | int i; |
| 218 | struct mempage *prevpage, *page; |
| 219 | |
| 220 | for (i=0; i<nomem; i++){ |
| 221 | for(page = pages[i], prevpage = NULL; page; page=page->next){ |
| 222 | if( p >= (void *)page->data && p < (void *)(page->data + MEM64K))break; |
| 223 | prevpage = page; |
| 224 | } |
| 225 | if(page){ |
| 226 | if(pagep)*pagep = page; |
| 227 | if(prevpagep)*prevpagep = prevpage?&prevpage->next:&pages[i]; |
| 228 | #if DEBUGLEVEL > 2 |
| 229 | fprintf(stderr, "%x belongs to page: %x with data %x\n", p, page, page->data); |
| 230 | fflush(stderr); |
| 231 | #endif |
| 232 | break; |
| 233 | } |
| 234 | } |
| 235 | return i; |
| 236 | |
| 237 | |
| 238 | } |
| 239 | |
| 240 | void myfree(void *p){ |
| 241 | struct mempage **prevpage, *page; |