default:\r
return EFI_INVALID_PARAMETER;\r
}\r
+ \r
//\r
- // Check for valid attributes\r
+ // Check for valid Attributes for file creation case. \r
//\r
- if (Attributes & (~EFI_FILE_VALID_ATTR)) {\r
- return EFI_INVALID_PARAMETER;\r
- }\r
- //\r
- // Can't open for create and apply the read only attribute\r
- //\r
- if ((OpenMode & EFI_FILE_MODE_CREATE) && (Attributes & EFI_FILE_READ_ONLY)) {\r
- return EFI_INVALID_PARAMETER;\r
+ if (((OpenMode & EFI_FILE_MODE_CREATE) != 0) && (Attributes & (EFI_FILE_READ_ONLY | (~EFI_FILE_VALID_ATTR))) != 0) {\r
+ return EFI_INVALID_PARAMETER;\r
}\r
-\r
+ \r
IFile = IFILE_FROM_FHAND (FHand);\r
OFile = IFile->OFile;\r
\r