2008-03-21 01:42:10

by Yanmin Zhang

[permalink] [raw]
Subject: [PATCH] Add definitions of USHRT_MAX

Add definitions of USHRT_MAX and others into kernel. ipc uses it and
slub implementation might also use it.

The patch is against 2.6.25-rc6.

Signed-off-by: Zhang Yanmin <[email protected]>
Reviewed-by: Christoph Lameter <[email protected]>

---

--- linux-2.6.25-rc6/include/linux/kernel.h 2008-03-20 04:25:46.000000000 +0800
+++ linux-2.6.25-rc6_work/include/linux/kernel.h 2008-03-20 04:17:45.000000000 +0800
@@ -20,6 +20,9 @@
extern const char linux_banner[];
extern const char linux_proc_banner[];

+#define USHRT_MAX ((u16)(~0U))
+#define SHRT_MAX ((s16)(USHRT_MAX>>1))
+#define SHRT_MIN (-SHRT_MAX - 1)
#define INT_MAX ((int)(~0U>>1))
#define INT_MIN (-INT_MAX - 1)
#define UINT_MAX (~0U)
--- linux-2.6.25-rc6/ipc/util.h 2008-03-20 04:25:46.000000000 +0800
+++ linux-2.6.25-rc6_work/ipc/util.h 2008-03-20 04:22:07.000000000 +0800
@@ -12,7 +12,6 @@

#include <linux/err.h>

-#define USHRT_MAX 0xffff
#define SEQ_MULTIPLIER (IPCMNI)

void sem_init (void);


2008-03-21 01:54:32

by Joe Perches

[permalink] [raw]
Subject: Re: [PATCH] Add definitions of USHRT_MAX

On Fri, 2008-03-21 at 09:40 +0800, Zhang, Yanmin wrote:
> Add definitions of USHRT_MAX and others into kernel. ipc uses it and
> slub implementation might also use it.
> +#define USHRT_MAX ((u16)(~0U))
> +#define SHRT_MAX ((s16)(USHRT_MAX>>1))
> +#define SHRT_MIN (-SHRT_MAX - 1)

Perhaps it's better to use the most common kernel types?
Perhaps U16_MAX, S16_MAX and S16_MIN?

Don't you need to cast SHRT_MIN/S16_MIN too?
#define S16_MIN ((s16)(-SHRT_MAX - 1))

2008-03-21 02:11:18

by Yanmin Zhang

[permalink] [raw]
Subject: Re: [PATCH] Add definitions of USHRT_MAX

On Thu, 2008-03-20 at 18:51 -0700, Joe Perches wrote:
> On Fri, 2008-03-21 at 09:40 +0800, Zhang, Yanmin wrote:
> > Add definitions of USHRT_MAX and others into kernel. ipc uses it and
> > slub implementation might also use it.
> > +#define USHRT_MAX ((u16)(~0U))
> > +#define SHRT_MAX ((s16)(USHRT_MAX>>1))
> > +#define SHRT_MIN (-SHRT_MAX - 1)
>
> Perhaps it's better to use the most common kernel types?
ipc uses USHRT_MAX in a couple of files. Should we keep it consistent?

If ipc wouldn't use it, I would prefer your idea.

> Perhaps U16_MAX, S16_MAX and S16_MIN?
>
> Don't you need to cast SHRT_MIN/S16_MIN too?
> #define S16_MIN ((s16)(-SHRT_MAX - 1))
No. I simulate INT_MIN. I also tested it by defining a var and didn't get
compilation warning.

2008-03-21 02:13:01

by Jan Engelhardt

[permalink] [raw]
Subject: Re: [PATCH] Add definitions of USHRT_MAX


On Mar 20 2008 18:51, Joe Perches wrote:
> On Fri, 2008-03-21 at 09:40 +0800, Zhang, Yanmin wrote:
>> Add definitions of USHRT_MAX and others into kernel. ipc uses it and
>> slub implementation might also use it.
>> +#define USHRT_MAX ((u16)(~0U))
>> +#define SHRT_MAX ((s16)(USHRT_MAX>>1))
>> +#define SHRT_MIN (-SHRT_MAX - 1)
>
> Perhaps it's better to use the most common kernel types?
> Perhaps U16_MAX, S16_MAX and S16_MIN?
>
> Don't you need to cast SHRT_MIN/S16_MIN too?
> #define S16_MIN ((s16)(-SHRT_MAX - 1))

SHRT_MAX is already s16.