1 /* kernel_interface - file system interface to Haiku's vnode layer
3 * Copyright (c) 2006-2007 Troeglazov Gerasim (3dEyes**)
5 * This program/include file is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU General Public License as published
7 * by the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
10 * This program/include file is distributed in the hope that it will be
11 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
12 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program (in the main directory of the Linux-NTFS
17 * distribution in the file COPYING); if not, write to the Free Software
18 * Foundation,Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
33 #include <fs_interface.h>
34 #include <kernel/lock.h>
41 #include <fs_volume.h>
42 #include <NodeMonitor.h>
43 #include <util/kernel_cpp.h>
47 #include "attributes.h"
51 ntfs_std_ops(int32 op
, ...)
63 fs_volume_ops gNTFSVolumeOps
= {
70 /* index directory & index operations */
71 NULL
, //&fs_open_index_dir,
72 NULL
, //&fs_close_index_dir,
73 NULL
, //&fs_free_index_dir_cookie,
74 NULL
, //&fs_read_index_dir,
75 NULL
, //&fs_rewind_index_dir,
77 NULL
, //&fs_create_index,
78 NULL
, //&fs_remove_index,
79 NULL
, //&fs_stat_index,
81 /* query operations */
82 NULL
, //&fs_open_query,
83 NULL
, //&fs_close_query,
84 NULL
, //&fs_free_query_cookie,
85 NULL
, //&fs_read_query,
86 NULL
, //&fs_rewind_query,
89 fs_vnode_ops gNTFSVnodeOps
= {
90 /* vnode operations */
107 NULL
, //&fs_set_flags,
122 NULL
, // fs_preallocate
124 /* file operations */
132 /* directory operations */
141 /* attribute directory operations */
143 &fs_close_attrib_dir
,
144 &fs_free_attrib_dir_cookie
,
146 &fs_rewind_attrib_dir
,
148 /* attribute operations */
152 &fs_free_attrib_cookie
,
156 &fs_read_attrib_stat
,
157 NULL
, //&fs_write_attr_stat,
158 NULL
, //&fs_rename_attr,
164 static file_system_module_info sNTFSFileSystem
= {
166 "file_systems/ntfs" B_CURRENT_FS_API_VERSION
,
171 "ntfs", // short_name
172 "NT File System", // pretty_name
173 B_DISK_SYSTEM_SUPPORTS_INITIALIZING
174 | B_DISK_SYSTEM_SUPPORTS_CONTENT_NAME
175 | B_DISK_SYSTEM_SUPPORTS_WRITING
, // DDM flags
178 fs_identify_partition
,
180 fs_free_identify_partition_cookie
,
181 NULL
, // free_partition_content_cookie()
184 /* capability querying operations */
185 &fs_get_supported_operations
,
187 NULL
, // validate_resize
188 NULL
, // validate_move
189 NULL
, // validate_set_content_name
190 NULL
, // validate_set_content_parameters
191 NULL
, // validate_initialize,
193 /* shadow partition modification */
194 NULL
, // shadow_changed
201 NULL
, // set_content_name
202 NULL
, // set_content_parameters
208 module_info
*modules
[] = {
209 (module_info
*)&sNTFSFileSystem
,