aync buffer
[vg.git] / vg_mem.h
index 820fa6d19aa0d701349de4a4bd7df5c02f9e4352..8f3da6361396d97577c1334e401bf1b251462206 100644 (file)
--- a/vg_mem.h
+++ b/vg_mem.h
@@ -19,7 +19,8 @@ typedef struct vg_allocation_meta vg_allocation_meta;
 struct
 {
    void *rtmemory,
-        *scratch;
+        *scratch,
+        *async;
 
    int   use_libc_malloc;
    u32   quota;
@@ -122,7 +123,11 @@ VG_STATIC void *vg_linear_alloc( void *buffer, u32 size )
       vg_print_backtrace();
       size = vg_align8( size );
    }
+#ifdef _WIN32
+   if( ((u32)buffer) % 8 ){
+#else
    if( ((u64)buffer) % 8 ){
+#endif
       vg_error( "buffer: %p\n", buffer );
       vg_fatal_exit_loop( "unaligned buffer" );
    }
@@ -161,7 +166,11 @@ VG_STATIC void *vg_linear_alloc( void *buffer, u32 size )
    alloc->last_alloc_size = size;
    alloc->cur += size;
 
+#ifdef _WIN32
+   if( ((u32)data) % 8 ){
+#else
    if( ((u64)data) % 8 ){
+#endif
       vg_fatal_exit_loop( "unaligned" );
    }
 
@@ -376,6 +385,9 @@ VG_STATIC void vg_alloc_quota(void)
    vg_mem.scratch = vg_create_linear_allocator( vg_mem.rtmemory, 
                                                 size_scratch,
                                                 VG_MEMORY_SYSTEM );
+
+   vg_mem.async = vg_create_linear_allocator( NULL, 50*1024*1024, 
+                                              VG_MEMORY_REALTIME );
 }
 
 #endif /* VG_MEM_H */