| 218 | |
| 219 | |
| 220 | EFI_STATUS egMkDir(IN EFI_FILE_HANDLE BaseDir OPTIONAL, IN CHAR16 *DirName) |
| 221 | { |
| 222 | EFI_STATUS Status; |
| 223 | EFI_FILE_HANDLE FileHandle; |
| 224 | |
| 225 | //DBG("Looking up dir assets (%ls):", DirName); |
| 226 | |
| 227 | if (BaseDir == NULL) { |
| 228 | Status = egFindESP(&BaseDir); |
| 229 | if (EFI_ERROR(Status)) { |
| 230 | //DBG(" %s\n", efiStrError(Status)); |
| 231 | return Status; |
| 232 | } |
| 233 | } |
| 234 | |
| 235 | Status = BaseDir->Open(BaseDir, &FileHandle, DirName, |
| 236 | EFI_FILE_MODE_READ | EFI_FILE_MODE_WRITE, EFI_FILE_DIRECTORY); |
| 237 | |
| 238 | if (EFI_ERROR(Status)) { |
| 239 | // Write new dir |
| 240 | //DBG("%s, attempt to create one:", efiStrError(Status)); |
| 241 | Status = BaseDir->Open(BaseDir, &FileHandle, DirName, |
| 242 | EFI_FILE_MODE_READ | EFI_FILE_MODE_WRITE | EFI_FILE_MODE_CREATE, EFI_FILE_DIRECTORY); |
| 243 | } |
| 244 | |
| 245 | //DBG(" %s\n", efiStrError(Status)); |
| 246 | return Status; |
| 247 | } |
| 248 | |
| 249 | |
| 250 | |