+
+static void
+ram_init (void)
+{
+ /* Start and end of kernel image,
+ and start and end of BSS segment.
+ These are created by kernel.lds. */
+ extern char _start, _end;
+ extern char _start_bss, _end_bss;
+
+ /* The "BSS" is a segment that should be initialized to zeros.
+ It isn't actually stored on disk or zeroed by the kernel
+ loader, so we have to zero it ourselves. */
+ memset (&_start_bss, 0, &_end_bss - &_start_bss);
+
+ /* Calculate how much RAM the kernel uses,
+ and find out from the bootloader how much RAM this machine
+ has. */
+ kernel_pages = (&_end - &_start + 4095) / 4096;
+ ram_pages = *(uint32_t *) ptov (LOADER_BASE + LOADER_RAM_PAGES);
+}
+
+void
+argv_init (void)
+{
+ char *cmd_line = ptov (LOADER_BASE + LOADER_CMD_LINE);
+}