• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/router/samba-3.5.8/lib/replace/system/
1#ifndef _system_filesys_h
2#define _system_filesys_h
3/*
4   Unix SMB/CIFS implementation.
5
6   filesystem system include wrappers
7
8   Copyright (C) Andrew Tridgell 2004
9
10     ** NOTE! The following LGPL license applies to the replace
11     ** library. This does NOT imply that all of Samba is released
12     ** under the LGPL
13
14   This library is free software; you can redistribute it and/or
15   modify it under the terms of the GNU Lesser General Public
16   License as published by the Free Software Foundation; either
17   version 3 of the License, or (at your option) any later version.
18
19   This library is distributed in the hope that it will be useful,
20   but WITHOUT ANY WARRANTY; without even the implied warranty of
21   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
22   Lesser General Public License for more details.
23
24   You should have received a copy of the GNU Lesser General Public
25   License along with this library; if not, see <http://www.gnu.org/licenses/>.
26
27*/
28
29#include <unistd.h>
30#include <sys/stat.h>
31
32#ifdef HAVE_SYS_PARAM_H
33#include <sys/param.h>
34#endif
35
36#ifdef HAVE_SYS_MOUNT_H
37#include <sys/mount.h>
38#endif
39
40#ifdef HAVE_MNTENT_H
41#include <mntent.h>
42#endif
43
44#ifdef HAVE_SYS_VFS_H
45#include <sys/vfs.h>
46#endif
47
48#ifdef HAVE_SYS_ACL_H
49#include <sys/acl.h>
50#endif
51
52#ifdef HAVE_ACL_LIBACL_H
53#include <acl/libacl.h>
54#endif
55
56#ifdef HAVE_SYS_FS_S5PARAM_H
57#include <sys/fs/s5param.h>
58#endif
59
60#if defined (HAVE_SYS_FILSYS_H) && !defined (_CRAY)
61#include <sys/filsys.h>
62#endif
63
64#ifdef HAVE_SYS_STATFS_H
65# include <sys/statfs.h>
66#endif
67
68#ifdef HAVE_DUSTAT_H
69#include <sys/dustat.h>
70#endif
71
72#ifdef HAVE_SYS_STATVFS_H
73#include <sys/statvfs.h>
74#endif
75
76#ifdef HAVE_SYS_FILIO_H
77#include <sys/filio.h>
78#endif
79
80#include <sys/file.h>
81
82#ifdef HAVE_FCNTL_H
83#include <fcntl.h>
84#else
85#ifdef HAVE_SYS_FCNTL_H
86#include <sys/fcntl.h>
87#endif
88#endif
89
90#ifdef HAVE_SYS_MODE_H
91/* apparently AIX needs this for S_ISLNK */
92#ifndef S_ISLNK
93#include <sys/mode.h>
94#endif
95#endif
96
97#ifdef HAVE_SYS_IOCTL_H
98#include <sys/ioctl.h>
99#endif
100
101/*
102 * Veritas File System.  Often in addition to native.
103 * Quotas different.
104 */
105#if defined(HAVE_SYS_FS_VX_QUOTA_H)
106#define VXFS_QUOTA
107#endif
108
109#if HAVE_SYS_ATTRIBUTES_H
110#include <sys/attributes.h>
111#endif
112
113/* mutually exclusive (SuSE 8.2) */
114#if HAVE_ATTR_XATTR_H
115#include <attr/xattr.h>
116#elif HAVE_SYS_XATTR_H
117#include <sys/xattr.h>
118#endif
119
120
121#ifdef HAVE_SYS_RESOURCE_H
122#include <sys/resource.h>
123#endif
124
125/* Some POSIX definitions for those without */
126
127#ifndef S_IFDIR
128#define S_IFDIR         0x4000
129#endif
130#ifndef S_ISDIR
131#define S_ISDIR(mode)   ((mode & 0xF000) == S_IFDIR)
132#endif
133#ifndef S_IRWXU
134#define S_IRWXU 00700           /* read, write, execute: owner */
135#endif
136#ifndef S_IRUSR
137#define S_IRUSR 00400           /* read permission: owner */
138#endif
139#ifndef S_IWUSR
140#define S_IWUSR 00200           /* write permission: owner */
141#endif
142#ifndef S_IXUSR
143#define S_IXUSR 00100           /* execute permission: owner */
144#endif
145#ifndef S_IRWXG
146#define S_IRWXG 00070           /* read, write, execute: group */
147#endif
148#ifndef S_IRGRP
149#define S_IRGRP 00040           /* read permission: group */
150#endif
151#ifndef S_IWGRP
152#define S_IWGRP 00020           /* write permission: group */
153#endif
154#ifndef S_IXGRP
155#define S_IXGRP 00010           /* execute permission: group */
156#endif
157#ifndef S_IRWXO
158#define S_IRWXO 00007           /* read, write, execute: other */
159#endif
160#ifndef S_IROTH
161#define S_IROTH 00004           /* read permission: other */
162#endif
163#ifndef S_IWOTH
164#define S_IWOTH 00002           /* write permission: other */
165#endif
166#ifndef S_IXOTH
167#define S_IXOTH 00001           /* execute permission: other */
168#endif
169
170#ifndef O_ACCMODE
171#define O_ACCMODE (O_RDONLY | O_WRONLY | O_RDWR)
172#endif
173
174#ifndef MAXPATHLEN
175#define MAXPATHLEN 256
176#endif
177
178#ifndef SEEK_SET
179#define SEEK_SET 0
180#endif
181
182#ifdef _WIN32
183#define mkdir(d,m) _mkdir(d)
184#endif
185
186#endif
187