Add support for machdep.console_device, machdep.booted_device,
and machdep.booted_kernel sysctl variables on arm32. (booted_kernel only currently available on Sharks)
This commit is contained in:
parent
a98dd470c6
commit
d3649351f1
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: machdep.c,v 1.78 2000/05/26 21:19:31 thorpej Exp $ */
|
/* $NetBSD: machdep.c,v 1.79 2000/06/07 04:59:28 matt Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1994-1998 Mark Brinicombe.
|
* Copyright (c) 1994-1998 Mark Brinicombe.
|
||||||
|
@ -57,6 +57,7 @@
|
||||||
#include <sys/mount.h>
|
#include <sys/mount.h>
|
||||||
#include <sys/vnode.h>
|
#include <sys/vnode.h>
|
||||||
#include <sys/msgbuf.h>
|
#include <sys/msgbuf.h>
|
||||||
|
#include <sys/device.h>
|
||||||
#include <vm/vm.h>
|
#include <vm/vm.h>
|
||||||
#include <sys/sysctl.h>
|
#include <sys/sysctl.h>
|
||||||
#include <sys/syscallargs.h>
|
#include <sys/syscallargs.h>
|
||||||
|
@ -142,6 +143,10 @@ extern void dumpsys __P((void));
|
||||||
extern void pmap_debug __P((int level));
|
extern void pmap_debug __P((int level));
|
||||||
#endif /* PMAP_DEBUG */
|
#endif /* PMAP_DEBUG */
|
||||||
|
|
||||||
|
#if defined(SHARK)
|
||||||
|
int shark_sysctl(int *name, u_int namelen, void *oldp, size_t *oldlenp,
|
||||||
|
void *newp, size_t newlen, struct proc *p);
|
||||||
|
#endif
|
||||||
/*
|
/*
|
||||||
* Debug function just to park the CPU
|
* Debug function just to park the CPU
|
||||||
*/
|
*/
|
||||||
|
@ -773,6 +778,31 @@ cpu_sysctl(name, namelen, oldp, oldlenp, newp, newlen, p)
|
||||||
case CPU_DEBUG:
|
case CPU_DEBUG:
|
||||||
return(sysctl_int(oldp, oldlenp, newp, newlen, &kernel_debug));
|
return(sysctl_int(oldp, oldlenp, newp, newlen, &kernel_debug));
|
||||||
|
|
||||||
|
case CPU_BOOTED_DEVICE:
|
||||||
|
if (booted_device != NULL)
|
||||||
|
return (sysctl_rdstring(oldp, oldlenp, newp,
|
||||||
|
booted_device->dv_xname));
|
||||||
|
return (EOPNOTSUPP);
|
||||||
|
|
||||||
|
case CPU_CONSDEV: {
|
||||||
|
dev_t consdev;
|
||||||
|
if (cn_tab != NULL)
|
||||||
|
consdev = cn_tab->cn_dev;
|
||||||
|
else
|
||||||
|
consdev = NODEV;
|
||||||
|
return (sysctl_rdstruct(oldp, oldlenp, newp, &consdev,
|
||||||
|
sizeof consdev));
|
||||||
|
}
|
||||||
|
#if defined(SHARK)
|
||||||
|
case CPU_BOOTED_KERNEL: {
|
||||||
|
extern char *boot_kernel;
|
||||||
|
if (boot_kernel != NULL && boot_kernel[0] != '\0')
|
||||||
|
return sysctl_rdstring(oldp, oldlenp, newp,
|
||||||
|
boot_kernel);
|
||||||
|
return (EOPNOTSUPP);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return (EOPNOTSUPP);
|
return (EOPNOTSUPP);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: cpu.h,v 1.20 2000/05/26 21:19:32 thorpej Exp $ */
|
/* $NetBSD: cpu.h,v 1.21 2000/06/07 04:59:29 matt Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1994-1996 Mark Brinicombe.
|
* Copyright (c) 1994-1996 Mark Brinicombe.
|
||||||
|
@ -283,11 +283,17 @@ void child_return __P((void *));
|
||||||
* CTL_MACHDEP definitions.
|
* CTL_MACHDEP definitions.
|
||||||
*/
|
*/
|
||||||
#define CPU_DEBUG 1 /* int: misc kernel debug control */
|
#define CPU_DEBUG 1 /* int: misc kernel debug control */
|
||||||
#define CPU_MAXID 2 /* number of valid machdep ids */
|
#define CPU_BOOTED_DEVICE 2 /* string: device we booted from */
|
||||||
|
#define CPU_BOOTED_KERNEL 3 /* string: kernel we booted */
|
||||||
|
#define CPU_CONSDEV 4 /* struct: dev_t of our console */
|
||||||
|
#define CPU_MAXID 5 /* number of valid machdep ids */
|
||||||
|
|
||||||
#define CTL_MACHDEP_NAMES { \
|
#define CTL_MACHDEP_NAMES { \
|
||||||
{ 0, 0 }, \
|
{ 0, 0 }, \
|
||||||
{ "debug", CTLTYPE_INT }, \
|
{ "debug", CTLTYPE_INT }, \
|
||||||
|
{ "booted_device", CTLTYPE_STRING }, \
|
||||||
|
{ "booted_kernel", CTLTYPE_STRING }, \
|
||||||
|
{ "console_device", CTLTYPE_STRUCT }, \
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* !_ARM32_CPU_H_ */
|
#endif /* !_ARM32_CPU_H_ */
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: shark_machdep.c,v 1.16 2000/06/06 20:17:36 matt Exp $ */
|
/* $NetBSD: shark_machdep.c,v 1.17 2000/06/07 04:59:30 matt Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright 1997
|
* Copyright 1997
|
||||||
|
@ -119,6 +119,7 @@ void ofbus_attach __P((struct device *, struct device *, void *));
|
||||||
BootConfig bootconfig;
|
BootConfig bootconfig;
|
||||||
char *boot_args = NULL;
|
char *boot_args = NULL;
|
||||||
char *boot_file = NULL;
|
char *boot_file = NULL;
|
||||||
|
char *boot_kernel = NULL;
|
||||||
#ifndef PMAP_STATIC_L1S
|
#ifndef PMAP_STATIC_L1S
|
||||||
int max_processes = 64; /* Default number */
|
int max_processes = 64; /* Default number */
|
||||||
#endif /* !PMAP_STATIC_L1S */
|
#endif /* !PMAP_STATIC_L1S */
|
||||||
|
@ -398,8 +399,19 @@ ofw_device_register(struct device *dev, void *aux)
|
||||||
char name[64];
|
char name[64];
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (boot_component == NULL)
|
if (boot_component == NULL) {
|
||||||
|
char *cp;
|
||||||
boot_component = boot_file;
|
boot_component = boot_file;
|
||||||
|
if (boot_component == NULL)
|
||||||
|
return;
|
||||||
|
cp = strrchr(boot_component, ':');
|
||||||
|
if (cp != NULL) {
|
||||||
|
*cp++ = '\0';
|
||||||
|
if (cp[0] == '\\')
|
||||||
|
cp++;
|
||||||
|
boot_kernel = cp;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (booted_device != NULL
|
if (booted_device != NULL
|
||||||
|| boot_component == NULL
|
|| boot_component == NULL
|
||||||
|
|
Loading…
Reference in New Issue