5 void List_init(List
*l
, size_t itemsize
) {
6 memset(l
, 0, sizeof *l
);
9 l
->itemsize
= itemsize
;
12 void List_free(List
*l
) {
17 int List_add(List
*l
, void* item
) {
18 int ret
= mem_write(l
->mem
, l
->count
* l
->itemsize
, item
, l
->itemsize
);
23 int List_get(List
*l
, size_t index
, void* item
) {
24 if(index
>= l
->count
) return 0;
25 void* src
= mem_getptr(l
->mem
, index
* l
->itemsize
, l
->itemsize
);
27 memcpy(item
, src
, l
->itemsize
);
31 void List_sort(List
*l
, int(*compar
)(const void *, const void *)) {
32 qsort(mem_getptr(l
->mem
, 0, l
->itemsize
* l
->count
), l
->count
, l
->itemsize
, compar
);