Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 6 Apr 2007 21:33:27 +0400
From:      Andrey Chernov <ache@FreeBSD.org>
To:        Pawel Jakub Dawidek <pjd@FreeBSD.org>
Cc:        cvs-src@FreeBSD.org, src-committers@FreeBSD.org, cvs-all@FreeBSD.org, Bruce Evans <bde@zeta.org.au>
Subject:   Re: cvs commit: src/include stdio.h src/lib/libc/sys lseek.2 pathconf.2 src/sys/kern vfs_syscalls.c src/sys/sys filio.h unistd.h
Message-ID:  <20070406173327.GA94465@nagual.pp.ru>
In-Reply-To: <20070406162711.GD3519@garage.freebsd.pl>
References:  <200704052110.l35LAsXH013966@repoman.freebsd.org> <20070406115326.A43678@delplex.bde.org> <20070406053934.GA84722@nagual.pp.ru> <20070406103519.GA1251@garage.freebsd.pl> <20070406131127.GA91320@nagual.pp.ru> <20070406162711.GD3519@garage.freebsd.pl>

next in thread | previous in thread | raw e-mail | index | archive | help

--a8Wt8u1KmwUX3Y2C
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Fri, Apr 06, 2007 at 06:27:11PM +0200, Pawel Jakub Dawidek wrote:
> > Feel free to invent any other __*_VISIBLE tag to exclude this addition=
=20
> > from namespace for programs which may define their own SEEK_DATA etc=20
> > which is allowed f.e. in POSIX namespace. Look like other __*_VISIBLE t=
ags=20
> > are implemented and what they does. Default is turn all on.
>=20
> Ok, can someone help me with this?

The very basics are: application request particular namespace at compile=20
time using -D_*_SOURCE define. According to choosed _*_SOURCE some of=20
__*_VISIBLE macros are defined and some not (if no namespace choosed, all=
=20
__*_VISIBLE are defined, default case). According to __*_VISIBLE macros=20
defined some functions or definitions becomes hidden or visible.

See the very end of /sys/sys/cdefs.h for live examples.

__*_VISIBLE macros are in form __<standard or platform>_VISIBLE
For example can be __CDDL_VISIBLE or __ZFS_VISIBLE (depends on exactly=20
where those extensions was introduced). Lets take __ZFS_VISIBLE for the=20
rest of explanation.

You need to directly hide those extensions for every particular=20
_*_SOURCE namespace, i.e. add=20
#define __ZFS_VISIBLE 0
to all of them and enable extensions=20
#define __ZFS_VISIBLE 1
only for the last (default) case (at the very end of /sys/sys/cdefs.h)

Then use (for unistd.h)
#if __ZFS_VISIBLE
#define SEEK_DATA ...
#endif

Try to asking more help at standards@ or bde@ who notice it first and=20
knows this thing apparenly better than me.

> > In any case adding them to stdio.h is premature action - I not see yet
> > corresponding fseek() code.
>=20
> I'm looking at removing it from stdio.h.

Good.

--=20
http://ache.pp.ru/

--a8Wt8u1KmwUX3Y2C
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.3 (FreeBSD)

iD8DBQFGFoRnVg5YK5ZEdN0RAqB9AJ4xsziu4vgl/QssaLizJ7z97yHCLwCfXB1P
yetVBf+ORp9e+iYGtcAFWFQ=
=wMlA
-----END PGP SIGNATURE-----

--a8Wt8u1KmwUX3Y2C--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070406173327.GA94465>