diff options
author | Anton Altaparmakov <aia21@cantab.net> | 2005-10-19 07:21:19 -0400 |
---|---|---|
committer | Anton Altaparmakov <aia21@cantab.net> | 2005-10-19 07:21:19 -0400 |
commit | 7d0ffdb279105d9a87b447758ce4a634496abfd1 (patch) | |
tree | 66bd4d6307a81ae65a01acace5fd8ae6f5a30032 /fs/ntfs/layout.h | |
parent | e087a412b45543a87497f0a213dbd5d55099f267 (diff) |
NTFS: $EA attributes can be both resident non-resident.
Minor tidying.
Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
Diffstat (limited to 'fs/ntfs/layout.h')
-rw-r--r-- | fs/ntfs/layout.h | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/fs/ntfs/layout.h b/fs/ntfs/layout.h index 5c248d404f05..71b25dab8199 100644 --- a/fs/ntfs/layout.h +++ b/fs/ntfs/layout.h | |||
@@ -1021,10 +1021,17 @@ enum { | |||
1021 | FILE_NAME_POSIX = 0x00, | 1021 | FILE_NAME_POSIX = 0x00, |
1022 | /* This is the largest namespace. It is case sensitive and allows all | 1022 | /* This is the largest namespace. It is case sensitive and allows all |
1023 | Unicode characters except for: '\0' and '/'. Beware that in | 1023 | Unicode characters except for: '\0' and '/'. Beware that in |
1024 | WinNT/2k files which eg have the same name except for their case | 1024 | WinNT/2k/2003 by default files which eg have the same name except |
1025 | will not be distinguished by the standard utilities and thus a "del | 1025 | for their case will not be distinguished by the standard utilities |
1026 | filename" will delete both "filename" and "fileName" without | 1026 | and thus a "del filename" will delete both "filename" and "fileName" |
1027 | warning. */ | 1027 | without warning. However if for example Services For Unix (SFU) are |
1028 | installed and the case sensitive option was enabled at installation | ||
1029 | time, then you can create/access/delete such files. | ||
1030 | Note that even SFU places restrictions on the filenames beyond the | ||
1031 | '\0' and '/' and in particular the following set of characters is | ||
1032 | not allowed: '"', '/', '<', '>', '\'. All other characters, | ||
1033 | including the ones no allowed in WIN32 namespace are allowed. | ||
1034 | Tested with SFU 3.5 (this is now free) running on Windows XP. */ | ||
1028 | FILE_NAME_WIN32 = 0x01, | 1035 | FILE_NAME_WIN32 = 0x01, |
1029 | /* The standard WinNT/2k NTFS long filenames. Case insensitive. All | 1036 | /* The standard WinNT/2k NTFS long filenames. Case insensitive. All |
1030 | Unicode chars except: '\0', '"', '*', '/', ':', '<', '>', '?', '\', | 1037 | Unicode chars except: '\0', '"', '*', '/', ':', '<', '>', '?', '\', |
@@ -2375,20 +2382,20 @@ typedef u8 EA_FLAGS; | |||
2375 | /* | 2382 | /* |
2376 | * Attribute: Extended attribute (EA) (0xe0). | 2383 | * Attribute: Extended attribute (EA) (0xe0). |
2377 | * | 2384 | * |
2378 | * NOTE: Always non-resident. (Is this true?) | 2385 | * NOTE: Can be resident or non-resident. |
2379 | * | 2386 | * |
2380 | * Like the attribute list and the index buffer list, the EA attribute value is | 2387 | * Like the attribute list and the index buffer list, the EA attribute value is |
2381 | * a sequence of EA_ATTR variable length records. | 2388 | * a sequence of EA_ATTR variable length records. |
2382 | * | ||
2383 | * FIXME: It appears weird that the EA name is not unicode. Is it true? | ||
2384 | */ | 2389 | */ |
2385 | typedef struct { | 2390 | typedef struct { |
2386 | le32 next_entry_offset; /* Offset to the next EA_ATTR. */ | 2391 | le32 next_entry_offset; /* Offset to the next EA_ATTR. */ |
2387 | EA_FLAGS flags; /* Flags describing the EA. */ | 2392 | EA_FLAGS flags; /* Flags describing the EA. */ |
2388 | u8 ea_name_length; /* Length of the name of the EA in bytes. */ | 2393 | u8 ea_name_length; /* Length of the name of the EA in bytes |
2394 | excluding the '\0' byte terminator. */ | ||
2389 | le16 ea_value_length; /* Byte size of the EA's value. */ | 2395 | le16 ea_value_length; /* Byte size of the EA's value. */ |
2390 | u8 ea_name[0]; /* Name of the EA. */ | 2396 | u8 ea_name[0]; /* Name of the EA. Note this is ASCII, not |
2391 | u8 ea_value[0]; /* The value of the EA. Immediately follows | 2397 | Unicode and it is zero terminated. */ |
2398 | u8 ea_value[0]; /* The value of the EA. Immediately follows | ||
2392 | the name. */ | 2399 | the name. */ |
2393 | } __attribute__ ((__packed__)) EA_ATTR; | 2400 | } __attribute__ ((__packed__)) EA_ATTR; |
2394 | 2401 | ||