]>
git.ipfire.org Git - thirdparty/xfsprogs-dev.git/blob - include/darwin.h
2 * Copyright (c) 2004-2006 Silicon Graphics, Inc.
5 * This program is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public License
7 * as published by the Free Software Foundation.
9 * This program is distributed in the hope that it would be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public License
15 * along with this program; if not, write the Free Software Foundation,
16 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 #ifndef __XFS_DARWIN_H__
19 #define __XFS_DARWIN_H__
22 #include <sys/types.h>
24 #include <uuid/uuid.h>
28 #include <sys/ioctl.h>
29 #include <sys/mount.h>
30 #include <sys/types.h>
32 #include <mach/mach_time.h>
36 #include <machine/endian.h>
37 #define __BYTE_ORDER BYTE_ORDER
38 #define __BIG_ENDIAN BIG_ENDIAN
39 #define __LITTLE_ENDIAN LITTLE_ENDIAN
41 #include <sys/syscall.h>
43 # define SYS_fsctl 242
46 #ifndef XATTR_LIST_MAX
47 #define XATTR_LIST_MAX 65536
50 static __inline__
int xfsctl(const char *path
, int fd
, int cmd
, void *p
)
52 return syscall(SYS_fsctl
, path
, cmd
, p
, 0);
55 static __inline__
int platform_test_xfs_fd(int fd
)
58 if (fstatfs(fd
, &buf
) < 0)
60 return strncmp(buf
.f_fstypename
, "xfs", 4) == 0;
63 static __inline__
int platform_test_xfs_path(const char *path
)
66 if (statfs(path
, &buf
) < 0)
68 return strncmp(buf
.f_fstypename
, "xfs", 4) == 0;
71 static __inline__
int platform_fstatfs(int fd
, struct statfs
*buf
)
73 return fstatfs(fd
, buf
);
76 static __inline__
void platform_getoptreset(void)
82 static __inline__
int platform_uuid_compare(uuid_t
*uu1
, uuid_t
*uu2
)
84 return uuid_compare(uu1
, uu2
, NULL
);
87 static __inline__
void platform_uuid_unparse(uuid_t
*uu
, char *buffer
)
91 uuid_to_string(uu
, &s
, &status
);
92 if (status
== uuid_s_ok
)
94 else buffer
[0] = '\0';
98 static __inline__
int platform_uuid_parse(char *buffer
, uuid_t
*uu
)
101 uuid_from_string(buffer
, uu
, &status
);
102 return (status
== uuid_s_ok
);
105 static __inline__
int platform_uuid_is_null(uuid_t
*uu
)
107 return uuid_is_nil(uu
, NULL
);
110 static __inline__
void platform_uuid_generate(uuid_t
*uu
)
112 uuid_create(uu
, NULL
);
115 static __inline__
void platform_uuid_clear(uuid_t
*uu
)
117 uuid_create_nil(uu
, NULL
);
120 static __inline__
void platform_uuid_copy(uuid_t
*dst
, uuid_t
*src
)
122 memcpy(dst
, src
, sizeof(uuid_t
));
125 typedef unsigned char __u8
;
126 typedef signed char __s8
;
127 typedef unsigned short __u16
;
128 typedef signed short __s16
;
129 typedef unsigned int __u32
;
130 typedef signed int __s32
;
131 typedef unsigned long long int __u64
;
132 typedef signed long long int __s64
;
134 #define __int8_t int8_t
135 #define __int16_t int16_t
136 #define __int32_t int32_t
137 #define __int32_t int32_t
138 #define __int64_t int64_t
139 #define __uint8_t u_int8_t
140 #define __uint16_t u_int16_t
141 #define __uint32_t u_int32_t
142 #define __uint64_t u_int64_t
143 #define off64_t off_t
145 typedef off_t xfs_off_t
;
146 typedef u_int64_t xfs_ino_t
;
147 typedef u_int32_t xfs_dev_t
;
148 typedef int64_t xfs_daddr_t
;
151 #define fstat64 fstat
152 #define lseek64 lseek
153 #define pread64 pread
154 #define pwrite64 pwrite
155 #define ftruncate64 ftruncate
156 #define fdatasync fsync
157 #define memalign(a,sz) valloc(sz)
159 #define O_LARGEFILE 0
167 #define ENOATTR 989 /* Attribute not found */
168 #define EFSCORRUPTED 990 /* Filesystem is corrupted */
169 #define EFSBADCRC 991 /* Bad CRC detected */
170 #define constpp char * const *
174 static __inline__
int
175 platform_discard_blocks(int fd
, uint64_t start
, uint64_t len
)
180 #endif /* __XFS_DARWIN_H__ */