mem.c - vx32 - Local 9vx git repository for patches.
 (HTM) git clone git://r-36.net/vx32
 (DIR) Log
 (DIR) Files
 (DIR) Refs
       ---
       mem.c (1128B)
       ---
            1 #include <stdlib.h>
            2 
            3 #include "vx32.h"
            4 
            5 int vxmem_resize(vxmem *mem, size_t newsize)
            6 {
            7         if(mem->resize == 0)
            8                 abort();
            9         return mem->resize(mem, newsize);
           10 }
           11 
           12 int vxmem_read(vxmem *mem, void *data, uint32_t addr, uint32_t len)
           13 {
           14         if(mem->read == 0)
           15                 abort();
           16         return mem->read(mem, data, addr, len);
           17 }
           18 
           19 int vxmem_write(vxmem *mem, const void *data, uint32_t addr, uint32_t len)
           20 {
           21         if(mem->write == 0)
           22                 abort();
           23         return mem->write(mem, data, addr, len);
           24 }
           25 
           26 vxmmap *vxmem_map(vxmem *mem, uint32_t flags)
           27 {
           28         if(mem->map == 0)
           29                 abort();
           30         return mem->map(mem, flags);
           31 }
           32 
           33 void vxmem_unmap(vxmem *mem, vxmmap *m)
           34 {
           35         if(mem->unmap == 0)
           36                 abort();
           37         mem->unmap(mem, m);
           38 }
           39 
           40 int vxmem_checkperm(vxmem *mem, uint32_t addr, uint32_t len,
           41         uint32_t perm, uint32_t *out_faultva)
           42 {
           43         if(mem->checkperm == 0)
           44                 abort();
           45         return mem->checkperm(mem, addr, len, perm, out_faultva);
           46 }
           47 
           48 int vxmem_setperm(vxmem *mem, uint32_t addr, uint32_t len, uint32_t perm)
           49 {
           50         if(mem->setperm == 0)
           51                 abort();
           52         return mem->setperm(mem, addr, len, perm);
           53 }
           54 
           55 void vxmem_free(vxmem *mem)
           56 {
           57         if(mem == 0)
           58                 return;
           59         if(mem->free == 0)
           60                 abort();
           61         mem->free(mem);
           62 }
           63