Compare commits

...

34 Commits

Author SHA1 Message Date
mintsuki
32e718ab88 Binary release v4.20230909.0 2023-09-09 21:12:55 +00:00
mintsuki
a199a01df6 Binary release v4.20230830.0 2023-08-30 03:30:52 +00:00
mintsuki
5890becdea Binary release v4.20230819.0 2023-08-19 13:41:37 +00:00
mintsuki
4b868cf9c8 Binary release v4.20230811.0 2023-08-11 15:37:07 +00:00
mintsuki
9372a637fe Binary release v4.20230729.0 2023-07-29 17:06:31 +00:00
mintsuki
6dfc837655 Binary release v4.20230728.0 2023-07-28 09:32:39 +00:00
mintsuki
d5709e3255 Binary release v4.20230726.0 2023-07-26 22:35:50 +00:00
mintsuki
2d3d7b2633 Binary release v4.20230709.0 2023-07-09 02:18:11 +00:00
mintsuki
9967375d35 Binary release v4.20230620.0 2023-06-20 15:13:17 +00:00
mintsuki
cc737752d3 Binary release v4.20230615.0 2023-06-15 11:22:20 +00:00
mintsuki
5aaba3bcd9 Binary release v4.20230606.0 2023-06-06 00:04:06 +00:00
mintsuki
9272485dd0 Binary release v4.20230530.0 2023-05-30 20:45:49 +00:00
mintsuki
0659bb3dca Binary release v4.20230529.0 2023-05-29 11:17:05 +00:00
mintsuki
da6efcf9f3 Binary release v4.20230514.0 2023-05-14 07:30:23 +00:00
mintsuki
475b34ce67 Binary release v4.20230503.0 2023-05-03 20:52:46 +00:00
mintsuki
ef3450b8bd Binary release v4.20230428.0 2023-04-28 03:22:43 +00:00
mintsuki
1a17d8964c Binary release v4.20230422.0 2023-04-22 10:21:56 +00:00
mintsuki
9b889d7410 Binary release v4.20230414.0 2023-04-14 11:43:16 +00:00
mintsuki
698e928353 Binary release v4.20230408.0 2023-04-08 01:55:00 +00:00
mintsuki
6d63b151bb Binary release v4.20230330.0 2023-03-30 03:42:11 +00:00
mintsuki
21f065109a Binary release v4.20230325.0 2023-03-25 00:01:28 +00:00
mintsuki
8a58818e95 Binary release v4.20230324.0 2023-03-24 17:58:32 +00:00
mintsuki
1c8e3296ec Binary release v4.20230317.0 2023-03-17 20:20:42 +00:00
mintsuki
a58fe2ec6e Binary release v4.20230315.0 2023-03-15 08:57:19 +00:00
mintsuki
e505dfcabf Binary release v4.20230314.0 2023-03-14 20:08:43 +00:00
mintsuki
3da926189f Binary release v4.20230313.0 2023-03-13 20:42:47 +00:00
mintsuki
f1eaadf349 Binary release v4.20230308.0 2023-03-08 17:17:10 +00:00
mintsuki
d822b197d6 Binary release v4.20230307.0 2023-03-07 13:03:35 +00:00
mintsuki
38e4586448 Binary release v4.20230305.2 2023-03-05 18:03:11 +00:00
mintsuki
4a2d6f786e Binary release v4.20230305.1 2023-03-05 08:51:01 +00:00
mintsuki
71b0ba929a Binary release v4.20230305.0 2023-03-05 08:27:42 +00:00
mintsuki
e8489a4054 Binary release v4.20230227.0 2023-02-27 00:47:42 +00:00
mintsuki
dca512c90b Binary release v4.20230221.0 2023-02-21 02:34:24 +00:00
mintsuki
10ca0a235b Binary release v4.20230219.0 2023-02-19 09:45:51 +00:00
16 changed files with 1401 additions and 1350 deletions

BIN
BOOTAA64.EFI Executable file → Normal file

Binary file not shown.

BIN
BOOTIA32.EFI Executable file → Normal file

Binary file not shown.

BIN
BOOTX64.EFI Executable file → Normal file

Binary file not shown.

View File

View File

