diff options
Diffstat (limited to 'kernel/arch/x86/boot/compressed/cmdline.c')
-rw-r--r-- | kernel/arch/x86/boot/compressed/cmdline.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/kernel/arch/x86/boot/compressed/cmdline.c b/kernel/arch/x86/boot/compressed/cmdline.c new file mode 100644 index 000000000..b68e3033e --- /dev/null +++ b/kernel/arch/x86/boot/compressed/cmdline.c @@ -0,0 +1,33 @@ +#include "misc.h" + +#if CONFIG_EARLY_PRINTK || CONFIG_RANDOMIZE_BASE + +static unsigned long fs; +static inline void set_fs(unsigned long seg) +{ + fs = seg << 4; /* shift it back */ +} +typedef unsigned long addr_t; +static inline char rdfs8(addr_t addr) +{ + return *((char *)(fs + addr)); +} +#include "../cmdline.c" +static unsigned long get_cmd_line_ptr(void) +{ + unsigned long cmd_line_ptr = real_mode->hdr.cmd_line_ptr; + + cmd_line_ptr |= (u64)real_mode->ext_cmd_line_ptr << 32; + + return cmd_line_ptr; +} +int cmdline_find_option(const char *option, char *buffer, int bufsize) +{ + return __cmdline_find_option(get_cmd_line_ptr(), option, buffer, bufsize); +} +int cmdline_find_option_bool(const char *option) +{ + return __cmdline_find_option_bool(get_cmd_line_ptr(), option); +} + +#endif |