Message ID | 1548768562-20007-10-git-send-email-jjherne@linux.ibm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | s390: vfio-ccw dasd ipl support | expand |
On Tue, 29 Jan 2019 08:29:16 -0500 "Jason J. Herne" <jjherne@linux.ibm.com> wrote: > Introduce inline functions to convert between pointers and unsigned 32-bit > ints. These are used to hide the ugliness required to avoid compiler > warnings. > > Signed-off-by: Jason J. Herne <jjherne@linux.ibm.com> > --- > pc-bios/s390-ccw/libc.h | 12 ++++++++++++ > 1 file changed, 12 insertions(+) > > diff --git a/pc-bios/s390-ccw/libc.h b/pc-bios/s390-ccw/libc.h > index 818517f..e198f0b 100644 > --- a/pc-bios/s390-ccw/libc.h > +++ b/pc-bios/s390-ccw/libc.h > @@ -19,6 +19,18 @@ typedef unsigned short uint16_t; > typedef unsigned int uint32_t; > typedef unsigned long long uint64_t; > > +/* Avoids compiler warnings when casting a pointer to a u32 */ > +static inline uint32_t ptr2u32(void *ptr) > +{ > + return (uint32_t)(uint64_t)ptr; > +} > + > +/* Avoids compiler warnings when casting a u32 to a pointer */ > +static inline void *u32toptr(uint32_t n) > +{ > + return (void *)(uint64_t)n; > +} > + > static inline void *memset(void *s, int c, size_t n) > { > size_t i; Ugly, but I hope any users of these already know what they're doing :) Acked-by: Cornelia Huck <cohuck@redhat.com>
On 2019-01-29 14:29, Jason J. Herne wrote: > Introduce inline functions to convert between pointers and unsigned 32-bit > ints. These are used to hide the ugliness required to avoid compiler > warnings. > > Signed-off-by: Jason J. Herne <jjherne@linux.ibm.com> > --- > pc-bios/s390-ccw/libc.h | 12 ++++++++++++ > 1 file changed, 12 insertions(+) > > diff --git a/pc-bios/s390-ccw/libc.h b/pc-bios/s390-ccw/libc.h > index 818517f..e198f0b 100644 > --- a/pc-bios/s390-ccw/libc.h > +++ b/pc-bios/s390-ccw/libc.h > @@ -19,6 +19,18 @@ typedef unsigned short uint16_t; > typedef unsigned int uint32_t; > typedef unsigned long long uint64_t; > > +/* Avoids compiler warnings when casting a pointer to a u32 */ > +static inline uint32_t ptr2u32(void *ptr) > +{ > + return (uint32_t)(uint64_t)ptr; > +} > + > +/* Avoids compiler warnings when casting a u32 to a pointer */ > +static inline void *u32toptr(uint32_t n) > +{ > + return (void *)(uint64_t)n; > +} Could you please put this into another header? libc.h is for standard-compliant libc functions, and these are no standard functions, as far as I know. Thanks, Thomas
diff --git a/pc-bios/s390-ccw/libc.h b/pc-bios/s390-ccw/libc.h index 818517f..e198f0b 100644 --- a/pc-bios/s390-ccw/libc.h +++ b/pc-bios/s390-ccw/libc.h @@ -19,6 +19,18 @@ typedef unsigned short uint16_t; typedef unsigned int uint32_t; typedef unsigned long long uint64_t; +/* Avoids compiler warnings when casting a pointer to a u32 */ +static inline uint32_t ptr2u32(void *ptr) +{ + return (uint32_t)(uint64_t)ptr; +} + +/* Avoids compiler warnings when casting a u32 to a pointer */ +static inline void *u32toptr(uint32_t n) +{ + return (void *)(uint64_t)n; +} + static inline void *memset(void *s, int c, size_t n) { size_t i;
Introduce inline functions to convert between pointers and unsigned 32-bit ints. These are used to hide the ugliness required to avoid compiler warnings. Signed-off-by: Jason J. Herne <jjherne@linux.ibm.com> --- pc-bios/s390-ccw/libc.h | 12 ++++++++++++ 1 file changed, 12 insertions(+)