mirror of
https://github.com/samba-team/samba.git
synced 2024-12-24 21:34:56 +03:00
6a78241f4a
thanks to Joachim Schmitz <schmitz@hp.com>. This fixes #7460.
189 lines
3.8 KiB
C
189 lines
3.8 KiB
C
#ifndef _system_filesys_h
|
|
#define _system_filesys_h
|
|
/*
|
|
Unix SMB/CIFS implementation.
|
|
|
|
filesystem system include wrappers
|
|
|
|
Copyright (C) Andrew Tridgell 2004
|
|
|
|
** NOTE! The following LGPL license applies to the replace
|
|
** library. This does NOT imply that all of Samba is released
|
|
** under the LGPL
|
|
|
|
This library is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU Lesser General Public
|
|
License as published by the Free Software Foundation; either
|
|
version 3 of the License, or (at your option) any later version.
|
|
|
|
This library is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Lesser General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Lesser General Public
|
|
License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
|
|
|
*/
|
|
|
|
#include <unistd.h>
|
|
#include <sys/stat.h>
|
|
|
|
#ifdef HAVE_SYS_PARAM_H
|
|
#include <sys/param.h>
|
|
#endif
|
|
|
|
#ifdef HAVE_SYS_MOUNT_H
|
|
#include <sys/mount.h>
|
|
#endif
|
|
|
|
#ifdef HAVE_MNTENT_H
|
|
#include <mntent.h>
|
|
#endif
|
|
|
|
#ifdef HAVE_SYS_VFS_H
|
|
#include <sys/vfs.h>
|
|
#endif
|
|
|
|
#ifdef HAVE_SYS_ACL_H
|
|
#include <sys/acl.h>
|
|
#endif
|
|
|
|
#ifdef HAVE_ACL_LIBACL_H
|
|
#include <acl/libacl.h>
|
|
#endif
|
|
|
|
#ifdef HAVE_SYS_FS_S5PARAM_H
|
|
#include <sys/fs/s5param.h>
|
|
#endif
|
|
|
|
#if defined (HAVE_SYS_FILSYS_H) && !defined (_CRAY)
|
|
#include <sys/filsys.h>
|
|
#endif
|
|
|
|
#ifdef HAVE_SYS_STATFS_H
|
|
# include <sys/statfs.h>
|
|
#endif
|
|
|
|
#ifdef HAVE_DUSTAT_H
|
|
#include <sys/dustat.h>
|
|
#endif
|
|
|
|
#ifdef HAVE_SYS_STATVFS_H
|
|
#include <sys/statvfs.h>
|
|
#endif
|
|
|
|
#ifdef HAVE_SYS_FILIO_H
|
|
#include <sys/filio.h>
|
|
#endif
|
|
|
|
#ifdef HAVE_SYS_FILE_H
|
|
#include <sys/file.h>
|
|
#endif
|
|
|
|
#ifdef HAVE_FCNTL_H
|
|
#include <fcntl.h>
|
|
#else
|
|
#ifdef HAVE_SYS_FCNTL_H
|
|
#include <sys/fcntl.h>
|
|
#endif
|
|
#endif
|
|
|
|
#ifdef HAVE_SYS_MODE_H
|
|
/* apparently AIX needs this for S_ISLNK */
|
|
#ifndef S_ISLNK
|
|
#include <sys/mode.h>
|
|
#endif
|
|
#endif
|
|
|
|
#ifdef HAVE_SYS_IOCTL_H
|
|
#include <sys/ioctl.h>
|
|
#endif
|
|
|
|
/*
|
|
* Veritas File System. Often in addition to native.
|
|
* Quotas different.
|
|
*/
|
|
#if defined(HAVE_SYS_FS_VX_QUOTA_H)
|
|
#define VXFS_QUOTA
|
|
#endif
|
|
|
|
#if HAVE_SYS_ATTRIBUTES_H
|
|
#include <sys/attributes.h>
|
|
#endif
|
|
|
|
/* mutually exclusive (SuSE 8.2) */
|
|
#if HAVE_ATTR_XATTR_H
|
|
#include <attr/xattr.h>
|
|
#elif HAVE_SYS_XATTR_H
|
|
#include <sys/xattr.h>
|
|
#endif
|
|
|
|
|
|
#ifdef HAVE_SYS_RESOURCE_H
|
|
#include <sys/resource.h>
|
|
#endif
|
|
|
|
/* Some POSIX definitions for those without */
|
|
|
|
#ifndef S_IFDIR
|
|
#define S_IFDIR 0x4000
|
|
#endif
|
|
#ifndef S_ISDIR
|
|
#define S_ISDIR(mode) ((mode & 0xF000) == S_IFDIR)
|
|
#endif
|
|
#ifndef S_IRWXU
|
|
#define S_IRWXU 00700 /* read, write, execute: owner */
|
|
#endif
|
|
#ifndef S_IRUSR
|
|
#define S_IRUSR 00400 /* read permission: owner */
|
|
#endif
|
|
#ifndef S_IWUSR
|
|
#define S_IWUSR 00200 /* write permission: owner */
|
|
#endif
|
|
#ifndef S_IXUSR
|
|
#define S_IXUSR 00100 /* execute permission: owner */
|
|
#endif
|
|
#ifndef S_IRWXG
|
|
#define S_IRWXG 00070 /* read, write, execute: group */
|
|
#endif
|
|
#ifndef S_IRGRP
|
|
#define S_IRGRP 00040 /* read permission: group */
|
|
#endif
|
|
#ifndef S_IWGRP
|
|
#define S_IWGRP 00020 /* write permission: group */
|
|
#endif
|
|
#ifndef S_IXGRP
|
|
#define S_IXGRP 00010 /* execute permission: group */
|
|
#endif
|
|
#ifndef S_IRWXO
|
|
#define S_IRWXO 00007 /* read, write, execute: other */
|
|
#endif
|
|
#ifndef S_IROTH
|
|
#define S_IROTH 00004 /* read permission: other */
|
|
#endif
|
|
#ifndef S_IWOTH
|
|
#define S_IWOTH 00002 /* write permission: other */
|
|
#endif
|
|
#ifndef S_IXOTH
|
|
#define S_IXOTH 00001 /* execute permission: other */
|
|
#endif
|
|
|
|
#ifndef O_ACCMODE
|
|
#define O_ACCMODE (O_RDONLY | O_WRONLY | O_RDWR)
|
|
#endif
|
|
|
|
#ifndef MAXPATHLEN
|
|
#define MAXPATHLEN 256
|
|
#endif
|
|
|
|
#ifndef SEEK_SET
|
|
#define SEEK_SET 0
|
|
#endif
|
|
|
|
#ifdef _WIN32
|
|
#define mkdir(d,m) _mkdir(d)
|
|
#endif
|
|
|
|
#endif
|