Re: [RFC][PATCH] kmalloc + memset(foo, 0, bar) = kmalloc0

From: J.A. Magallon
Date: Thu Sep 11 2003 - 17:26:59 EST



On 09.12, Alan Cox wrote:
> On Iau, 2003-09-11 at 22:58, J.A. Magallon wrote:
> > On 09.11, Jamie Lokier wrote:
> > > viro@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx wrote:
> > > > Bad choice of name - too easy to confuse with kmalloc().
> > >
> > > kmalloc_and_zero() would be much clearer.
> > >
> >
> > Why not kcalloc() ?
>
> A kcalloc that also checked for maths overflows would probably
> help avoid various errors and checks against ~0/sizeof(n) in
> drivers we have now
>

Some time ago when I tried to do some wrappers, I choosed something
like this (k-prefixed here for kernel...):

void* kalloc(size_t size)
void* kvalloc(size_t size,size_t num)
void* kallocz(size_t size) // or kalloc_z, clearer...
void* kvallocz(size_t size,size_t num) // kvalloc_z
void* kfree(void*)

And if you don't hate too much C++

#define knew(mytype) (mytype*)kalloc(sizeof(mytype))
#define kvnew(mytype,n) (mytype*)kvalloc(sizeof(mytype),n)

and so on...
I can tell for sure they clarify the code very much... and you
don't forget the NULL check anymore ;).

--
J.A. Magallon <jamagallon@xxxxxxx> \ Software is like sex:
werewolf.able.es \ It's better when it's free
Mandrake Linux release 9.2 (Cooker) for i586
Linux 2.4.23-pre2-jam1m (gcc 3.3.1 (Mandrake Linux 9.2 3.3.1-1mdk))
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/