[BACK]Return to irix.h CVS log [TXT][DIR] Up to [Development] / xfs-cmds / xfsprogs / include

File: [Development] / xfs-cmds / xfsprogs / include / irix.h (download)

Revision 1.2, Wed Jun 23 05:10:16 2004 UTC (13 years, 3 months ago) by sandeen
Branch: MAIN
Changes since 1.1: +0 -1 lines

Fix check & repair of filesystems w/ realtime vols
use of isset macro was incorrectly checking rt bitmap
remove isset definition, use xfs_isset now

/*
 * Copyright (c) 2000-2004 Silicon Graphics, Inc.  All Rights Reserved.
 *
 * This program is free software; you can redistribute it and/or modify it
 * under the terms of version 2 of the GNU General Public License as
 * published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it would be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 *
 * Further, this software is distributed without any warranty that it is
 * free of the rightful claim of any third person regarding infringement
 * or the like.  Any license provided herein, whether implied or
 * otherwise, applies only to this software file.  Patent licenses, if
 * any, provided herein do not apply to combinations of this program with
 * other software, or any other product whatsoever.
 *
 * You should have received a copy of the GNU General Public License along
 * with this program; if not, write the Free Software Foundation, Inc., 59
 * Temple Place - Suite 330, Boston MA 02111-1307, USA.
 *
 * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
 * Mountain View, CA  94043, or:
 *
 * http://www.sgi.com
 *
 * For further information regarding this notice, see:
 *
 * http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/
 *
 */
#ifndef __XFS_IRIX_H__
#define __XFS_IRIX_H__

#include <libgen.h>
#include <values.h>
#include <strings.h>
#include <inttypes.h>
#include <sys/stat.h>
#include <sys/uuid.h>
#include <sys/param.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <sys/statfs.h>
#include <sys/statvfs.h>
#include <sys/syssgi.h>
#include <sys/sysmacros.h>
#include <sys/fs/xfs_fsops.h>
//#include <sys/fs/xfs_itable.h>

#define __s8		char
#define __s16		short
#define __s32		__int32_t
#define __s64		__int64_t
#define __u8		unsigned char
#define __u16		unsigned short
#define __u32		__int32_t
#define __u64		__int64_t
#define __int8_t	char
#define __int16_t	short
#define __uint8_t	unsigned char
#define __uint16_t	unsigned short
#define loff_t		off64_t
typedef off64_t		xfs_off_t;
typedef __int64_t	xfs_ino_t;
typedef __int32_t	xfs_dev_t;
typedef __int64_t	xfs_daddr_t;
typedef char*		xfs_caddr_t;
typedef flock64_t	xfs_flock64_t;

#include <sys/endian.h>
#define __BYTE_ORDER	BYTE_ORDER
#define __BIG_ENDIAN	BIG_ENDIAN
#define __LITTLE_ENDIAN	LITTLE_ENDIAN
#include <xfs/swab.h>

#define INT_MAX		INT32_MAX
#define UINT_MAX	UINT32_MAX
#define PATH_MAX	MAXPATHLEN
#define constpp		char * const *

static __inline__ int xfsctl(const char *path, int fd, int cmd, void *p)
{
	if (cmd >= 0 && cmd < XFS_FSOPS_COUNT)
		return syssgi(SGI_XFS_FSOPERATIONS, fd, cmd, (void *)0, p);
	return fcntl(fd, cmd, p);
}

static __inline__ int platform_test_xfs_fd(int fd)
{
	struct statvfs sbuf;
	if (fstatvfs(fd, &sbuf) < 0)
		return 0;
	return (strcmp(sbuf.f_basetype, "xfs") == 0);
}

static __inline__ int platform_test_xfs_path(const char *path)
{
	struct statvfs sbuf;
	if (statvfs(path, &sbuf) < 0)
		return 0;
	return (strcmp(sbuf.f_basetype, "xfs") == 0);
}

static __inline__ int platform_fstatfs(int fd, struct statfs *buf)
{
	return fstatfs(fd, buf, sizeof(struct statfs), 0);
}

static __inline__ void platform_getoptreset(void)
{
	getoptreset();
}

