From owner-svn-src-projects@FreeBSD.ORG Tue Dec 23 08:40:35 2014 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id D9B8EF15; Tue, 23 Dec 2014 08:40:35 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BB12B64AC8; Tue, 23 Dec 2014 08:40:35 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBN8eZin092318; Tue, 23 Dec 2014 08:40:35 GMT (envelope-from gleb@FreeBSD.org) Received: (from gleb@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBN8eXZl092306; Tue, 23 Dec 2014 08:40:33 GMT (envelope-from gleb@FreeBSD.org) Message-Id: <201412230840.sBN8eXZl092306@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: gleb set sender to gleb@FreeBSD.org using -f From: Gleb Kurtsou Date: Tue, 23 Dec 2014 08:40:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r276121 - in projects/ino64/lib/libc: include sys X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 23 Dec 2014 08:40:35 -0000 Author: gleb Date: Tue Dec 23 08:40:32 2014 New Revision: 276121 URL: https://svnweb.freebsd.org/changeset/base/276121 Log: libc: Add COMPAT10 syscalls. Add wrappers for removed stat, lstat, getdents, mknod. Added: projects/ino64/lib/libc/sys/getdents.c - copied, changed from r276120, projects/ino64/lib/libc/include/compat.h projects/ino64/lib/libc/sys/lstat.c - copied, changed from r276120, projects/ino64/lib/libc/include/compat.h projects/ino64/lib/libc/sys/mknod.c - copied, changed from r276120, projects/ino64/lib/libc/include/compat.h projects/ino64/lib/libc/sys/stat.c - copied, changed from r276120, projects/ino64/lib/libc/include/compat.h Modified: projects/ino64/lib/libc/include/compat.h projects/ino64/lib/libc/include/libc_private.h projects/ino64/lib/libc/sys/Makefile.inc projects/ino64/lib/libc/sys/Symbol.map projects/ino64/lib/libc/sys/getdirentries.2 Modified: projects/ino64/lib/libc/include/compat.h ============================================================================== --- projects/ino64/lib/libc/include/compat.h Tue Dec 23 08:40:24 2014 (r276120) +++ projects/ino64/lib/libc/include/compat.h Tue Dec 23 08:40:32 2014 (r276121) @@ -42,6 +42,27 @@ __sym_compat(__semctl, freebsd7___semctl __sym_compat(msgctl, freebsd7_msgctl, FBSD_1.0); __sym_compat(shmctl, freebsd7_shmctl, FBSD_1.0); +__sym_compat(nfstat, freebsd10_nfstat, FBSD_1.0); +__sym_compat(nlstat, freebsd10_nlstat, FBSD_1.0); +__sym_compat(nstat, freebsd10_nstat, FBSD_1.0); + +__sym_compat(fhstat, freebsd10_fhstat, FBSD_1.0); +__sym_compat(fstat, freebsd10_fstat, FBSD_1.0); +__sym_compat(fstatat, freebsd10_fstatat, FBSD_1.1); +__sym_compat(lstat, freebsd10_lstat, FBSD_1.0); +__sym_compat(stat, freebsd10_stat, FBSD_1.0); + +__sym_compat(getdents, freebsd10_getdents, FBSD_1.0); +__sym_compat(getdirentries, freebsd10_getdirentries, FBSD_1.0); + +__sym_compat(getfsstat, freebsd10_getfsstat, FBSD_1.0); +__sym_compat(fhstatfs, freebsd10_fhstatfs, FBSD_1.0); +__sym_compat(fstatfs, freebsd10_fstatfs, FBSD_1.0); +__sym_compat(statfs, freebsd10_statfs, FBSD_1.0); + +__sym_compat(mknod, freebsd10_mknod, FBSD_1.0); +__sym_compat(mknodat, freebsd10_mknodat, FBSD_1.1); + #undef __sym_compat #endif /* __LIBC_COMPAT_H__ */ Modified: projects/ino64/lib/libc/include/libc_private.h ============================================================================== --- projects/ino64/lib/libc/include/libc_private.h Tue Dec 23 08:40:24 2014 (r276120) +++ projects/ino64/lib/libc/include/libc_private.h Tue Dec 23 08:40:32 2014 (r276121) @@ -37,6 +37,8 @@ #include #include +struct stat; + /* * This global flag is non-zero when a process has created one * or more threads. It is used to avoid calling locking functions @@ -246,6 +248,8 @@ extern void * __sys_freebsd6_mmap(void * /* Without back-compat translation */ extern int __sys_fcntl(int, int, ...); +extern int __sys_fstatat(int, const char *, struct stat *, int); + struct timespec; struct timeval; struct timezone; Modified: projects/ino64/lib/libc/sys/Makefile.inc ============================================================================== --- projects/ino64/lib/libc/sys/Makefile.inc Tue Dec 23 08:40:24 2014 (r276120) +++ projects/ino64/lib/libc/sys/Makefile.inc Tue Dec 23 08:40:32 2014 (r276121) @@ -20,6 +20,7 @@ NOASM+= clock_gettime.o gettimeofday.o PSEUDO+= _clock_gettime.o _gettimeofday.o # Sources common to both syscall interfaces: +SRCS+= getdents.c lstat.c mknod.c stat.c SRCS+= stack_protector.c stack_protector_compat.c __error.c .if ${MK_SYSCALL_COMPAT} != "no" SYSCALL_COMPAT_SRCS= fcntl.c ftruncate.c lseek.c mmap.c pread.c \ Modified: projects/ino64/lib/libc/sys/Symbol.map ============================================================================== --- projects/ino64/lib/libc/sys/Symbol.map Tue Dec 23 08:40:24 2014 (r276120) +++ projects/ino64/lib/libc/sys/Symbol.map Tue Dec 23 08:40:32 2014 (r276121) @@ -88,26 +88,19 @@ FBSD_1.0 { fchown; fcntl; fhopen; - fhstat; - fhstatfs; flock; fork; fpathconf; - fstat; - fstatfs; fsync; futimes; getaudit; getaudit_addr; getauid; getcontext; - getdents; - getdirentries; getdtablesize; getegid; geteuid; getfh; - getfsstat; getgid; getgroups; getitimer; @@ -166,7 +159,6 @@ FBSD_1.0 { link; lio_listio; listen; - lstat; lutimes; mac_syscall; madvise; @@ -174,7 +166,6 @@ FBSD_1.0 { minherit; mkdir; mkfifo; - mknod; mlock; mlockall; modfind; @@ -195,10 +186,7 @@ FBSD_1.0 { netbsd_lchown; netbsd_msync; nfssvc; - nfstat; - nlstat; nmount; - nstat; ntp_adjtime; ntp_gettime; oaio_read; @@ -284,8 +272,6 @@ FBSD_1.0 { socketpair; __stack_chk_fail; __stack_chk_guard; - stat; - statfs; swapcontext; swapoff; swapon; @@ -340,7 +326,6 @@ FBSD_1.1 { fchmodat; fchownat; fexecve; - fstatat; futimesat; jail_get; jail_set; @@ -349,7 +334,6 @@ FBSD_1.1 { lpathconf; mkdirat; mkfifoat; - mknodat; msgctl; openat; readlinkat; @@ -400,7 +384,20 @@ FBSD_1.3 { }; FBSD_1.4 { + fhstat; + fhstatfs; + fstat; + fstatat; + fstatfs; + getdents; + getdirentries; + getfsstat; + lstat; + mknod; + mknodat; ppoll; + stat; + statfs; }; FBSDprivate_1.0 { @@ -607,8 +604,6 @@ FBSDprivate_1.0 { __sys_getauid; _getcontext; __sys_getcontext; - _getdents; - __sys_getdents; _getdirentries; __sys_getdirentries; _getdtablesize; @@ -737,8 +732,6 @@ FBSDprivate_1.0 { __sys_lio_listio; _listen; __sys_listen; - _lstat; - __sys_lstat; _lutimes; __sys_lutimes; _mac_syscall; @@ -797,14 +790,8 @@ FBSDprivate_1.0 { __sys_netbsd_msync; _nfssvc; __sys_nfssvc; - _nfstat; - __sys_nfstat; - _nlstat; - __sys_nlstat; _nmount; __sys_nmount; - _nstat; - __sys_nstat; _ntp_adjtime; __sys_ntp_adjtime; _ntp_gettime; @@ -978,8 +965,6 @@ FBSDprivate_1.0 { __sys_socket; _socketpair; __sys_socketpair; - _stat; - __sys_stat; _statfs; __sys_statfs; _swapcontext; Copied and modified: projects/ino64/lib/libc/sys/getdents.c (from r276120, projects/ino64/lib/libc/include/compat.h) ============================================================================== --- projects/ino64/lib/libc/include/compat.h Tue Dec 23 08:40:24 2014 (r276120, copy source) +++ projects/ino64/lib/libc/sys/getdents.c Tue Dec 23 08:40:32 2014 (r276121) @@ -1,6 +1,5 @@ /*- - * Copyright (c) 2009 Advanced Computing Technologies LLC - * Written by: John H. Baldwin + * Copyright (c) 2012 Gleb Kurtsou * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -23,26 +22,22 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. - * - * $FreeBSD$ - */ - -/* - * This file defines compatiblity symbol versions for old system calls. It - * is included in all generated system call files. */ -#ifndef __LIBC_COMPAT_H__ -#define __LIBC_COMPAT_H__ - -#define __sym_compat(sym,impl,verid) \ - .symver impl, sym@verid - -__sym_compat(__semctl, freebsd7___semctl, FBSD_1.0); -__sym_compat(msgctl, freebsd7_msgctl, FBSD_1.0); -__sym_compat(shmctl, freebsd7_shmctl, FBSD_1.0); - -#undef __sym_compat +#include +__FBSDID("$FreeBSD$"); -#endif /* __LIBC_COMPAT_H__ */ +#include "namespace.h" +#include +#include +#include +#include "libc_private.h" + +ssize_t __sys_getdirentries(int, char *, size_t, off_t *); + +ssize_t +getdents(int fd, char *buf, size_t nbytes) +{ + return (__sys_getdirentries(fd, buf, nbytes, NULL)); +} Modified: projects/ino64/lib/libc/sys/getdirentries.2 ============================================================================== --- projects/ino64/lib/libc/sys/getdirentries.2 Tue Dec 23 08:40:24 2014 (r276120) +++ projects/ino64/lib/libc/sys/getdirentries.2 Tue Dec 23 08:40:32 2014 (r276121) @@ -40,10 +40,10 @@ .Sh SYNOPSIS .In sys/types.h .In dirent.h -.Ft int -.Fn getdirentries "int fd" "char *buf" "int nbytes" "long *basep" -.Ft int -.Fn getdents "int fd" "char *buf" "int nbytes" +.Ft ssize_t +.Fn getdirentries "int fd" "char *buf" "size_t nbytes" "off_t *basep" +.Ft ssize_t +.Fn getdents "int fd" "char *buf" "size_t nbytes" .Sh DESCRIPTION The .Fn getdirentries Copied and modified: projects/ino64/lib/libc/sys/lstat.c (from r276120, projects/ino64/lib/libc/include/compat.h) ============================================================================== --- projects/ino64/lib/libc/include/compat.h Tue Dec 23 08:40:24 2014 (r276120, copy source) +++ projects/ino64/lib/libc/sys/lstat.c Tue Dec 23 08:40:32 2014 (r276121) @@ -1,6 +1,5 @@ /*- - * Copyright (c) 2009 Advanced Computing Technologies LLC - * Written by: John H. Baldwin + * Copyright (c) 2012 Gleb Kurtsou * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -23,26 +22,22 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. - * - * $FreeBSD$ - */ - -/* - * This file defines compatiblity symbol versions for old system calls. It - * is included in all generated system call files. */ -#ifndef __LIBC_COMPAT_H__ -#define __LIBC_COMPAT_H__ - -#define __sym_compat(sym,impl,verid) \ - .symver impl, sym@verid - -__sym_compat(__semctl, freebsd7___semctl, FBSD_1.0); -__sym_compat(msgctl, freebsd7_msgctl, FBSD_1.0); -__sym_compat(shmctl, freebsd7_shmctl, FBSD_1.0); - -#undef __sym_compat +#include +__FBSDID("$FreeBSD$"); -#endif /* __LIBC_COMPAT_H__ */ +#include "namespace.h" +#include +#include +#include +#include +#include +#include "libc_private.h" + +int +lstat(const char *path, struct stat *sb) +{ + return (__sys_fstatat(AT_FDCWD, path, sb, AT_SYMLINK_NOFOLLOW)); +} Copied and modified: projects/ino64/lib/libc/sys/mknod.c (from r276120, projects/ino64/lib/libc/include/compat.h) ============================================================================== --- projects/ino64/lib/libc/include/compat.h Tue Dec 23 08:40:24 2014 (r276120, copy source) +++ projects/ino64/lib/libc/sys/mknod.c Tue Dec 23 08:40:32 2014 (r276121) @@ -1,6 +1,5 @@ /*- - * Copyright (c) 2009 Advanced Computing Technologies LLC - * Written by: John H. Baldwin + * Copyright (c) 2011 Gleb Kurtsou * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -23,26 +22,24 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. - * - * $FreeBSD$ - */ - -/* - * This file defines compatiblity symbol versions for old system calls. It - * is included in all generated system call files. */ -#ifndef __LIBC_COMPAT_H__ -#define __LIBC_COMPAT_H__ - -#define __sym_compat(sym,impl,verid) \ - .symver impl, sym@verid - -__sym_compat(__semctl, freebsd7___semctl, FBSD_1.0); -__sym_compat(msgctl, freebsd7_msgctl, FBSD_1.0); -__sym_compat(shmctl, freebsd7_shmctl, FBSD_1.0); - -#undef __sym_compat +#include +__FBSDID("$FreeBSD$"); -#endif /* __LIBC_COMPAT_H__ */ +#include "namespace.h" +#include +#include +#include +#include +#include +#include "libc_private.h" + +int __sys_mknodat(int, const char *, mode_t, dev_t); + +int +mknod(const char *path, mode_t mode, dev_t dev) +{ + return (__sys_mknodat(AT_FDCWD, path, mode, dev)); +} Copied and modified: projects/ino64/lib/libc/sys/stat.c (from r276120, projects/ino64/lib/libc/include/compat.h) ============================================================================== --- projects/ino64/lib/libc/include/compat.h Tue Dec 23 08:40:24 2014 (r276120, copy source) +++ projects/ino64/lib/libc/sys/stat.c Tue Dec 23 08:40:32 2014 (r276121) @@ -1,6 +1,5 @@ /*- - * Copyright (c) 2009 Advanced Computing Technologies LLC - * Written by: John H. Baldwin + * Copyright (c) 2012 Gleb Kurtsou * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -23,26 +22,22 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. - * - * $FreeBSD$ - */ - -/* - * This file defines compatiblity symbol versions for old system calls. It - * is included in all generated system call files. */ -#ifndef __LIBC_COMPAT_H__ -#define __LIBC_COMPAT_H__ - -#define __sym_compat(sym,impl,verid) \ - .symver impl, sym@verid - -__sym_compat(__semctl, freebsd7___semctl, FBSD_1.0); -__sym_compat(msgctl, freebsd7_msgctl, FBSD_1.0); -__sym_compat(shmctl, freebsd7_shmctl, FBSD_1.0); - -#undef __sym_compat +#include +__FBSDID("$FreeBSD$"); -#endif /* __LIBC_COMPAT_H__ */ +#include "namespace.h" +#include +#include +#include +#include +#include +#include "libc_private.h" + +int +stat(const char *path, struct stat *sb) +{ + return (__sys_fstatat(AT_FDCWD, path, sb, 0)); +}