* Oren Mazor <oren [ dot ] mazor [ at ] gmail [ dot ] com> [060226 15:56]: > Hi all, > > I'm working on some kernel modules, and I find myself needing to use > some data structures. Since the idea is pretty ubiquitous, there's no > real need for me to write my own implementations of hashtables. > However, every implementation I try to use fails on compile, since > they all use the standard c library, which is not allowed at kernel > level coding. Well, there are ways around this. :) Write your own headers that implement the library function your imlementation needs... probably just malloc and free, right? You can also just port it to use [kv]malloc(). > My question is, is there a standard solution to this problem, or do I > have to [re]write these myself to use proper headers? From what I understand, the general feeling is that you can do a better job if your datatypes are implemented as part of the code that uses them. As you know there is <linux/list.h>, which seems to be simple enough that is can be left as a generic ADT. There used to be a generic hash table impementation... I recall it was quite buggy. From the looks of it, it has been removed since I used it last. Certain parts of linux implement their private, but abstract types. Just looking through the sources I found security/selinux/ss/hashtab.h which looks good enough for day-to-day use. Good luck. -Bart -- WebSig: http://www.jukie.net/~bart/sig/
Attachment:
signature.asc
Description: Digital signature