qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] Use stdint.h for integral data types and defini


From: Stefan Weil
Subject: Re: [Qemu-devel] [PATCH] Use stdint.h for integral data types and definitions
Date: Mon, 30 Mar 2009 09:03:20 +0200
User-agent: Mozilla-Thunderbird 2.0.0.19 (X11/20090103)

Jan Kiszka schrieb:
> Stefan Weil wrote:
>> This patch replaces local definitions and declaration
>> for integral data types by a C99 standard header file.
>>
>> This reduces Qemu code, avoids some compiler warnings
>> because of redefinitions and should make the code more
>> portable.
>>
>> Signed-off-by: Stefan Weil <address@hidden>
>>
>> Index: trunk/dyngen-exec.h
>> ===================================================================
>> --- trunk.orig/dyngen-exec.h 2009-02-06 22:21:41.000000000 +0100
>> +++ trunk/dyngen-exec.h 2009-02-06 22:21:42.000000000 +0100
>> @@ -31,57 +31,15 @@
>> point because host CPU registers are used as global variables. Some
>> host headers do not allow that. */
>> #include <stddef.h>
>> +#include <stdint.h>
>
> I think the safer and cleaner approach is to remove the last users of
> legacy dyngen-exec.h and finally kill this file.
>
> Jan
>

The name of this file and the comments in dyngen-exec.h are misleading.
It is still used by all targets.

If there are no more comments, I suggest to apply my patch to QEMU trunk.
To make this easier, I send an updated version of the patch which is needed
to avoid merge conflicts because in the meantime, a macro was renamed.

Regards

Stefan Weil






This patch replaces local definitions and declaration
for integral data types by a C99 standard header file.

This reduces Qemu code, avoids some compiler warnings
because of redefinitions and should make the code more
portable.

Signed-off-by: Stefan Weil <address@hidden>

Index: trunk/dyngen-exec.h
===================================================================
--- trunk.orig/dyngen-exec.h    2009-03-13 09:46:03.000000000 +0100
+++ trunk/dyngen-exec.h 2009-03-13 09:50:53.000000000 +0100
@@ -31,57 +31,15 @@
    point because host CPU registers are used as global variables. Some
    host headers do not allow that. */
 #include <stddef.h>
+#include <stdint.h>
 
 #ifdef __OpenBSD__
 #include <sys/types.h>
-#else
-typedef unsigned char uint8_t;
-typedef unsigned short uint16_t;
-typedef unsigned int uint32_t;
-// Linux/Sparc64 defines uint64_t
-#if !(defined (__sparc_v9__) && defined(__linux__)) && !(defined(__APPLE__) && 
defined(__x86_64__))
-/* XXX may be done for all 64 bits targets ? */
-#if defined (__x86_64__) || defined(__ia64) || defined(__s390x__) || 
defined(__alpha__) || defined(_ARCH_PPC64)
-typedef unsigned long uint64_t;
-#else
-typedef unsigned long long uint64_t;
-#endif
-#endif
-
-/* if Solaris/__sun__, don't typedef int8_t, as it will be typedef'd
-   prior to this and will cause an error in compliation, conflicting
-   with /usr/include/sys/int_types.h, line 75 */
-#ifndef __sun__
-typedef signed char int8_t;
-#endif
-typedef signed short int16_t;
-typedef signed int int32_t;
-// Linux/Sparc64 defines int64_t
-#if !(defined (__sparc_v9__) && defined(__linux__)) && !(defined(__APPLE__) && 
defined(__x86_64__))
-#if defined (__x86_64__) || defined(__ia64) || defined(__s390x__) || 
defined(__alpha__) || defined(_ARCH_PPC64)
-typedef signed long int64_t;
-#else
-typedef signed long long int64_t;
-#endif
-#endif
 #endif
 
 /* XXX: This may be wrong for 64-bit ILP32 hosts.  */
 typedef void * host_reg_t;
 
-#define INT8_MIN               (-128)
-#define INT16_MIN              (-32767-1)
-#define INT32_MIN              (-2147483647-1)
-#define INT64_MIN              (-(int64_t)(9223372036854775807)-1)
-#define INT8_MAX               (127)
-#define INT16_MAX              (32767)
-#define INT32_MAX              (2147483647)
-#define INT64_MAX              ((int64_t)(9223372036854775807))
-#define UINT8_MAX              (255)
-#define UINT16_MAX             (65535)
-#define UINT32_MAX             (4294967295U)
-#define UINT64_MAX             ((uint64_t)(18446744073709551615))
-
 #ifdef HOST_BSD
 typedef struct __sFILE FILE;
 #else

reply via email to

[Prev in Thread] Current Thread [Next in Thread]