recently perusing someone's module code and ran across the following definitions for reading/writing either 8, 16 or 32 bits: unsigned char read8(void* address) { return *((unsigned char*) address); } and so on for read16 and read32, as well as the converse for writing. i was a bit puzzled by this since i was under the impression that normal kernel source provides the universal primitives inb(), inw(), inl(), outb(), outw() and outl(), no? shouldn't one expect to have those routines defined regardless of the architecture? and wouldn't they have the same semantics in kernel space? when i asked the author, he admitted that he'd never known of the in/out kernel I/O routines, but opined that he wasn't going to rewrite his code as his routines were (and i'm quoting here) "more precise." i have no idea what that means. is there something about standard kernel-space routines that i'm missing here? i'm just curious. rday -- ======================================================================== Robert P. J. Day Linux Consulting, Training and Annoying Kernel Pedantry: Have classroom, will lecture. http://crashcourse.ca Waterloo, Ontario, CANADA ======================================================================== -- To unsubscribe from this list: send an email with "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx Please read the FAQ at http://kernelnewbies.org/FAQ