2007-11-14 21:03:23

by Oliver Falk

[permalink] [raw]
Subject: Question about F_RDLCK and F_WRLCK on alpha

Hi!

Can someone explain me, why we have different define's for WRLCK and
RDLCK within alpha kernel headers:

Alpha system:

asm/fcntl.h:#define F_RDLCK 1
asm-generic/fcntl.h:#ifndef F_RDLCK
asm-generic/fcntl.h:#define F_RDLCK 0
bits/fcntl.h:#define F_RDLCK 1 /* Read lock. */

Intel system:

asm-generic/fcntl.h:#ifndef F_RDLCK
asm-generic/fcntl.h:#define F_RDLCK 0
bits/fcntl.h:#define F_RDLCK 0 /* Read lock. */

I would say F_RDLCK should better be 0 as in i386, but I also guess that
changing this would break many things, wouldn't it?

I don't want to tell you my (long) story, how I found that and why I was
searching for it :-(

(Jay, you know what I'm talkin' about, don't you?)


Well, maybe my kernel headers are just packaged up like crap!?


Best,
Oliver


2007-11-15 03:54:45

by U. George

[permalink] [raw]
Subject: Re: Question about F_RDLCK and F_WRLCK on alpha

I suppose this can be better analyzed if the cpp output is presented to
show exactly how rdlck/wrlck is included/defined .

But the only requirement is that the flags are unique. solong as wrlck
!= rdlck != unlck every is happy.

There is no expectation that an i386 binary will run on an alpha machine.

there might be an issue if the i386 source code uses "0" or "1"
constants instead of the WRLCK/RDLCK. And then compiled on the alpha.
Then it would be out of sync.

I suppose they are different bec the folks at OSF had it defined that
way. And there was some need to run OSF/alpha bins on a linux/alpha (
just a guess on my part )

Oliver Falk wrote:
> Hi!
>
> Can someone explain me, why we have different define's for WRLCK and
> RDLCK within alpha kernel headers: