svn commit: r346801 - in projects/runtime-coverage-v2: lib/libc/gen lib/libvgl libexec/rc stand stand/common stand/efi/loader stand/i386/loader sys/arm/allwinner sys/arm/allwinner/a10 sys/arm/allwi...
Enji Cooper
ngie at FreeBSD.org
Sun Apr 28 02:27:11 UTC 2019
Author: ngie
Date: Sun Apr 28 02:27:04 2019
New Revision: 346801
URL: https://svnweb.freebsd.org/changeset/base/346801
Log:
MFhead at r346800
Added:
projects/runtime-coverage-v2/lib/libc/gen/auxv.3
- copied unchanged from r346800, head/lib/libc/gen/auxv.3
projects/runtime-coverage-v2/stand/common/vdisk.c
- copied unchanged from r346800, head/stand/common/vdisk.c
Modified:
projects/runtime-coverage-v2/lib/libc/gen/Makefile.inc
projects/runtime-coverage-v2/lib/libvgl/bitmap.c
projects/runtime-coverage-v2/lib/libvgl/main.c
projects/runtime-coverage-v2/lib/libvgl/mouse.c
projects/runtime-coverage-v2/lib/libvgl/simple.c
projects/runtime-coverage-v2/libexec/rc/rc.initdiskless
projects/runtime-coverage-v2/stand/common/help.common
projects/runtime-coverage-v2/stand/efi/loader/conf.c
projects/runtime-coverage-v2/stand/i386/loader/conf.c
projects/runtime-coverage-v2/stand/loader.mk
projects/runtime-coverage-v2/sys/arm/allwinner/a10/a10_padconf.c
projects/runtime-coverage-v2/sys/arm/allwinner/aw_rtc.c
projects/runtime-coverage-v2/sys/arm/allwinner/aw_syscon.c
projects/runtime-coverage-v2/sys/arm/allwinner/clkng/ccu_de2.c
projects/runtime-coverage-v2/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c
projects/runtime-coverage-v2/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/range_tree.h
projects/runtime-coverage-v2/sys/compat/freebsd32/freebsd32_systrace_args.c
projects/runtime-coverage-v2/sys/kern/systrace_args.c
projects/runtime-coverage-v2/sys/kern/vfs_bio.c
projects/runtime-coverage-v2/sys/modules/fusefs/Makefile
projects/runtime-coverage-v2/sys/powerpc/aim/aim_machdep.c
projects/runtime-coverage-v2/sys/powerpc/aim/mp_cpudep.c
projects/runtime-coverage-v2/sys/powerpc/include/pcb.h
projects/runtime-coverage-v2/sys/powerpc/include/spr.h
projects/runtime-coverage-v2/sys/powerpc/powerpc/cpu.c
projects/runtime-coverage-v2/sys/powerpc/powerpc/exec_machdep.c
projects/runtime-coverage-v2/sys/powerpc/powerpc/genassym.c
projects/runtime-coverage-v2/sys/powerpc/powerpc/swtch32.S
projects/runtime-coverage-v2/sys/powerpc/powerpc/swtch64.S
projects/runtime-coverage-v2/sys/powerpc/powerpc/trap.c
projects/runtime-coverage-v2/tools/boot/ci-qemu-test.sh
Directory Properties:
projects/runtime-coverage-v2/ (props changed)
projects/runtime-coverage-v2/sys/cddl/contrib/opensolaris/ (props changed)
Modified: projects/runtime-coverage-v2/lib/libc/gen/Makefile.inc
==============================================================================
--- projects/runtime-coverage-v2/lib/libc/gen/Makefile.inc Sun Apr 28 02:24:22 2019 (r346800)
+++ projects/runtime-coverage-v2/lib/libc/gen/Makefile.inc Sun Apr 28 02:27:04 2019 (r346801)
@@ -193,6 +193,7 @@ SYM_MAPS+=${LIBC_SRCTOP}/gen/Symbol.map
MAN+= alarm.3 \
arc4random.3 \
+ auxv.3 \
basename.3 \
cap_rights_get.3 \
cap_sandboxed.3 \
@@ -321,6 +322,7 @@ MAN+= alarm.3 \
MLINKS+=arc4random.3 arc4random_buf.3 \
arc4random.3 arc4random_uniform.3
+MLINKS+=auxv.3 elf_aux_info.3
MLINKS+=ctermid.3 ctermid_r.3
MLINKS+=devname.3 devname_r.3
MLINKS+=devname.3 fdevname.3
Copied: projects/runtime-coverage-v2/lib/libc/gen/auxv.3 (from r346800, head/lib/libc/gen/auxv.3)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ projects/runtime-coverage-v2/lib/libc/gen/auxv.3 Sun Apr 28 02:27:04 2019 (r346801, copy of r346800, head/lib/libc/gen/auxv.3)
@@ -0,0 +1,86 @@
+.\"
+.\" Copyright (c) 2019 Ian Lepore <ian at freebsd.org>
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\"
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" $FreeBSD$
+.\"
+.Dd April 25, 2019
+.Dt ELF_AUX_INFO 3
+.Os
+.Sh NAME
+.Nm elf_aux_info
+.Nd extract data from the elf auxiliary vector of the current process
+.Sh LIBRARY
+.Lb libc
+.Sh SYNOPSIS
+.In sys/auxv.h
+.Ft int
+.Fn elf_aux_info "int aux" "void *buf" "int buflen"
+.Sh DESCRIPTION
+The
+.Fn elf_aux_info
+function retrieves the auxiliary info vector requested in
+.Va aux .
+The information is stored into the provided buffer if it will fit.
+The following values, defined in
+.In sys/elf_common.h
+can be requested:
+.Bl -tag -width AT_OSRELDATE
+.It AT_CANARY
+The canary value for SSP.
+.It AT_HWCAP
+CPU / hardware feature flags.
+.It AT_HWCAP2
+CPU / hardware feature flags.
+.It AT_NCPUS
+Number of CPUs.
+.It AT_OSRELDATE
+Kernel OSRELDATE.
+.It AT_PAGESIZES
+Vector of page sizes.
+.It AT_PAGESZ
+Page size in bytes.
+.It AT_TIMEKEEP
+Pointer to VDSO timehands (for library internal use).
+.El
+.Sh RETURN VALUES
+Returns zero on success, or an error number on failure.
+.Sh ERRORS
+.Bl -tag -width Er
+.It Bq Er EINVAL
+An unknown item was requested.
+.It Bq Er EINVAL
+The provided buffer was not the right size for the requested item.
+.It Bq Er ENOENT
+The requested item is not available.
+.El
+.Sh HISTORY
+The
+.Fn elf_aux_info
+function appeared in
+.Fx 12.0 .
+.Sh BUGS
+Only a small subset of available auxiliary info vector items are
+accessible with this function.
+Some items require a "right-sized" buffer while others just require a
+"big enough" buffer.
Modified: projects/runtime-coverage-v2/lib/libvgl/bitmap.c
==============================================================================
--- projects/runtime-coverage-v2/lib/libvgl/bitmap.c Sun Apr 28 02:24:22 2019 (r346800)
+++ projects/runtime-coverage-v2/lib/libvgl/bitmap.c Sun Apr 28 02:27:04 2019 (r346801)
@@ -207,7 +207,7 @@ __VGLBitmapCopy(VGLBitmap *src, int srcx, int srcy,
yextra = 0;
ystep = 1;
if (src->Bitmap == dst->Bitmap && srcy < dsty) {
- yend = srcy;
+ yend = srcy - 1;
yextra = hight - 1;
ystep = -1;
}
Modified: projects/runtime-coverage-v2/lib/libvgl/main.c
==============================================================================
--- projects/runtime-coverage-v2/lib/libvgl/main.c Sun Apr 28 02:24:22 2019 (r346800)
+++ projects/runtime-coverage-v2/lib/libvgl/main.c Sun Apr 28 02:27:04 2019 (r346801)
@@ -42,8 +42,6 @@ __FBSDID("$FreeBSD$");
#include <sys/consio.h>
#include "vgl.h"
-/* XXX Direct Color 24bits modes unsupported */
-
#define min(x, y) (((x) < (y)) ? (x) : (y))
#define max(x, y) (((x) > (y)) ? (x) : (y))
@@ -64,6 +62,7 @@ static unsigned int VGLCurWindow;
static int VGLInitDone = 0;
static video_info_t VGLOldModeInfo;
static vid_info_t VGLOldVInfo;
+static int VGLOldVXsize;
void
VGLEnd()
@@ -85,6 +84,8 @@ struct vt_mode smode;
munmap(VGLMem, VGLAdpInfo.va_window_size);
}
+ ioctl(0, FBIO_SETLINEWIDTH, &VGLOldVXsize);
+
if (VGLOldMode >= M_VESA_BASE)
ioctl(0, _IO('V', VGLOldMode - M_VESA_BASE), 0);
else
@@ -220,11 +221,9 @@ VGLInit(int mode)
case 2:
VGLDisplay->Type = VIDBUF16;
break;
-#if notyet
case 3:
VGLDisplay->Type = VIDBUF24;
break;
-#endif
case 4:
VGLDisplay->Type = VIDBUF32;
break;
@@ -322,6 +321,7 @@ VGLInit(int mode)
depth = VGLModeInfo.vi_depth;
if (depth == 15)
depth = 16;
+ VGLOldVXsize =
VGLDisplay->VXsize = VGLAdpInfo.va_line_width
*8/(depth/VGLModeInfo.vi_planes);
VGLDisplay->VYsize = VGLBufSize/VGLModeInfo.vi_planes/VGLAdpInfo.va_line_width;
Modified: projects/runtime-coverage-v2/lib/libvgl/mouse.c
==============================================================================
--- projects/runtime-coverage-v2/lib/libvgl/mouse.c Sun Apr 28 02:24:22 2019 (r346800)
+++ projects/runtime-coverage-v2/lib/libvgl/mouse.c Sun Apr 28 02:27:04 2019 (r346801)
@@ -105,37 +105,11 @@ static volatile sig_atomic_t VGLMsuppressint;
void
VGLMousePointerShow()
{
- byte buf[MOUSE_IMG_SIZE*MOUSE_IMG_SIZE*4];
- VGLBitmap buffer =
- VGLBITMAP_INITIALIZER(MEMBUF, MOUSE_IMG_SIZE, MOUSE_IMG_SIZE, buf);
- byte crtcidx, crtcval, gdcidx, gdcval;
- int pos;
-
if (!VGLMouseVisible) {
INTOFF();
VGLMouseVisible = 1;
- if (VGLModeInfo.vi_mem_model != V_INFO_MM_DIRECT) {
- crtcidx = inb(0x3c4);
- crtcval = inb(0x3c5);
- gdcidx = inb(0x3ce);
- gdcval = inb(0x3cf);
- }
- buffer.PixelBytes = VGLDisplay->PixelBytes;
- __VGLBitmapCopy(&VGLVDisplay, VGLMouseXpos, VGLMouseYpos,
- &buffer, 0, 0, MOUSE_IMG_SIZE, MOUSE_IMG_SIZE);
- for (pos = 0; pos < MOUSE_IMG_SIZE*MOUSE_IMG_SIZE; pos++)
- if (VGLMouseAndMask->Bitmap[pos])
- bcopy(&VGLMouseOrMask->Bitmap[pos*VGLDisplay->PixelBytes],
- &buffer.Bitmap[pos*VGLDisplay->PixelBytes],
- VGLDisplay->PixelBytes);
- __VGLBitmapCopy(&buffer, 0, 0, VGLDisplay,
- VGLMouseXpos, VGLMouseYpos, MOUSE_IMG_SIZE, MOUSE_IMG_SIZE);
- if (VGLModeInfo.vi_mem_model != V_INFO_MM_DIRECT) {
- outb(0x3c4, crtcidx);
- outb(0x3c5, crtcval);
- outb(0x3ce, gdcidx);
- outb(0x3cf, gdcval);
- }
+ __VGLBitmapCopy(&VGLVDisplay, VGLMouseXpos, VGLMouseYpos, VGLDisplay,
+ VGLMouseXpos, VGLMouseYpos, MOUSE_IMG_SIZE, -MOUSE_IMG_SIZE);
INTON();
}
}
@@ -143,25 +117,11 @@ VGLMousePointerShow()
void
VGLMousePointerHide()
{
- byte crtcidx, crtcval, gdcidx, gdcval;
-
if (VGLMouseVisible) {
INTOFF();
VGLMouseVisible = 0;
- if (VGLModeInfo.vi_mem_model != V_INFO_MM_DIRECT) {
- crtcidx = inb(0x3c4);
- crtcval = inb(0x3c5);
- gdcidx = inb(0x3ce);
- gdcval = inb(0x3cf);
- }
__VGLBitmapCopy(&VGLVDisplay, VGLMouseXpos, VGLMouseYpos, VGLDisplay,
VGLMouseXpos, VGLMouseYpos, MOUSE_IMG_SIZE, MOUSE_IMG_SIZE);
- if (VGLModeInfo.vi_mem_model != V_INFO_MM_DIRECT) {
- outb(0x3c4, crtcidx);
- outb(0x3c5, crtcval);
- outb(0x3ce, gdcidx);
- outb(0x3cf, gdcval);
- }
INTON();
}
}
Modified: projects/runtime-coverage-v2/lib/libvgl/simple.c
==============================================================================
--- projects/runtime-coverage-v2/lib/libvgl/simple.c Sun Apr 28 02:24:22 2019 (r346800)
+++ projects/runtime-coverage-v2/lib/libvgl/simple.c Sun Apr 28 02:27:04 2019 (r346801)
@@ -51,7 +51,7 @@ static byte VGLSavePaletteBlue[256];
void
VGLSetXY(VGLBitmap *object, int x, int y, u_long color)
{
- int offset, undermouse;
+ int offset, soffset, undermouse;
VGLCheckSwitch();
if (x>=0 && x<object->VXsize && y>=0 && y<object->VYsize) {
@@ -67,7 +67,6 @@ VGLSetXY(VGLBitmap *object, int x, int y, u_long color
switch (object->Type) {
case VIDBUF8S:
case VIDBUF16S:
- case VIDBUF24S:
case VIDBUF32S:
offset = VGLSetSegment(offset);
/* FALLTHROUGH */
@@ -92,6 +91,25 @@ VGLSetXY(VGLBitmap *object, int x, int y, u_long color
break;
}
break;
+ case VIDBUF24S:
+ soffset = VGLSetSegment(offset);
+ color = htole32(color);
+ switch (VGLAdpInfo.va_window_size - soffset) {
+ case 1:
+ memcpy(&object->Bitmap[soffset], &color, 1);
+ soffset = VGLSetSegment(offset + 1);
+ memcpy(&object->Bitmap[soffset], (byte *)&color + 1, 2);
+ break;
+ case 2:
+ memcpy(&object->Bitmap[soffset], &color, 2);
+ soffset = VGLSetSegment(offset + 2);
+ memcpy(&object->Bitmap[soffset], (byte *)&color + 2, 1);
+ break;
+ default:
+ memcpy(&object->Bitmap[soffset], &color, 3);
+ break;
+ }
+ break;
case VIDBUF8X:
outb(0x3c4, 0x02);
outb(0x3c5, 0x01 << (x&0x3));
@@ -115,12 +133,19 @@ set_planar:
}
}
-static u_long
-__VGLGetXY(VGLBitmap *object, int x, int y)
+u_long
+VGLGetXY(VGLBitmap *object, int x, int y)
{
- int offset;
u_long color;
+ int offset;
+ VGLCheckSwitch();
+ if (x<0 || x>=object->VXsize || y<0 || y>=object->VYsize)
+ return 0;
+ if (object == VGLDisplay)
+ object = &VGLVDisplay;
+ else if (object->Type != MEMBUF)
+ return 0; /* invalid */
offset = (y * object->VXsize + x) * object->PixelBytes;
switch (object->PixelBytes) {
case 1:
@@ -139,19 +164,6 @@ __VGLGetXY(VGLBitmap *object, int x, int y)
return 0; /* invalid */
}
-u_long
-VGLGetXY(VGLBitmap *object, int x, int y)
-{
- VGLCheckSwitch();
- if (x<0 || x>=object->VXsize || y<0 || y>=object->VYsize)
- return 0;
- if (object == VGLDisplay)
- object = &VGLVDisplay;
- else if (object->Type != MEMBUF)
- return 0; /* invalid */
- return __VGLGetXY(object, x, y);
-}
-
/*
* Symmetric Double Step Line Algorithm by Brian Wyvill from
* "Graphics Gems", Academic Press, 1990.
@@ -458,7 +470,7 @@ VGLClear(VGLBitmap *object, u_long color)
VGLCheckSwitch();
if (object == VGLDisplay) {
VGLMouseFreeze();
- mouseoverlap = VGLMouseOverlap(0, 0, object->Xsize, object->Ysize);
+ mouseoverlap = VGLMouseOverlap(0, 0, object->VXsize, object->VYsize);
if (mouseoverlap)
VGLMousePointerHide();
VGLClear(&VGLVDisplay, color);
Modified: projects/runtime-coverage-v2/libexec/rc/rc.initdiskless
==============================================================================
--- projects/runtime-coverage-v2/libexec/rc/rc.initdiskless Sun Apr 28 02:24:22 2019 (r346800)
+++ projects/runtime-coverage-v2/libexec/rc/rc.initdiskless Sun Apr 28 02:27:04 2019 (r346801)
@@ -208,7 +208,11 @@ handle_remount() { # $1 = mount point
# The 'auto' parameter will attempt to use tmpfs(5), falls back to md(4).
# $1 is size in 512-byte sectors, $2 is the mount point.
mount_md() {
- /sbin/mdmfs -s $1 auto $2
+ if [ ${o_verbose} -gt 0 ] ; then
+ /sbin/mdmfs -XL -s $1 auto $2
+ else
+ /sbin/mdmfs -s $1 auto $2
+ fi
}
# Create the memory filesystem if it has not already been created
Modified: projects/runtime-coverage-v2/stand/common/help.common
==============================================================================
--- projects/runtime-coverage-v2/stand/common/help.common Sun Apr 28 02:24:22 2019 (r346800)
+++ projects/runtime-coverage-v2/stand/common/help.common Sun Apr 28 02:27:04 2019 (r346801)
@@ -99,6 +99,13 @@
List loaded modules. If [-v] is specified, print more details.
################################################################################
+# Tmap-vdisk DMap virtual disk
+
+ map-vdisk filename
+
+ Map file as virtual disk.
+
+################################################################################
# Tmore DPage files
more <filename> [<filename> ...]
@@ -395,6 +402,13 @@
unload
This command removes any kernel and all loaded modules from memory.
+
+################################################################################
+# Tunmap-vdisk DUnmap virtual disk
+
+ unmap-vdisk diskname
+
+ Delete virtual disk mapping.
################################################################################
# Tunset DUnset a variable
Copied: projects/runtime-coverage-v2/stand/common/vdisk.c (from r346800, head/stand/common/vdisk.c)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ projects/runtime-coverage-v2/stand/common/vdisk.c Sun Apr 28 02:27:04 2019 (r346801, copy of r346800, head/stand/common/vdisk.c)
@@ -0,0 +1,417 @@
+/*-
+ * Copyright 2019 Toomas Soome <tsoome at me.com>
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include <stand.h>
+#include <stdarg.h>
+#include <machine/_inttypes.h>
+#include <bootstrap.h>
+#include <sys/disk.h>
+#include <sys/errno.h>
+#include <sys/queue.h>
+#include <sys/param.h>
+#include <disk.h>
+
+static int vdisk_init(void);
+static int vdisk_strategy(void *, int, daddr_t, size_t, char *, size_t *);
+static int vdisk_open(struct open_file *, ...);
+static int vdisk_close(struct open_file *);
+static int vdisk_ioctl(struct open_file *, u_long, void *);
+static int vdisk_print(int);
+
+struct devsw vdisk_dev = {
+ .dv_name = "vdisk",
+ .dv_type = DEVT_DISK,
+ .dv_init = vdisk_init,
+ .dv_strategy = vdisk_strategy,
+ .dv_open = vdisk_open,
+ .dv_close = vdisk_close,
+ .dv_ioctl = vdisk_ioctl,
+ .dv_print = vdisk_print,
+ .dv_cleanup = NULL
+};
+
+typedef STAILQ_HEAD(vdisk_info_list, vdisk_info) vdisk_info_list_t;
+
+typedef struct vdisk_info
+{
+ STAILQ_ENTRY(vdisk_info) vdisk_link; /* link in device list */
+ char *vdisk_path;
+ int vdisk_unit;
+ int vdisk_fd;
+ uint64_t vdisk_size; /* size in bytes */
+ uint32_t vdisk_sectorsz;
+ uint32_t vdisk_open; /* reference counter */
+} vdisk_info_t;
+
+static vdisk_info_list_t vdisk_list; /* list of mapped vdisks. */
+
+static vdisk_info_t *
+vdisk_get_info(struct devdesc *dev)
+{
+ vdisk_info_t *vd;
+
+ STAILQ_FOREACH(vd, &vdisk_list, vdisk_link) {
+ if (vd->vdisk_unit == dev->d_unit)
+ return (vd);
+ }
+ return (vd);
+}
+
+COMMAND_SET(map_vdisk, "map-vdisk", "map file as virtual disk", command_mapvd);
+
+static int
+command_mapvd(int argc, char *argv[])
+{
+ vdisk_info_t *vd, *p;
+ struct stat sb;
+
+ if (argc != 2) {
+ printf("usage: %s filename\n", argv[0]);
+ return (CMD_ERROR);
+ }
+
+ STAILQ_FOREACH(vd, &vdisk_list, vdisk_link) {
+ if (strcmp(vd->vdisk_path, argv[1]) == 0) {
+ printf("%s: file %s is already mapped as %s%d\n",
+ argv[0], argv[1], vdisk_dev.dv_name,
+ vd->vdisk_unit);
+ return (CMD_ERROR);
+ }
+ }
+
+ if (stat(argv[1], &sb) < 0) {
+ /*
+ * ENOSYS is really ENOENT because we did try to walk
+ * through devsw list to try to open this file.
+ */
+ if (errno == ENOSYS)
+ errno = ENOENT;
+
+ printf("%s: stat failed: %s\n", argv[0], strerror(errno));
+ return (CMD_ERROR);
+ }
+
+ /*
+ * Avoid mapping small files.
+ */
+ if (sb.st_size < 1024 * 1024) {
+ printf("%s: file %s is too small.\n", argv[0], argv[1]);
+ return (CMD_ERROR);
+ }
+
+ vd = calloc(1, sizeof (*vd));
+ if (vd == NULL) {
+ printf("%s: out of memory\n", argv[0]);
+ return (CMD_ERROR);
+ }
+ vd->vdisk_path = strdup(argv[1]);
+ if (vd->vdisk_path == NULL) {
+ free (vd);
+ printf("%s: out of memory\n", argv[0]);
+ return (CMD_ERROR);
+ }
+ vd->vdisk_fd = open(vd->vdisk_path, O_RDONLY);
+ if (vd->vdisk_fd < 0) {
+ printf("%s: open failed: %s\n", argv[0], strerror(errno));
+ free(vd->vdisk_path);
+ free(vd);
+ return (CMD_ERROR);
+ }
+
+ vd->vdisk_size = sb.st_size;
+ vd->vdisk_sectorsz = DEV_BSIZE;
+ STAILQ_FOREACH(p, &vdisk_list, vdisk_link) {
+ vdisk_info_t *n;
+ if (p->vdisk_unit == vd->vdisk_unit) {
+ vd->vdisk_unit++;
+ continue;
+ }
+ n = STAILQ_NEXT(p, vdisk_link);
+ if (p->vdisk_unit < vd->vdisk_unit) {
+ if (n == NULL) {
+ /* p is last elem */
+ STAILQ_INSERT_TAIL(&vdisk_list, vd, vdisk_link);
+ break;
+ }
+ if (n->vdisk_unit > vd->vdisk_unit) {
+ /* p < vd < n */
+ STAILQ_INSERT_AFTER(&vdisk_list, p, vd,
+ vdisk_link);
+ break;
+ }
+ /* else n < vd or n == vd */
+ vd->vdisk_unit++;
+ continue;
+ }
+ /* p > vd only if p is the first element */
+ STAILQ_INSERT_HEAD(&vdisk_list, vd, vdisk_link);
+ break;
+ }
+
+ /* if the list was empty or contiguous */
+ if (p == NULL)
+ STAILQ_INSERT_TAIL(&vdisk_list, vd, vdisk_link);
+
+ printf("%s: file %s is mapped as %s%d\n", argv[0], vd->vdisk_path,
+ vdisk_dev.dv_name, vd->vdisk_unit);
+ return (CMD_OK);
+}
+
+COMMAND_SET(unmap_vdisk, "unmap-vdisk", "unmap virtual disk", command_unmapvd);
+
+/*
+ * unmap-vdisk vdiskX
+ */
+static int
+command_unmapvd(int argc, char *argv[])
+{
+ size_t len;
+ vdisk_info_t *vd;
+ long unit;
+ char *end;
+
+ if (argc != 2) {
+ printf("usage: %s %sN\n", argv[0], vdisk_dev.dv_name);
+ return (CMD_ERROR);
+ }
+
+ len = strlen(vdisk_dev.dv_name);
+ if (strncmp(vdisk_dev.dv_name, argv[1], len) != 0) {
+ printf("%s: unknown device %s\n", argv[0], argv[1]);
+ return (CMD_ERROR);
+ }
+ errno = 0;
+ unit = strtol(argv[1] + len, &end, 10);
+ if (errno != 0 || (*end != '\0' && strcmp(end, ":") != 0)) {
+ printf("%s: unknown device %s\n", argv[0], argv[1]);
+ return (CMD_ERROR);
+ }
+
+ STAILQ_FOREACH(vd, &vdisk_list, vdisk_link) {
+ if (vd->vdisk_unit == unit)
+ break;
+ }
+
+ if (vd == NULL) {
+ printf("%s: unknown device %s\n", argv[0], argv[1]);
+ return (CMD_ERROR);
+ }
+
+ if (vd->vdisk_open != 0) {
+ printf("%s: %s is in use, unable to unmap.\n",
+ argv[0], argv[1]);
+ return (CMD_ERROR);
+ }
+
+ STAILQ_REMOVE(&vdisk_list, vd, vdisk_info, vdisk_link);
+ close(vd->vdisk_fd);
+ free(vd->vdisk_path);
+ free(vd);
+ printf("%s (%s) unmapped\n", argv[1], vd->vdisk_path);
+
+ return (CMD_OK);
+}
+
+static int
+vdisk_init(void)
+{
+ STAILQ_INIT(&vdisk_list);
+ return (0);
+}
+
+static int
+vdisk_strategy(void *devdata, int rw, daddr_t blk, size_t size,
+ char *buf, size_t *rsize)
+{
+ struct disk_devdesc *dev;
+ vdisk_info_t *vd;
+ ssize_t rv;
+
+ dev = devdata;
+ if (dev == NULL)
+ return (EINVAL);
+ vd = vdisk_get_info((struct devdesc *)dev);
+ if (vd == NULL)
+ return (EINVAL);
+
+ if (size == 0 || (size % 512) != 0)
+ return (EIO);
+
+ if (dev->dd.d_dev->dv_type == DEVT_DISK) {
+ daddr_t offset;
+
+ offset = dev->d_offset * vd->vdisk_sectorsz;
+ offset /= 512;
+ blk += offset;
+ }
+ if (lseek(vd->vdisk_fd, blk << 9, SEEK_SET) == -1)
+ return (EIO);
+
+ errno = 0;
+ switch (rw & F_MASK) {
+ case F_READ:
+ rv = read(vd->vdisk_fd, buf, size);
+ break;
+ case F_WRITE:
+ rv = write(vd->vdisk_fd, buf, size);
+ break;
+ default:
+ return (ENOSYS);
+ }
+
+ if (errno == 0 && rsize != NULL) {
+ *rsize = rv;
+ }
+ return (errno);
+}
+
+static int
+vdisk_open(struct open_file *f, ...)
+{
+ va_list args;
+ struct disk_devdesc *dev;
+ vdisk_info_t *vd;
+ int rc = 0;
+
+ va_start(args, f);
+ dev = va_arg(args, struct disk_devdesc *);
+ va_end(args);
+ if (dev == NULL)
+ return (EINVAL);
+ vd = vdisk_get_info((struct devdesc *)dev);
+ if (vd == NULL)
+ return (EINVAL);
+
+ if (dev->dd.d_dev->dv_type == DEVT_DISK) {
+ rc = disk_open(dev, vd->vdisk_size, vd->vdisk_sectorsz);
+ }
+ if (rc == 0)
+ vd->vdisk_open++;
+ return (rc);
+}
+
+static int
+vdisk_close(struct open_file *f)
+{
+ struct disk_devdesc *dev;
+ vdisk_info_t *vd;
+
+ dev = (struct disk_devdesc *)(f->f_devdata);
+ if (dev == NULL)
+ return (EINVAL);
+ vd = vdisk_get_info((struct devdesc *)dev);
+ if (vd == NULL)
+ return (EINVAL);
+
+ vd->vdisk_open--;
+ if (dev->dd.d_dev->dv_type == DEVT_DISK)
+ return (disk_close(dev));
+ return (0);
+}
+
+static int
+vdisk_ioctl(struct open_file *f, u_long cmd, void *data)
+{
+ struct disk_devdesc *dev;
+ vdisk_info_t *vd;
+ int rc;
+
+ dev = (struct disk_devdesc *)(f->f_devdata);
+ if (dev == NULL)
+ return (EINVAL);
+ vd = vdisk_get_info((struct devdesc *)dev);
+ if (vd == NULL)
+ return (EINVAL);
+
+ if (dev->dd.d_dev->dv_type == DEVT_DISK) {
+ rc = disk_ioctl(dev, cmd, data);
+ if (rc != ENOTTY)
+ return (rc);
+ }
+
+ switch (cmd) {
+ case DIOCGSECTORSIZE:
+ *(u_int *)data = vd->vdisk_sectorsz;
+ break;
+ case DIOCGMEDIASIZE:
+ *(uint64_t *)data = vd->vdisk_size;
+ break;
+ default:
+ return (ENOTTY);
+ }
+ return (0);
+}
+
+static int
+vdisk_print(int verbose)
+{
+ int ret = 0;
+ vdisk_info_t *vd;
+ char line[80];
+
+ if (STAILQ_EMPTY(&vdisk_list))
+ return (ret);
+
+ printf("%s devices:", vdisk_dev.dv_name);
+ if ((ret = pager_output("\n")) != 0)
+ return (ret);
+
+ STAILQ_FOREACH(vd, &vdisk_list, vdisk_link) {
+ struct disk_devdesc vd_dev;
+
+ if (verbose) {
+ printf(" %s", vd->vdisk_path);
+ if ((ret = pager_output("\n")) != 0)
+ break;
+ }
+ snprintf(line, sizeof(line),
+ " %s%d", vdisk_dev.dv_name, vd->vdisk_unit);
+ printf("%s: %" PRIu64 " X %u blocks", line,
+ vd->vdisk_size / vd->vdisk_sectorsz,
+ vd->vdisk_sectorsz);
+ if ((ret = pager_output("\n")) != 0)
+ break;
+
+ vd_dev.dd.d_dev = &vdisk_dev;
+ vd_dev.dd.d_unit = vd->vdisk_unit;
+ vd_dev.d_slice = -1;
+ vd_dev.d_partition = -1;
+
+ ret = disk_open(&vd_dev, vd->vdisk_size, vd->vdisk_sectorsz);
+ if (ret == 0) {
+ ret = disk_print(&vd_dev, line, verbose);
+ disk_close(&vd_dev);
+ if (ret != 0)
+ break;
+ } else {
+ ret = 0;
+ }
+ }
+
+ return (ret);
+}
Modified: projects/runtime-coverage-v2/stand/efi/loader/conf.c
==============================================================================
--- projects/runtime-coverage-v2/stand/efi/loader/conf.c Sun Apr 28 02:24:22 2019 (r346800)
+++ projects/runtime-coverage-v2/stand/efi/loader/conf.c Sun Apr 28 02:27:04 2019 (r346801)
@@ -33,11 +33,14 @@ __FBSDID("$FreeBSD$");
#include <efilib.h>
#include <efizfs.h>
+extern struct devsw vdisk_dev;
+
struct devsw *devsw[] = {
&efipart_fddev,
&efipart_cddev,
&efipart_hddev,
&efinet_dev,
+ &vdisk_dev,
#ifdef EFI_ZFS_BOOT
&zfs_dev,
#endif
Modified: projects/runtime-coverage-v2/stand/i386/loader/conf.c
==============================================================================
--- projects/runtime-coverage-v2/stand/i386/loader/conf.c Sun Apr 28 02:24:22 2019 (r346800)
+++ projects/runtime-coverage-v2/stand/i386/loader/conf.c Sun Apr 28 02:27:04 2019 (r346801)
@@ -48,6 +48,7 @@ __FBSDID("$FreeBSD$");
#if defined(LOADER_FIREWIRE_SUPPORT)
extern struct devsw fwohci;
#endif
+extern struct devsw vdisk_dev;
/* Exported for libstand */
struct devsw *devsw[] = {
@@ -60,6 +61,7 @@ struct devsw *devsw[] = {
#if defined(LOADER_FIREWIRE_SUPPORT)
&fwohci,
#endif
+ &vdisk_dev,
#if defined(LOADER_ZFS_SUPPORT)
&zfs_dev,
#endif
Modified: projects/runtime-coverage-v2/stand/loader.mk
==============================================================================
--- projects/runtime-coverage-v2/stand/loader.mk Sun Apr 28 02:24:22 2019 (r346800)
+++ projects/runtime-coverage-v2/stand/loader.mk Sun Apr 28 02:27:04 2019 (r346801)
@@ -31,7 +31,7 @@ SRCS+= metadata.c
.endif
.if ${LOADER_DISK_SUPPORT:Uyes} == "yes"
-SRCS+= disk.c part.c
+SRCS+= disk.c part.c vdisk.c
.endif
.if ${LOADER_NET_SUPPORT:Uno} == "yes"
Modified: projects/runtime-coverage-v2/sys/arm/allwinner/a10/a10_padconf.c
==============================================================================
--- projects/runtime-coverage-v2/sys/arm/allwinner/a10/a10_padconf.c Sun Apr 28 02:24:22 2019 (r346800)
+++ projects/runtime-coverage-v2/sys/arm/allwinner/a10/a10_padconf.c Sun Apr 28 02:27:04 2019 (r346801)
@@ -77,8 +77,8 @@ const static struct allwinner_pins a10_pins[] = {
{"PB17", 1, 17, {"gpio_in", "gpio_out", "spi2", "jtag", NULL, NULL, NULL, NULL}},
{"PB18", 1, 18, {"gpio_in", "gpio_out", "i2c1", NULL, NULL, NULL, NULL, NULL}},
{"PB19", 1, 19, {"gpio_in", "gpio_out", "i2c1", NULL, NULL, NULL, NULL, NULL}},
- {"PB20", 1, 20, {"gpio_in", "gpio_out", "i2c1", NULL, NULL, NULL, NULL, NULL}},
- {"PB21", 1, 21, {"gpio_in", "gpio_out", "i2c1", NULL, NULL, NULL, NULL, NULL}},
+ {"PB20", 1, 20, {"gpio_in", "gpio_out", "i2c2", NULL, NULL, NULL, NULL, NULL}},
+ {"PB21", 1, 21, {"gpio_in", "gpio_out", "i2c2", NULL, NULL, NULL, NULL, NULL}},
{"PB22", 1, 22, {"gpio_in", "gpio_out", "uart0", "ir1", NULL, NULL, NULL, NULL}},
{"PB23", 1, 23, {"gpio_in", "gpio_out", "uart0", "ir1", NULL, NULL, NULL, NULL}},
Modified: projects/runtime-coverage-v2/sys/arm/allwinner/aw_rtc.c
==============================================================================
--- projects/runtime-coverage-v2/sys/arm/allwinner/aw_rtc.c Sun Apr 28 02:24:22 2019 (r346800)
+++ projects/runtime-coverage-v2/sys/arm/allwinner/aw_rtc.c Sun Apr 28 02:27:04 2019 (r346801)
@@ -137,6 +137,7 @@ static struct ofw_compat_data compat_data[] = {
{ "allwinner,sun7i-a20-rtc", (uintptr_t) &a20_conf },
{ "allwinner,sun6i-a31-rtc", (uintptr_t) &a31_conf },
{ "allwinner,sun8i-h3-rtc", (uintptr_t) &h3_conf },
+ { "allwinner,sun50i-h5-rtc", (uintptr_t) &h3_conf },
{ NULL, 0 }
};
Modified: projects/runtime-coverage-v2/sys/arm/allwinner/aw_syscon.c
==============================================================================
--- projects/runtime-coverage-v2/sys/arm/allwinner/aw_syscon.c Sun Apr 28 02:24:22 2019 (r346800)
+++ projects/runtime-coverage-v2/sys/arm/allwinner/aw_syscon.c Sun Apr 28 02:27:04 2019 (r346801)
@@ -53,6 +53,7 @@ static struct ofw_compat_data compat_data[] = {
{"allwinner,sun8i-a83t-system-controller", 1},
{"allwinner,sun8i-h3-system-controller", 1},
{"allwinner,sun8i-h3-system-control", 1},
+ {"allwinner,sun50i-h5-system-control", 1},
{NULL, 0}
};
Modified: projects/runtime-coverage-v2/sys/arm/allwinner/clkng/ccu_de2.c
==============================================================================
--- projects/runtime-coverage-v2/sys/arm/allwinner/clkng/ccu_de2.c Sun Apr 28 02:24:22 2019 (r346800)
+++ projects/runtime-coverage-v2/sys/arm/allwinner/clkng/ccu_de2.c Sun Apr 28 02:27:04 2019 (r346801)
@@ -115,7 +115,6 @@ static struct aw_ccung_clk de2_ccu_clks[] = {
static struct ofw_compat_data compat_data[] = {
{"allwinner,sun50i-a64-de2-clk", 1},
- {"allwinner,sun50i-h5-de2-clk", 1},
{NULL, 0}
};
Modified: projects/runtime-coverage-v2/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c
==============================================================================
--- projects/runtime-coverage-v2/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c Sun Apr 28 02:24:22 2019 (r346800)
+++ projects/runtime-coverage-v2/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c Sun Apr 28 02:27:04 2019 (r346801)
@@ -498,8 +498,10 @@ dsl_pool_close(dsl_pool_t *dp)
rrw_destroy(&dp->dp_config_rwlock);
mutex_destroy(&dp->dp_lock);
taskq_destroy(dp->dp_vnrele_taskq);
- if (dp->dp_blkstats != NULL)
+ if (dp->dp_blkstats != NULL) {
+ mutex_destroy(&dp->dp_blkstats->zab_lock);
kmem_free(dp->dp_blkstats, sizeof (zfs_all_blkstats_t));
+ }
kmem_free(dp, sizeof (dsl_pool_t));
}
Modified: projects/runtime-coverage-v2/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/range_tree.h
==============================================================================
--- projects/runtime-coverage-v2/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/range_tree.h Sun Apr 28 02:24:22 2019 (r346800)
+++ projects/runtime-coverage-v2/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/range_tree.h Sun Apr 28 02:27:04 2019 (r346801)
@@ -84,7 +84,7 @@ void range_tree_init(void);
void range_tree_fini(void);
range_tree_t *range_tree_create_impl(range_tree_ops_t *ops, void *arg,
int (*avl_compare)(const void*, const void*), uint64_t gap);
- range_tree_t *range_tree_create(range_tree_ops_t *ops, void *arg);
+range_tree_t *range_tree_create(range_tree_ops_t *ops, void *arg);
void range_tree_destroy(range_tree_t *rt);
boolean_t range_tree_contains(range_tree_t *rt, uint64_t start, uint64_t size);
range_seg_t *range_tree_find(range_tree_t *rt, uint64_t start, uint64_t size);
@@ -108,13 +108,6 @@ void range_tree_clear(range_tree_t *rt, uint64_t start
void range_tree_vacate(range_tree_t *rt, range_tree_func_t *func, void *arg);
void range_tree_walk(range_tree_t *rt, range_tree_func_t *func, void *arg);
range_seg_t *range_tree_first(range_tree_t *rt);
-
-void rt_avl_create(range_tree_t *rt, void *arg);
-void rt_avl_destroy(range_tree_t *rt, void *arg);
-void rt_avl_add(range_tree_t *rt, range_seg_t *rs, void *arg);
-void rt_avl_remove(range_tree_t *rt, range_seg_t *rs, void *arg);
-void rt_avl_vacate(range_tree_t *rt, void *arg);
-extern struct range_tree_ops rt_avl_ops;
void rt_avl_create(range_tree_t *rt, void *arg);
void rt_avl_destroy(range_tree_t *rt, void *arg);
Modified: projects/runtime-coverage-v2/sys/compat/freebsd32/freebsd32_systrace_args.c
==============================================================================
--- projects/runtime-coverage-v2/sys/compat/freebsd32/freebsd32_systrace_args.c Sun Apr 28 02:24:22 2019 (r346800)
+++ projects/runtime-coverage-v2/sys/compat/freebsd32/freebsd32_systrace_args.c Sun Apr 28 02:27:04 2019 (r346801)
@@ -10460,7 +10460,7 @@ systrace_return_setargdesc(int sysnum, int ndx, char *
/* readlinkat */
case 500:
if (ndx == 0 || ndx == 1)
- p = "int";
+ p = "ssize_t";
break;
/* renameat */
case 501:
Modified: projects/runtime-coverage-v2/sys/kern/systrace_args.c
==============================================================================
--- projects/runtime-coverage-v2/sys/kern/systrace_args.c Sun Apr 28 02:24:22 2019 (r346800)
+++ projects/runtime-coverage-v2/sys/kern/systrace_args.c Sun Apr 28 02:27:04 2019 (r346801)
@@ -10421,7 +10421,7 @@ systrace_return_setargdesc(int sysnum, int ndx, char *
/* readlinkat */
case 500:
if (ndx == 0 || ndx == 1)
- p = "int";
+ p = "ssize_t";
break;
/* renameat */
case 501:
Modified: projects/runtime-coverage-v2/sys/kern/vfs_bio.c
==============================================================================
--- projects/runtime-coverage-v2/sys/kern/vfs_bio.c Sun Apr 28 02:24:22 2019 (r346800)
+++ projects/runtime-coverage-v2/sys/kern/vfs_bio.c Sun Apr 28 02:27:04 2019 (r346801)
@@ -4424,7 +4424,7 @@ bufwait(struct buf *bp)
* read error occurred, or if the op was a write. B_CACHE is never
* set if the buffer is invalid or otherwise uncacheable.
*
- * biodone does not mess with B_INVAL, allowing the I/O routine or the
+ * bufdone does not mess with B_INVAL, allowing the I/O routine or the
* initiator to leave B_INVAL set to brelse the buffer out of existence
* in the biodone routine.
*/
Modified: projects/runtime-coverage-v2/sys/modules/fusefs/Makefile
==============================================================================
--- projects/runtime-coverage-v2/sys/modules/fusefs/Makefile Sun Apr 28 02:24:22 2019 (r346800)
+++ projects/runtime-coverage-v2/sys/modules/fusefs/Makefile Sun Apr 28 02:27:04 2019 (r346801)
@@ -8,6 +8,22 @@ SRCS= vnode_if.h \
fuse_vfsops.c fuse_vnops.c fuse_internal.c fuse_main.c
# Symlink for backwards compatibility with systems installed at 12.0 or older
+.if ${MACHINE_CPUARCH} != "powerpc"
SYMLINKS= ${KMOD}.ko ${KMODDIR}/fuse.ko
+.else
+# Some PPC systems use msdosfs for /boot, which can't handle links or symlinks
+afterinstall: alias alias_debug
+alias: .PHONY
+ ${INSTALL} -T release -o ${KMODOWN} -g ${KMODGRP} -m ${KMODMODE} \
+ ${_INSTALLFLAGS} ${PROG} ${DESTDIR}${KMODDIR}/fuse.ko
+.if defined(DEBUG_FLAGS) && !defined(INSTALL_NODEBUG) && "${MK_KERNEL_SYMBOLS}" != "no"
+alias_debug: .PHONY
+ ${INSTALL} -T debug -o ${KMODOWN} -g ${KMODGRP} -m ${KMODMODE} \
+ ${_INSTALLFLAGS} ${PROG}.debug \
+ ${DESTDIR}${KERN_DEBUGDIR}${KMODDIR}/fuse.ko
+.else
+alias_debug: .PHONY
+.endif
+.endif
.include <bsd.kmod.mk>
Modified: projects/runtime-coverage-v2/sys/powerpc/aim/aim_machdep.c
==============================================================================
--- projects/runtime-coverage-v2/sys/powerpc/aim/aim_machdep.c Sun Apr 28 02:24:22 2019 (r346800)
+++ projects/runtime-coverage-v2/sys/powerpc/aim/aim_machdep.c Sun Apr 28 02:27:04 2019 (r346801)
@@ -213,6 +213,7 @@ aim_early_init(vm_offset_t fdt, vm_offset_t toc, vm_of
case IBMPOWER7PLUS:
case IBMPOWER8:
case IBMPOWER8E:
+ case IBMPOWER8NVL:
case IBMPOWER9:
/* XXX: get from ibm,slb-size in device tree */
n_slbs = 32;
Modified: projects/runtime-coverage-v2/sys/powerpc/aim/mp_cpudep.c
==============================================================================
--- projects/runtime-coverage-v2/sys/powerpc/aim/mp_cpudep.c Sun Apr 28 02:24:22 2019 (r346800)
+++ projects/runtime-coverage-v2/sys/powerpc/aim/mp_cpudep.c Sun Apr 28 02:27:04 2019 (r346801)
@@ -85,6 +85,7 @@ cpudep_ap_early_bootstrap(void)
break;
case IBMPOWER8:
case IBMPOWER8E:
+ case IBMPOWER8NVL:
case IBMPOWER9:
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-src-projects
mailing list