};
static char piles_names_dma[MAX_CLASS][PILE_NAME_MAXLEN] = {
- "valloc_dma_128", "valloc_dma_512", "valloc_dma_512",
+ "valloc_dma_128", "valloc_dma_256", "valloc_dma_512",
"valloc_dma_1k", "valloc_dma_2k", "valloc_dma_4k"
};
}
void*
-vcalloc(unsigned int size)
+vzalloc(unsigned int size)
{
void* ptr = __valloc(size, &piles);
memset(ptr, 0, size);
return ptr;
}
+void*
+vcalloc(unsigned int size, unsigned int count)
+{
+ unsigned int alloc_size;
+ if (__builtin_umul_overflow(size, count, &alloc_size)) {
+ return 0;
+ }
+
+ void* ptr = __valloc(alloc_size, &piles);
+ memset(ptr, 0, alloc_size);
+ return ptr;
+}
+
void
vfree(void* ptr)
{
}
void*
-vcalloc_dma(unsigned int size)
+vzalloc_dma(unsigned int size)
{
void* ptr = __valloc(size, &piles_dma);
memset(ptr, 0, size);