Re: Size of sector_t in userspace [Was: fix 41 'make headers_check' warnings]

From: Jens Axboe
Date: Wed Jan 21 2009 - 03:23:15 EST


On Wed, Jan 21 2009, Sam Ravnborg wrote:
> Hi Jens.
>
> In an attempt to fix some of the issues in our exported Headers jsr
> encountered some strange stuff in types.h.
>
> types.h is exported to userspace where we do not have access to CONFIG_*
> symbols.
> Despite this we use CONFGI_LBD to decide the size of sector_t like this:
>
> #ifdef CONFIG_LBD
> typedef u64 sector_t;
> typedef u64 blkcnt_t;
> #else
> typedef unsigned long sector_t;
> typedef unsigned long blkcnt_t;
> #endif
>
> But as CONFIG_LBD is never defined in userspace sector_t is now 32
> bit on 32 bit boxes and 64 bit on 64 bit boxes (in userspace).
>
> Is sector:t (and the companion blkcnt_t) really used by userspace?
> If it is - what size is it expected to have?

I don't think it's used by userspace, at least it cannot be used in
userspace <-> kernelspace interactions, since the size isn't fixed.

--
Jens Axboe

--
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/