single, comprehensive kernel data types document?

Rob Groner rgroner at rtd.com
Wed Apr 20 16:37:07 EDT 2016


Sorry if this isn't related, it seemed like it was...

I recently discovered one of our drivers isn't written correctly for
64-bit.  It uses a uint32_t to hold an address. Whoops.

In previous drivers when I've needed to hold an address, I've used an
"unsigned long", as (so far as I could tell) that would give me the
correct number of bytes whether on 32 or 64-bit systems.

Now that I have to fix this driver, I'd rather do whatever the
"standard" method is for storing an address value.

Looking at code in the kernel and linux/types.h, I see "phys_addr_t and
dma_addr_t.  Is that what I want to use?  What if it's a virtual
address?  void *?

Thanks.

Rob





More information about the Kernelnewbies mailing list