comparison sys.c @ 0:4be1ca60a49b default tip

first commit.
author tkaito
date Sat, 05 Feb 2011 02:13:58 +0900
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:4be1ca60a49b
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <string.h>
4 #include <libxml/parser.h>
5 #include "object.h"
6 #include "sys.h"
7
8 #define ALIGN_16BYTE 16
9
10 int malloc_align16(void *free, void *aligned, int size)
11 {
12 char *index;
13 unsigned int *f=(unsigned int *)free,*a=(unsigned int *)aligned;
14
15 if (free == NULL || aligned == NULL || size <= 0) return(-1);
16
17 index = (char *)malloc(size + ALIGN_16BYTE);
18 if (index == NULL)
19 {
20 return(-1);
21 }
22
23 *f = *a = (unsigned int)index;
24 if (((unsigned int)index % ALIGN_16BYTE) != 0)
25 {
26 index += ALIGN_16BYTE - ((unsigned int)index % ALIGN_16BYTE);
27 *a = (unsigned int)index;
28 }
29 return(0);
30 }
31