~wb-munzinger/+junk/ocfs2-tools

« back to all changes in this revision

Viewing changes to include/ocfs2-kernel/ocfs2_ioctl.h

  • Committer: Bazaar Package Importer
  • Author(s): Andres Rodriguez
  • Date: 2011-01-14 12:46:49 UTC
  • mfrom: (1.1.10 upstream) (0.1.10 sid)
  • Revision ID: james.westby@ubuntu.com-20110114124649-vbe5qz211f3zxwuf
Tags: 1.6.3-1ubuntu1
* Merge from debian unstable (LP: #703008).  Remaining changes:
  - Fix configure tests for ld --as-needed.
  - Fix build failure with ld --no-add-needed.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* -*- mode: c; c-basic-offset: 8; -*-
 
2
 * vim: noexpandtab sw=8 ts=8 sts=0:
 
3
 *
 
4
 * ocfs2_ioctl.h
 
5
 *
 
6
 * Defines OCFS2 ioctls.
 
7
 *
 
8
 * Copyright (C) 2010 Oracle.  All rights reserved.
 
9
 *
 
10
 * This program is free software; you can redistribute it and/or
 
11
 * modify it under the terms of the GNU General Public
 
12
 * License, version 2, as published by the Free Software Foundation.
 
13
 *
 
14
 * This program is distributed in the hope that it will be useful,
 
15
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
16
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 
17
 * General Public License for more details.
 
18
 */
 
19
 
 
20
#ifndef OCFS2_IOCTL_H
 
21
#define OCFS2_IOCTL_H
 
22
 
 
23
/*
 
24
 * ioctl commands
 
25
 */
 
26
#define OCFS2_IOC_GETFLAGS      _IOR('f', 1, long)
 
27
#define OCFS2_IOC_SETFLAGS      _IOW('f', 2, long)
 
28
#define OCFS2_IOC32_GETFLAGS    _IOR('f', 1, int)
 
29
#define OCFS2_IOC32_SETFLAGS    _IOW('f', 2, int)
 
30
 
 
31
/*
 
32
 * Space reservation / allocation / free ioctls and argument structure
 
33
 * are designed to be compatible with XFS.
 
34
 *
 
35
 * ALLOCSP* and FREESP* are not and will never be supported, but are
 
36
 * included here for completeness.
 
37
 */
 
38
struct ocfs2_space_resv {
 
39
        __s16           l_type;
 
40
        __s16           l_whence;
 
41
        __s64           l_start;
 
42
        __s64           l_len;          /* len == 0 means until end of file */
 
43
        __s32           l_sysid;
 
44
        __u32           l_pid;
 
45
        __s32           l_pad[4];       /* reserve area                     */
 
46
};
 
47
 
 
48
#define OCFS2_IOC_ALLOCSP               _IOW ('X', 10, struct ocfs2_space_resv)
 
49
#define OCFS2_IOC_FREESP                _IOW ('X', 11, struct ocfs2_space_resv)
 
50
#define OCFS2_IOC_RESVSP                _IOW ('X', 40, struct ocfs2_space_resv)
 
51
#define OCFS2_IOC_UNRESVSP      _IOW ('X', 41, struct ocfs2_space_resv)
 
52
#define OCFS2_IOC_ALLOCSP64     _IOW ('X', 36, struct ocfs2_space_resv)
 
53
#define OCFS2_IOC_FREESP64      _IOW ('X', 37, struct ocfs2_space_resv)
 
54
#define OCFS2_IOC_RESVSP64      _IOW ('X', 42, struct ocfs2_space_resv)
 
55
#define OCFS2_IOC_UNRESVSP64    _IOW ('X', 43, struct ocfs2_space_resv)
 
56
 
 
57
/* Used to pass group descriptor data when online resize is done */
 
58
struct ocfs2_new_group_input {
 
59
        __u64 group;            /* Group descriptor's blkno. */
 
60
        __u32 clusters;         /* Total number of clusters in this group */
 
61
        __u32 frees;            /* Total free clusters in this group */
 
62
        __u16 chain;            /* Chain for this group */
 
63
        __u16 reserved1;
 
64
        __u32 reserved2;
 
65
};
 
66
 
 
67
#define OCFS2_IOC_GROUP_EXTEND  _IOW('o', 1, int)
 
68
#define OCFS2_IOC_GROUP_ADD     _IOW('o', 2,struct ocfs2_new_group_input)
 
69
#define OCFS2_IOC_GROUP_ADD64   _IOW('o', 3,struct ocfs2_new_group_input)
 
70
 
 
71
/* Used to pass 2 file names to reflink. */
 
72
struct reflink_arguments {
 
73
        __u64 old_path;
 
74
        __u64 new_path;
 
75
        __u64 preserve;
 
76
};
 
77
#define OCFS2_IOC_REFLINK       _IOW('o', 4, struct reflink_arguments)
 
78
 
 
79
#endif /* OCFS2_IOCTL_H */