@@ -4,7 +4,7 @@ INSTALL ?= ./install-sh
PREFIX ?= /usr/local
CFLAGS ?= -g -O2 -pipe -Wall -Wextra
CFLAGS ?= -g -O2 -pipe
.PHONY: all
all: limine-deploy limine-version limine-enroll-config
@@ -19,6 +19,7 @@ install: all
$(INSTALL) -m 644 limine-pxe.bin '$(DESTDIR)$(PREFIX)/share/limine/'
$(INSTALL) -m 644 BOOTX64.EFI '$(DESTDIR)$(PREFIX)/share/limine/'
$(INSTALL) -m 644 BOOTIA32.EFI '$(DESTDIR)$(PREFIX)/share/limine/'
$(INSTALL) -m 644 BOOTAA64.EFI '$(DESTDIR)$(PREFIX)/share/limine/'
$(INSTALL) -d '$(DESTDIR)$(PREFIX)/include'
$(INSTALL) -m 644 limine.h '$(DESTDIR)$(PREFIX)/include/'
$(INSTALL) -d '$(DESTDIR)$(PREFIX)/bin'
@@ -39,10 +40,10 @@ clean:
rm -f limine-enroll-config limine-enroll-config.exe
limine-deploy: limine-deploy.c limine-hdd.h
$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -std=c99 -D__USE_MINGW_ANSI_STDIO limine-deploy.c $(LIBS) -o $@
$(CC) $(CFLAGS) -Wall -Wextra $(WERROR_FLAG) $(CPPFLAGS) $(LDFLAGS) -std=c99 limine-deploy.c $(LIBS) -o $@
limine-version: limine-version.c
$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -std=c99 -D__USE_MINGW_ANSI_STDIO limine-version.c $(LIBS) -o $@
$(CC) $(CFLAGS) -Wall -Wextra $(WERROR_FLAG) $(CPPFLAGS) $(LDFLAGS) -std=c99 limine-version.c $(LIBS) -o $@
limine-enroll-config: limine-enroll-config.c
$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -std=c99 -D__USE_MINGW_ANSI_STDIO limine-enroll-config.c $(LIBS) -o $@
$(CC) $(CFLAGS) -Wall -Wextra $(WERROR_FLAG) $(CPPFLAGS) $(LDFLAGS) -std=c99 limine-enroll-config.c $(LIBS) -o $@

Binary file not shown.

Binary file not shown.

View File

