Add options to kernelinfo(2).
This commit is contained in:
parent
4aadc182a6
commit
dc98bcf0ca
|
@ -80,6 +80,7 @@
|
||||||
#include "kb/default-kblayout.h"
|
#include "kb/default-kblayout.h"
|
||||||
#include "kb/kblayout.h"
|
#include "kb/kblayout.h"
|
||||||
#include "kb/ps2.h"
|
#include "kb/ps2.h"
|
||||||
|
#include "kernelinfo.h"
|
||||||
#include "logterminal.h"
|
#include "logterminal.h"
|
||||||
#include "mouse/ps2.h"
|
#include "mouse/ps2.h"
|
||||||
#include "multiboot.h"
|
#include "multiboot.h"
|
||||||
|
@ -228,6 +229,9 @@ extern "C" void KernelInit(unsigned long magic, multiboot_info_t* bootinfo_p)
|
||||||
FreeKernelAddress(&alloc);
|
FreeKernelAddress(&alloc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ( !(kernel_options = strdup(cmdline ? cmdline : "")) )
|
||||||
|
Panic("Failed to allocate kernel command line");
|
||||||
|
|
||||||
int argmax = 1;
|
int argmax = 1;
|
||||||
argv = new char*[argmax + 1];
|
argv = new char*[argmax + 1];
|
||||||
if ( !argv )
|
if ( !argv )
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2012, 2015, 2022 Jonas 'Sortie' Termansen.
|
* Copyright (c) 2012, 2015, 2022, 2023 Jonas 'Sortie' Termansen.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and distribute this software for any
|
* Permission to use, copy, modify, and distribute this software for any
|
||||||
* purpose with or without fee is hereby granted, provided that the above
|
* purpose with or without fee is hereby granted, provided that the above
|
||||||
|
@ -24,17 +24,22 @@
|
||||||
#include <sortix/kernel/kernel.h>
|
#include <sortix/kernel/kernel.h>
|
||||||
#include <sortix/kernel/syscall.h>
|
#include <sortix/kernel/syscall.h>
|
||||||
|
|
||||||
|
#include "kernelinfo.h"
|
||||||
|
|
||||||
#ifndef VERSIONSTR
|
#ifndef VERSIONSTR
|
||||||
#define VERSIONSTR "unknown"
|
#define VERSIONSTR "unknown"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
namespace Sortix {
|
namespace Sortix {
|
||||||
|
|
||||||
|
char* kernel_options;
|
||||||
|
|
||||||
static const char* KernelInfo(const char* req)
|
static const char* KernelInfo(const char* req)
|
||||||
{
|
{
|
||||||
if ( strcmp(req, "name") == 0 ) { return BRAND_KERNEL_NAME; }
|
if ( strcmp(req, "name") == 0 ) { return BRAND_KERNEL_NAME; }
|
||||||
if ( strcmp(req, "version") == 0 ) { return VERSIONSTR; }
|
if ( strcmp(req, "version") == 0 ) { return VERSIONSTR; }
|
||||||
if ( strcmp(req, "tagline") == 0 ) { return BRAND_RELEASE_TAGLINE; }
|
if ( strcmp(req, "tagline") == 0 ) { return BRAND_RELEASE_TAGLINE; }
|
||||||
|
if ( strcmp(req, "options") == 0 ) { return kernel_options; }
|
||||||
if ( strcmp(req, "builddate") == 0 ) { return __DATE__; }
|
if ( strcmp(req, "builddate") == 0 ) { return __DATE__; }
|
||||||
if ( strcmp(req, "buildtime") == 0 ) { return __TIME__; }
|
if ( strcmp(req, "buildtime") == 0 ) { return __TIME__; }
|
||||||
#if defined(__i386__) || defined(__x86_64__)
|
#if defined(__i386__) || defined(__x86_64__)
|
||||||
|
|
|
@ -0,0 +1,29 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2023 Jonas 'Sortie' Termansen.
|
||||||
|
*
|
||||||
|
* Permission to use, copy, modify, and distribute this software for any
|
||||||
|
* purpose with or without fee is hereby granted, provided that the above
|
||||||
|
* copyright notice and this permission notice appear in all copies.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
|
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
|
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
|
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
|
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
|
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*
|
||||||
|
* kernelinfo.h
|
||||||
|
* Lets user-space query information about the kernel.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef KERNELINFO_H
|
||||||
|
#define KERNELINFO_H
|
||||||
|
|
||||||
|
namespace Sortix {
|
||||||
|
|
||||||
|
extern char* kernel_options;
|
||||||
|
|
||||||
|
} // namespace Sortix
|
||||||
|
|
||||||
|
#endif
|
|
@ -21,6 +21,10 @@ The name of the current kernel.
|
||||||
The version of the current kernel.
|
The version of the current kernel.
|
||||||
.It Sy tagline
|
.It Sy tagline
|
||||||
The tagline (slogan) of the release.
|
The tagline (slogan) of the release.
|
||||||
|
.It Sy options
|
||||||
|
The
|
||||||
|
.Xr kernel 7
|
||||||
|
options.
|
||||||
.It Sy builddate
|
.It Sy builddate
|
||||||
The date on which the current kernel was built.
|
The date on which the current kernel was built.
|
||||||
.It Sy buildtime
|
.It Sy buildtime
|
||||||
|
@ -33,4 +37,5 @@ The firmware of the system (e.g. "bios" or "uefi")
|
||||||
will exit 0 on success and non-zero otherwise.
|
will exit 0 on success and non-zero otherwise.
|
||||||
.Sh SEE ALSO
|
.Sh SEE ALSO
|
||||||
.Xr uname 1 ,
|
.Xr uname 1 ,
|
||||||
.Xr kernelinfo 2
|
.Xr kernelinfo 2 ,
|
||||||
|
.Xr kernel 7
|
||||||
|
|
Loading…
Reference in New Issue