1 /*
2  * struct.h - Structure definitions
3  *
4  * Copyright (C) 1997 R�gis Duchesne
5  * Copyright (C) 2000-2001 Anton Altaparmakov (AIA)
6  */
7 #include <linux/ntfs_fs.h>
8 
9 /* Necessary forward definition. */
10 struct ntfs_inode;
11 
12 /* Which files should be returned from a director listing. */
13 #define ngt_dos   1	/* only short names, no system files */
14 #define ngt_nt    2	/* only long names, all-uppercase becomes
15 			 * all-lowercase, no system files */
16 #define ngt_posix 3	/* all names except system files */
17 #define ngt_full  4	/* all entries */
18 
19 typedef struct ntfs_sb_info ntfs_volume;
20 
21 typedef struct {
22 	ntfs_cluster_t lcn;
23 	ntfs_cluster_t len;
24 } ntfs_runlist;
25 
26 typedef struct ntfs_attribute {
27 	int type;
28 	ntfs_u16 *name;
29 	int namelen;
30 	int attrno;
31 	__s64 size, allocated, initialized, compsize;
32 	ATTR_FLAGS flags;
33 	__u8 resident, indexed;
34 	int cengine;
35 	union {
36 		void *data;             /* if resident */
37 		struct {
38 			ntfs_runlist *runlist;
39 			unsigned long len;
40 		} r;
41 	} d;
42 } ntfs_attribute;
43 
44 typedef struct ntfs_inode_info ntfs_inode;
45 
46 /* Structure to define IO to user buffer. do_read means that the destination
47  * has to be written using fn_put, do_write means that the destination has to
48  * read using fn_get. So, do_read is from a user's point of view, while put and
49  * get are from the driver's point of view. The first argument is always the
50  * destination of the IO. */
51 typedef struct ntfs_io{
52 	int do_read;
53 	void (*fn_put)(struct ntfs_io *dest, void *buf, ntfs_size_t);
54 	void (*fn_get)(void *buf, struct ntfs_io *src, ntfs_size_t len);
55 	void *param;
56 	unsigned long size;
57 } ntfs_io;
58 
59 #if 0
60 typedef struct {
61 	ntfs_volume *vol;
62 	ntfs_inode *ino;
63 	int type;
64 	char *name;
65 	int mftno;
66 	int start_vcn;
67 } ntfs_attrlist_item;
68 #endif
69 
70