• 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.0.25b/source/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   This program is free software; you can redistribute it and/or modify
11   it under the terms of the GNU General Public License as published by
12   the Free Software Foundation; either version 2 of the License, or
13   (at your option) any later version.
14
15   This program is distributed in the hope that it will be useful,
16   but WITHOUT ANY WARRANTY; without even the implied warranty of
17   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18   GNU General Public License for more details.
19
20   You should have received a copy of the GNU General Public License
21   along with this program; if not, write to the Free Software
22   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
23*/
24
25#include <unistd.h>
26#include <sys/stat.h>
27
28#ifdef HAVE_SYS_PARAM_H
29#include <sys/param.h>
30#endif
31
32#ifdef HAVE_SYS_MOUNT_H
33#include <sys/mount.h>
34#endif
35
36#ifdef HAVE_SYS_VFS_H
37#include <sys/vfs.h>
38#endif
39
40#ifdef HAVE_SYS_ACL_H
41#include <sys/acl.h>
42#endif
43
44#ifdef HAVE_ACL_LIBACL_H
45#include <acl/libacl.h>
46#endif
47
48#ifdef HAVE_SYS_FS_S5PARAM_H
49#include <sys/fs/s5param.h>
50#endif
51
52#if defined (HAVE_SYS_FILSYS_H) && !defined (_CRAY)
53#include <sys/filsys.h>
54#endif
55
56#ifdef HAVE_SYS_STATFS_H
57# include <sys/statfs.h>
58#endif
59
60#ifdef HAVE_DUSTAT_H
61#include <sys/dustat.h>
62#endif
63
64#ifdef HAVE_SYS_STATVFS_H
65#include <sys/statvfs.h>
66#endif
67
68#ifdef HAVE_SYS_FILIO_H
69#include <sys/filio.h>
70#endif
71
72#include <sys/file.h>
73
74#ifdef HAVE_FCNTL_H
75#include <fcntl.h>
76#else
77#ifdef HAVE_SYS_FCNTL_H
78#include <sys/fcntl.h>
79#endif
80#endif
81
82#ifdef HAVE_SYS_MODE_H
83/* apparently AIX needs this for S_ISLNK */
84#ifndef S_ISLNK
85#include <sys/mode.h>
86#endif
87#endif
88
89#ifdef HAVE_SYS_IOCTL_H
90#include <sys/ioctl.h>
91#endif
92
93/*
94 * Veritas File System.  Often in addition to native.
95 * Quotas different.
96 */
97#if defined(HAVE_SYS_FS_VX_QUOTA_H)
98#define VXFS_QUOTA
99#endif
100
101#if HAVE_SYS_ATTRIBUTES_H
102#include <sys/attributes.h>
103#endif
104
105/* mutually exclusive (SuSE 8.2) */
106#if HAVE_ATTR_XATTR_H
107#include <attr/xattr.h>
108#elif HAVE_SYS_XATTR_H
109#include <sys/xattr.h>
110#endif
111
112
113#ifdef HAVE_SYS_RESOURCE_H
114#include <sys/resource.h>
115#endif
116
117/* Some POSIX definitions for those without */
118
119#ifndef S_IFDIR
120#define S_IFDIR         0x4000
121#endif
122#ifndef S_ISDIR
123#define S_ISDIR(mode)   ((mode & 0xF000) == S_IFDIR)
124#endif
125#ifndef S_IRWXU
126#define S_IRWXU 00700           /* read, write, execute: owner */
127#endif
128#ifndef S_IRUSR
129#define S_IRUSR 00400           /* read permission: owner */
130#endif
131#ifndef S_IWUSR
132#define S_IWUSR 00200           /* write permission: owner */
133#endif
134#ifndef S_IXUSR
135#define S_IXUSR 00100           /* execute permission: owner */
136#endif
137#ifndef S_IRWXG
138#define S_IRWXG 00070           /* read, write, execute: group */
139#endif
140#ifndef S_IRGRP
141#define S_IRGRP 00040           /* read permission: group */
142#endif
143#ifndef S_IWGRP
144#define S_IWGRP 00020           /* write permission: group */
145#endif
146#ifndef S_IXGRP
147#define S_IXGRP 00010           /* execute permission: group */
148#endif
149#ifndef S_IRWXO
150#define S_IRWXO 00007           /* read, write, execute: other */
151#endif
152#ifndef S_IROTH
153#define S_IROTH 00004           /* read permission: other */
154#endif
155#ifndef S_IWOTH
156#define S_IWOTH 00002           /* write permission: other */
157#endif
158#ifndef S_IXOTH
159#define S_IXOTH 00001           /* execute permission: other */
160#endif
161
162#ifndef O_ACCMODE
163#define O_ACCMODE (O_RDONLY | O_WRONLY | O_RDWR)
164#endif
165
166#ifndef MAXPATHLEN
167#define MAXPATHLEN 256
168#endif
169
170#ifndef SEEK_SET
171#define SEEK_SET 0
172#endif
173
174#endif
175