@@ -137,8 +137,6 @@ static uint32_t crc32(void *_stream, size_t len) {
return ret;
}
static bool bigendian = false;
static uint16_t endswap16(uint16_t value) {
uint16_t ret = 0;
ret |= (value >> 8) & 0x00ff;
@@ -168,6 +166,20 @@ static uint64_t endswap64(uint64_t value) {
return ret;
}
#ifdef __BYTE_ORDER__
#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
#define bigendian true
#else
#define bigendian false
#endif
#else /* !__BYTE_ORDER__ */
static bool bigendian = false;
#endif /* !__BYTE_ORDER__ */
#define ENDSWAP(VALUE) (bigendian ? ( \
sizeof(VALUE) == 1 ? (VALUE) : \
sizeof(VALUE) == 2 ? endswap16(VALUE) : \
@@ -228,7 +240,9 @@ static bool device_flush_cache(void) {
size_t ret = fwrite(cache, block_size, 1, device);
if (ret != 1) {
perror("ERROR");
if (ferror(device)) {
perror("ERROR");
}
return false;
}
@@ -252,7 +266,9 @@ static bool device_cache_block(uint64_t block) {
size_t ret = fread(cache, block_size, 1, device);
if (ret != 1) {
perror("ERROR");
if (ferror(device)) {
perror("ERROR");
}
return false;
}
@@ -517,9 +533,11 @@ int main(int argc, char *argv[]) {
uint8_t orig_mbr[70], timestamp[6];
const char *part_ndx = NULL;
#ifndef __BYTE_ORDER__
uint32_t endcheck = 0x12345678;
uint8_t endbyte = *((uint8_t *)&endcheck);
bigendian = endbyte == 0x12;
#endif
if (argc < 2) {
usage(argv[0]);

Binary file not shown.

View File

@@ -14,7 +14,7 @@
static void usage(const char *name) {
printf("Usage: %s <Limine executable> <BLAKE2B of config file>\n", name);
printf("\n");
printf(" --reset Remove enrolled BLAKE2B, will not check config intergrity\n");
printf(" --reset Remove enrolled BLAKE2B, will not check config integrity\n");
printf("\n");
printf(" --quiet Do not print verbose diagnostic messages\n");
printf("\n");

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -1,6 +1,6 @@
#include <stdio.h>
#define LIMINE_VERSION "4.20230216.1"
#define LIMINE_VERSION "4.20230909.0"
int main(void) {
puts(LIMINE_VERSION);

View File

@@ -31,6 +31,19 @@ extern "C" {
# define LIMINE_PTR(TYPE) TYPE
#endif
#ifdef __GNUC__
# define LIMINE_DEPRECATED __attribute__((__deprecated__))
# define LIMINE_DEPRECATED_IGNORE_START \
_Pragma("GCC diagnostic push") \
_Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"")
# define LIMINE_DEPRECATED_IGNORE_END \
_Pragma("GCC diagnostic pop")
#else
# define LIMINE_DEPRECATED
# define LIMINE_DEPRECATED_IGNORE_START
# define LIMINE_DEPRECATED_IGNORE_END
#endif
#define LIMINE_COMMON_MAGIC 0xc7b1dd30df4c8b88, 0x0a82e883a194f07b
struct limine_uuid {
@@ -191,45 +204,85 @@ struct limine_framebuffer_request {
#define LIMINE_TERMINAL_OOB_OUTPUT_ONOCR (1 << 6)
#define LIMINE_TERMINAL_OOB_OUTPUT_OPOST (1 << 7)
struct limine_terminal;
LIMINE_DEPRECATED_IGNORE_START
struct LIMINE_DEPRECATED limine_terminal;
typedef void (*limine_terminal_write)(struct limine_terminal *, const char *, uint64_t);
typedef void (*limine_terminal_callback)(struct limine_terminal *, uint64_t, uint64_t, uint64_t, uint64_t);
struct limine_terminal {
struct LIMINE_DEPRECATED limine_terminal {
uint64_t columns;
uint64_t rows;
LIMINE_PTR(struct limine_framebuffer *) framebuffer;
};
struct limine_terminal_response {
struct LIMINE_DEPRECATED limine_terminal_response {
uint64_t revision;
uint64_t terminal_count;
LIMINE_PTR(struct limine_terminal **) terminals;
LIMINE_PTR(limine_terminal_write) write;
};
struct limine_terminal_request {
struct LIMINE_DEPRECATED limine_terminal_request {
uint64_t id[4];
uint64_t revision;
LIMINE_PTR(struct limine_terminal_response *) response;
LIMINE_PTR(limine_terminal_callback) callback;
};
LIMINE_DEPRECATED_IGNORE_END
/* Paging mode */
#define LIMINE_PAGING_MODE_REQUEST { LIMINE_COMMON_MAGIC, 0x95c1a0edab0944cb, 0xa4e5cb3842f7488a }
#if defined (__x86_64__) || defined (__i386__)
#define LIMINE_PAGING_MODE_X86_64_4LVL 0
#define LIMINE_PAGING_MODE_X86_64_5LVL 1
#define LIMINE_PAGING_MODE_MAX LIMINE_PAGING_MODE_X86_64_5LVL
#define LIMINE_PAGING_MODE_DEFAULT LIMINE_PAGING_MODE_X86_64_4LVL
#elif defined (__aarch64__)
#define LIMINE_PAGING_MODE_AARCH64_4LVL 0
#define LIMINE_PAGING_MODE_AARCH64_5LVL 1
#define LIMINE_PAGING_MODE_MAX LIMINE_PAGING_MODE_AARCH64_5LVL
#define LIMINE_PAGING_MODE_DEFAULT LIMINE_PAGING_MODE_AARCH64_4LVL
#else
#error Unknown architecture
#endif
struct limine_paging_mode_response {
uint64_t revision;
uint64_t mode;
uint64_t flags;
};
struct limine_paging_mode_request {
uint64_t id[4];
uint64_t revision;
LIMINE_PTR(struct limine_paging_mode_response *) response;
uint64_t mode;
uint64_t flags;
};
/* 5-level paging */
#define LIMINE_5_LEVEL_PAGING_REQUEST { LIMINE_COMMON_MAGIC, 0x94469551da9b3192, 0xebe5e86db7382888 }
struct limine_5_level_paging_response {
LIMINE_DEPRECATED_IGNORE_START
struct LIMINE_DEPRECATED limine_5_level_paging_response {
uint64_t revision;
};
struct limine_5_level_paging_request {
struct LIMINE_DEPRECATED limine_5_level_paging_request {
uint64_t id[4];
uint64_t revision;
LIMINE_PTR(struct limine_5_level_paging_response *) response;
};
LIMINE_DEPRECATED_IGNORE_END
/* SMP */
#define LIMINE_SMP_REQUEST { LIMINE_COMMON_MAGIC, 0x95a67b819a1b857e, 0xa0b61b723b6a73e0 }
@@ -355,6 +408,14 @@ struct limine_kernel_file_request {
#define LIMINE_MODULE_REQUEST { LIMINE_COMMON_MAGIC, 0x3e7e279702be32af, 0xca1c4f3bd1280cee }
#define LIMINE_INTERNAL_MODULE_REQUIRED (1 << 0)
struct limine_internal_module {
LIMINE_PTR(const char *) path;
LIMINE_PTR(const char *) cmdline;
uint64_t flags;
};
struct limine_module_response {
uint64_t revision;
uint64_t module_count;
@@ -365,6 +426,10 @@ struct limine_module_request {
uint64_t id[4];
uint64_t revision;
LIMINE_PTR(struct limine_module_response *) response;
/* Request revision 1 */
uint64_t internal_module_count;
LIMINE_PTR(struct limine_internal_module **) internal_modules;
};
/* RSDP */

BIN
limine.sys Executable file → Normal file

Binary file not shown.