static __inline__ char * strsep(char **s, const char *ct)
{
	char *sbegin = *s, *end;

	if (!sbegin)
		return NULL;
	end = strpbrk(sbegin, ct);
	if (end)
		*end++ = '\0';
	*s = end;
	return sbegin;
}

#define HAVE_DIOATTR	1
#define HAVE_FSXATTR	1
#define HAVE_GETBMAP	1
#define HAVE_GETBMAPX	1
#define HAVE_FSDMIDATA	1
#define HAVE_FID	1
#define HAVE_IOCMACROS	1
#define HAVE_BBMACROS	1

#define __XFS_FS_H__

#define XFS_IOC_DIOINFO			F_DIOINFO
#define XFS_IOC_FSGETXATTR		F_FSGETXATTR
#define XFS_IOC_FSSETXATTR		F_FSSETXATTR
#define XFS_IOC_ALLOCSP64		F_ALLOCSP64
#define XFS_IOC_FREESP64		F_FREESP64
#define XFS_IOC_GETBMAP			F_GETBMAP
#define XFS_IOC_FSSETDM			F_FSSETDM
#define XFS_IOC_RESVSP64		F_RESVSP64
#define XFS_IOC_UNRESVSP64		F_UNRESVSP64
#define XFS_IOC_GETBMAPA		F_GETBMAPA
#define XFS_IOC_FSGETXATTRA		F_FSGETXATTRA
#define XFS_IOC_GETBMAPX		F_GETBMAPX

#define XFS_IOC_FSGEOMETRY_V1		XFS_FS_GEOMETRY
#define XFS_IOC_FSBULKSTAT		/* TODO */
#define XFS_IOC_FSBULKSTAT_SINGLE	/* TODO */
#define XFS_IOC_FSINUMBERS		/* TODO */
#define XFS_IOC_PATH_TO_FSHANDLE	/* TODO */
#define XFS_IOC_PATH_TO_HANDLE		/* TODO */
#define XFS_IOC_FD_TO_HANDLE		/* TODO */
#define XFS_IOC_OPEN_BY_HANDLE		/* TODO */
#define XFS_IOC_READLINK_BY_HANDLE	/* TODO */
#define XFS_IOC_SWAPEXT			/* TODO */
#define XFS_IOC_FSGROWFSDATA		XFS_GROWFS_DATA
#define XFS_IOC_FSGROWFSLOG		XFS_GROWFS_LOG
#define XFS_IOC_FSGROWFSRT		XFS_GROWFS_RT
#define XFS_IOC_FSCOUNTS		XFS_FS_COUNTS
#define XFS_IOC_SET_RESBLKS		XFS_SET_RESBLKS
#define XFS_IOC_GET_RESBLKS		XFS_GET_RESBLKS
#define XFS_IOC_ERROR_INJECTION		/* TODO */
#define XFS_IOC_ERROR_CLEARALL		/* TODO */
#define XFS_IOC_FREEZE			XFS_FS_FREEZE
#define XFS_IOC_THAW			XFS_FS_THAW
#define XFS_IOC_FSSETDM_BY_HANDLE	/* TODO */
#define XFS_IOC_ATTRLIST_BY_HANDLE	/* TODO */
#define XFS_IOC_ATTRMULTI_BY_HANDLE	/* TODO */
#define XFS_IOC_FSGEOMETRY		XFS_FS_GEOMETRY
#define XFS_IOC_GOINGDOWN		XFS_FS_GOINGDOWN

#define XFS_XFLAG_REALTIME      0x00000001      /* data in realtime volume */
#define XFS_XFLAG_PREALLOC      0x00000002      /* preallocated file extents */
#define XFS_XFLAG_IMMUTABLE     0x00000008      /* file cannot be modified */
#define XFS_XFLAG_APPEND        0x00000010      /* all writes append */
#define XFS_XFLAG_SYNC          0x00000020      /* all writes synchronous */
#define XFS_XFLAG_NOATIME       0x00000040      /* do not update access time */
#define XFS_XFLAG_NODUMP        0x00000080      /* do not include in backups */
#define XFS_XFLAG_RTINHERIT     0x00000100      /* new files have rt bit set */
#define XFS_XFLAG_HASATTR       0x80000000      /* no DIFLAG for this   */


#endif	/* __XFS_IRIX_H__ */