Binary release v6.20240107.0

This commit is contained in:
mintsuki
2024-01-07 01:27:36 +00:00
parent b87531f3fa
commit 1fbee19c25
13 changed files with 1015 additions and 994 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1,4 +1,4 @@
Copyright (C) 2019-2023 mintsuki and contributors.
Copyright (C) 2019-2024 mintsuki and contributors.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -496,7 +496,11 @@ skip_save:;
return true;
}
static void uninstall(void) {
static bool uninstall(bool quiet_arg) {
bool print_cache_flush_fail = false;
bool print_write_fail = false;
bool ret = true;
uninstalling = true;
cache_state = CACHE_CLEAN;
@@ -507,14 +511,15 @@ static void uninstall(void) {
bool retry = false;
while (!_device_write(ud->data, ud->loc, ud->count)) {
if (retry) {
fprintf(stderr, "%s: error: Uninstall data index %zu failed to write. Uninstall may be incomplete!\n", program_name, i);
fprintf(stderr, "%s: warning: Retry failed.\n", program_name);
print_write_fail = true;
break;
}
if (!quiet) {
fprintf(stderr, "%s: warning: Uninstall data index %zu failed to write, retrying...\n", program_name, i);
}
if (!device_flush_cache()) {
fprintf(stderr, "%s: error: Device cache flush failure. Uninstall may be incomplete!\n", program_name);
print_cache_flush_fail = true;
}
cache_state = CACHE_CLEAN;
cached_block = (uint64_t)-1;
@@ -523,12 +528,24 @@ static void uninstall(void) {
}
if (!device_flush_cache()) {
fprintf(stderr, "%s: error: Device cache flush failure. Uninstall may be incomplete!\n", program_name);
print_cache_flush_fail = true;
}
if (!quiet) {
fprintf(stderr, "Uninstall data restored successfully. Limine uninstalled!\n");
if (print_write_fail) {
fprintf(stderr, "%s: error: Some data failed to be uninstalled correctly.\n", program_name);
ret = false;
}
if (print_cache_flush_fail) {
fprintf(stderr, "%s: error: Device cache flush failure. Uninstall may be incomplete.\n", program_name);
ret = false;
}
if (ret == true && !quiet && !quiet_arg) {
fprintf(stderr, "Uninstall data restored successfully.\n");
}
return ret;
}
#define device_read(BUFFER, LOC, COUNT) \
@@ -639,9 +656,11 @@ static int bios_install(int argc, char *argv[]) {
goto uninstall_mode_cleanup;
}
uninstall();
ok = EXIT_SUCCESS;
if (uninstall(false) == false) {
ok = EXIT_FAILURE;
} else {
ok = EXIT_SUCCESS;
}
goto uninstall_mode_cleanup;
}
@@ -1005,7 +1024,8 @@ cleanup:
reverse_uninstall_data();
if (ok != EXIT_SUCCESS) {
// If we failed, attempt to reverse install process
uninstall();
fprintf(stderr, "%s: Install failed, undoing work...\n", program_name);
uninstall(true);
} else if (uninstall_file != NULL) {
store_uninstall_data(uninstall_file);
}
@@ -1143,8 +1163,8 @@ cleanup:
return ret;
}
#define LIMINE_VERSION "6.20231227.0"
#define LIMINE_COPYRIGHT "Copyright (C) 2019-2023 mintsuki and contributors."
#define LIMINE_VERSION "6.20240107.0"
#define LIMINE_COPYRIGHT "Copyright (C) 2019-2024 mintsuki and contributors."
static void version_usage(void) {
printf("usage: %s version [options...]\n", program_name);

Binary file not shown.

View File

@@ -438,6 +438,7 @@ struct limine_kernel_file_request {
#define LIMINE_MODULE_REQUEST { LIMINE_COMMON_MAGIC, 0x3e7e279702be32af, 0xca1c4f3bd1280cee }
#define LIMINE_INTERNAL_MODULE_REQUIRED (1 << 0)
#define LIMINE_INTERNAL_MODULE_COMPRESSED (1 << 1)
struct limine_internal_module {
LIMINE_PTR(const char *) path;