svn commit: r358179 - in projects/clang1000-import: . bin/sh lib/libc/stdlib lib/ncurses/ncurses libexec/rtld-elf/rtld-libc share/man/man4 stand/efi/libefi stand/efi/loader stand/i386/libi386 stand...
Dimitry Andric
dim at FreeBSD.org
Thu Feb 20 19:07:36 UTC 2020
Author: dim
Date: Thu Feb 20 19:07:29 2020
New Revision: 358179
URL: https://svnweb.freebsd.org/changeset/base/358179
Log:
Merge ^/head r358131 through r358178.
Added:
projects/clang1000-import/stand/libsa/smbios.c
- copied unchanged from r358166, head/stand/libsa/smbios.c
projects/clang1000-import/stand/libsa/smbios.h
- copied unchanged from r358166, head/stand/libsa/smbios.h
Deleted:
projects/clang1000-import/stand/i386/libi386/smbios.c
projects/clang1000-import/stand/i386/libi386/smbios.h
Modified:
projects/clang1000-import/ObsoleteFiles.inc
projects/clang1000-import/UPDATING
projects/clang1000-import/bin/sh/miscbltin.c
projects/clang1000-import/lib/libc/stdlib/realpath.c
projects/clang1000-import/lib/ncurses/ncurses/Makefile
projects/clang1000-import/libexec/rtld-elf/rtld-libc/Makefile.inc
projects/clang1000-import/share/man/man4/Makefile
projects/clang1000-import/stand/efi/libefi/efi_driver_utils.c
projects/clang1000-import/stand/efi/libefi/efihttp.c
projects/clang1000-import/stand/efi/libefi/efinet.c
projects/clang1000-import/stand/efi/libefi/efipart.c
projects/clang1000-import/stand/efi/libefi/efizfs.c
projects/clang1000-import/stand/efi/libefi/handles.c
projects/clang1000-import/stand/efi/loader/Makefile
projects/clang1000-import/stand/efi/loader/main.c
projects/clang1000-import/stand/i386/libi386/Makefile
projects/clang1000-import/stand/i386/loader/main.c
projects/clang1000-import/stand/libsa/Makefile
projects/clang1000-import/stand/libsa/stand.h
projects/clang1000-import/sys/bsm/audit_kevents.h
projects/clang1000-import/sys/compat/freebsd32/freebsd32_syscall.h
projects/clang1000-import/sys/compat/freebsd32/freebsd32_syscalls.c
projects/clang1000-import/sys/compat/freebsd32/freebsd32_sysent.c
projects/clang1000-import/sys/compat/freebsd32/freebsd32_systrace_args.c
projects/clang1000-import/sys/compat/freebsd32/syscalls.master
projects/clang1000-import/sys/compat/linuxkpi/common/include/linux/list.h
projects/clang1000-import/sys/compat/linuxkpi/common/include/linux/string.h
projects/clang1000-import/sys/dev/ath/if_ath.c
projects/clang1000-import/sys/dev/ath/if_ath_rx.c
projects/clang1000-import/sys/dev/ath/if_ath_rx_edma.c
projects/clang1000-import/sys/dev/pci/pcireg.h
projects/clang1000-import/sys/dev/virtio/mmio/virtio_mmio.c
projects/clang1000-import/sys/kern/init_sysent.c
projects/clang1000-import/sys/kern/kern_exec.c
projects/clang1000-import/sys/kern/kern_sig.c
projects/clang1000-import/sys/kern/subr_syscall.c
projects/clang1000-import/sys/kern/subr_trap.c
projects/clang1000-import/sys/kern/syscalls.c
projects/clang1000-import/sys/kern/syscalls.master
projects/clang1000-import/sys/kern/systrace_args.c
projects/clang1000-import/sys/kern/vfs_cache.c
projects/clang1000-import/sys/netinet/sctp_constants.h
projects/clang1000-import/sys/netinet6/ip6_output.c
projects/clang1000-import/sys/security/audit/audit_bsm.c
projects/clang1000-import/sys/sys/param.h
projects/clang1000-import/sys/sys/signalvar.h
projects/clang1000-import/sys/sys/syscall.h
projects/clang1000-import/sys/sys/syscall.mk
projects/clang1000-import/sys/sys/sysproto.h
projects/clang1000-import/sys/vm/vm_radix.c
projects/clang1000-import/sys/vm/vnode_pager.c
projects/clang1000-import/usr.bin/truss/syscalls.c
projects/clang1000-import/usr.sbin/pciconf/cap.c
projects/clang1000-import/usr.sbin/pciconf/pciconf.c
projects/clang1000-import/usr.sbin/services_mkdb/services_mkdb.c
Directory Properties:
projects/clang1000-import/ (props changed)
Modified: projects/clang1000-import/ObsoleteFiles.inc
==============================================================================
--- projects/clang1000-import/ObsoleteFiles.inc Thu Feb 20 17:26:08 2020 (r358178)
+++ projects/clang1000-import/ObsoleteFiles.inc Thu Feb 20 19:07:29 2020 (r358179)
@@ -273,6 +273,12 @@ OLD_DIRS+=usr/lib/clang/9.0.1/lib/freebsd
OLD_DIRS+=usr/lib/clang/9.0.1/lib
OLD_DIRS+=usr/lib/clang/9.0.1
+# 20200220: Upgrade of ncurses, shlib bumped to version 9
+OLD_LIBS+=lib/libncurses.so.8
+OLD_LIBS+=lib/libncursesw.so.8
+OLD_LIBS+=usr/lib32/libncurses.so.8
+OLD_LIBS+=usr/lib32/libncursesw.so.8
+
# 20200206: Remove elf2aout
OLD_FILES+=usr/bin/elf2aout
OLD_FILES+=usr/share/man/man1/elf2aout.1.gz
Modified: projects/clang1000-import/UPDATING
==============================================================================
--- projects/clang1000-import/UPDATING Thu Feb 20 17:26:08 2020 (r358178)
+++ projects/clang1000-import/UPDATING Thu Feb 20 19:07:29 2020 (r358179)
@@ -32,10 +32,10 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 13.x IS SLOW:
information about prerequisites and upgrading, if you are not already
using clang 3.5.0 or higher.
-20200218:
- ncurses has been updated to a newer version (6.1-20200118). After an
- update some applications using ncurses may results have some rendering
- problems and would need to be rebuilt.
+20200220:
+ ncurses has been updated to a newer version (6.1-20200118). Given the ABI
+ has changed, users will have to rebuild all the ports that are linked to
+ ncurses.
20200217:
The size of struct vnet and the magic cookie have changed.
Modified: projects/clang1000-import/bin/sh/miscbltin.c
==============================================================================
--- projects/clang1000-import/bin/sh/miscbltin.c Thu Feb 20 17:26:08 2020 (r358178)
+++ projects/clang1000-import/bin/sh/miscbltin.c Thu Feb 20 19:07:29 2020 (r358179)
@@ -66,10 +66,79 @@ __FBSDID("$FreeBSD$");
#undef eflag
+#define READ_BUFLEN 1024
+struct fdctx {
+ int fd;
+ size_t off; /* offset in buf */
+ size_t buflen;
+ char *ep; /* tail pointer */
+ char buf[READ_BUFLEN];
+};
+
+static void fdctx_init(int, struct fdctx *);
+static void fdctx_destroy(struct fdctx *);
+static ssize_t fdgetc(struct fdctx *, char *);
int readcmd(int, char **);
int umaskcmd(int, char **);
int ulimitcmd(int, char **);
+static void
+fdctx_init(int fd, struct fdctx *fdc)
+{
+ off_t cur;
+
+ /* Check if fd is seekable. */
+ cur = lseek(fd, 0, SEEK_CUR);
+ *fdc = (struct fdctx){
+ .fd = fd,
+ .buflen = (cur != -1) ? READ_BUFLEN : 1,
+ .ep = &fdc->buf[0], /* No data */
+ };
+}
+
+static ssize_t
+fdgetc(struct fdctx *fdc, char *c)
+{
+ ssize_t nread;
+
+ if (&fdc->buf[fdc->off] == fdc->ep) {
+ nread = read(fdc->fd, fdc->buf, fdc->buflen);
+ if (nread > 0) {
+ fdc->off = 0;
+ fdc->ep = fdc->buf + nread;
+ } else
+ return (nread);
+ }
+ *c = fdc->buf[fdc->off++];
+
+ return (1);
+}
+
+static void
+fdctx_destroy(struct fdctx *fdc)
+{
+ size_t residue;
+
+ if (fdc->buflen > 1) {
+ /*
+ * Reposition the file offset. Here is the layout of buf:
+ *
+ * | off
+ * v
+ * |*****************|-------|
+ * buf ep buf+buflen
+ * |<- residue ->|
+ *
+ * off: current character
+ * ep: offset just after read(2)
+ * residue: length for reposition
+ */
+ residue = (fdc->ep - fdc->buf) - fdc->off;
+ if (residue > 0)
+ (void) lseek(fdc->fd, -residue, SEEK_CUR);
+ }
+}
+
/*
* The read builtin. The -r option causes backslashes to be treated like
* ordinary characters.
@@ -108,6 +177,7 @@ readcmd(int argc __unused, char **argv __unused)
fd_set ifds;
ssize_t nread;
int sig;
+ struct fdctx fdctx;
rflag = 0;
prompt = NULL;
@@ -173,8 +243,9 @@ readcmd(int argc __unused, char **argv __unused)
backslash = 0;
STARTSTACKSTR(p);
lastnonifs = lastnonifsws = -1;
+ fdctx_init(STDIN_FILENO, &fdctx);
for (;;) {
- nread = read(STDIN_FILENO, &c, 1);
+ nread = fdgetc(&fdctx, &c);
if (nread == -1) {
if (errno == EINTR) {
sig = pendingsig;
@@ -260,6 +331,7 @@ readcmd(int argc __unused, char **argv __unused)
STARTSTACKSTR(p);
lastnonifs = lastnonifsws = -1;
}
+ fdctx_destroy(&fdctx);
STACKSTRNUL(p);
/*
Modified: projects/clang1000-import/lib/libc/stdlib/realpath.c
==============================================================================
--- projects/clang1000-import/lib/libc/stdlib/realpath.c Thu Feb 20 17:26:08 2020 (r358178)
+++ projects/clang1000-import/lib/libc/stdlib/realpath.c Thu Feb 20 19:07:29 2020 (r358179)
@@ -42,14 +42,19 @@ __FBSDID("$FreeBSD$");
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
+#include <fcntl.h>
#include "un-namespace.h"
+#include "libc_private.h"
+extern int __realpathat(int fd, const char *path, char *buf, size_t size,
+ int flags);
+
/*
* Find the real name of path, by removing all ".", ".." and symlink
* components. Returns (resolved) on success, or (NULL) on failure,
* in which case the path which caused trouble is left in (resolved).
*/
-static char *
+static char * __noinline
realpath1(const char *path, char *resolved)
{
struct stat sb;
@@ -222,6 +227,10 @@ realpath(const char * __restrict path, char * __restri
m = resolved = malloc(PATH_MAX);
if (resolved == NULL)
return (NULL);
+ }
+ if (__getosreldate() >= 1300080) {
+ if (__realpathat(AT_FDCWD, path, resolved, PATH_MAX, 0) == 0)
+ return (resolved);
}
res = realpath1(path, resolved);
if (res == NULL)
Modified: projects/clang1000-import/lib/ncurses/ncurses/Makefile
==============================================================================
--- projects/clang1000-import/lib/ncurses/ncurses/Makefile Thu Feb 20 17:26:08 2020 (r358178)
+++ projects/clang1000-import/lib/ncurses/ncurses/Makefile Thu Feb 20 19:07:29 2020 (r358179)
@@ -13,7 +13,7 @@ MK_MAN=no
.include "${.CURDIR:H}/config.mk"
LIB= ncurses${LIB_SUFFIX}
-SHLIB_MAJOR= 8
+SHLIB_MAJOR= 9
NO_LINT=
@@ -292,7 +292,6 @@ CLEANFILES= ${GENSRCS} ${GENHDRS} keys.list make_hash
make_keys MKterm.h.awk comp_captab.c curses.head
CFLAGS+= -DFREEBSD_NATIVE -DTERMIOS
-CFLAGS.lib_freeall.c+= -Wno-missing-prototypes
# Installed
HEADERS= curses.h term.h termcap.h unctrl.h
Modified: projects/clang1000-import/libexec/rtld-elf/rtld-libc/Makefile.inc
==============================================================================
--- projects/clang1000-import/libexec/rtld-elf/rtld-libc/Makefile.inc Thu Feb 20 17:26:08 2020 (r358178)
+++ projects/clang1000-import/libexec/rtld-elf/rtld-libc/Makefile.inc Thu Feb 20 19:07:29 2020 (r358179)
@@ -49,7 +49,7 @@ _libc_other_objects= sigsetjmp lstat stat fstat fstata
sysarch __sysctl issetugid __getcwd utrace \
thr_self thr_kill pread mmap lseek _exit _fstat _fstatat _fstatfs \
getdirentries _getdirentries _close _fcntl _open _openat _read \
- _sigprocmask _write readlink _setjmp setjmp setjmperr
+ _sigprocmask _write readlink __realpathat _setjmp setjmp setjmperr
# Finally add additional architecture-dependent libc dependencies
Modified: projects/clang1000-import/share/man/man4/Makefile
==============================================================================
--- projects/clang1000-import/share/man/man4/Makefile Thu Feb 20 17:26:08 2020 (r358178)
+++ projects/clang1000-import/share/man/man4/Makefile Thu Feb 20 19:07:29 2020 (r358179)
@@ -192,6 +192,7 @@ MAN= aac.4 \
${_hv_vmbus.4} \
${_hv_vss.4} \
hwpmc.4 \
+ ${_hwpstate_intel.4} \
iavf.4 \
ichsmb.4 \
${_ichwd.4} \
@@ -787,6 +788,7 @@ _hv_storvsc.4= hv_storvsc.4
_hv_utils.4= hv_utils.4
_hv_vmbus.4= hv_vmbus.4
_hv_vss.4= hv_vss.4
+_hwpstate_intel.4= hwpstate_intel.4
_i8254.4= i8254.4
_ichwd.4= ichwd.4
_if_bxe.4= if_bxe.4
Modified: projects/clang1000-import/stand/efi/libefi/efi_driver_utils.c
==============================================================================
--- projects/clang1000-import/stand/efi/libefi/efi_driver_utils.c Thu Feb 20 17:26:08 2020 (r358178)
+++ projects/clang1000-import/stand/efi/libefi/efi_driver_utils.c Thu Feb 20 19:07:29 2020 (r358179)
@@ -52,6 +52,8 @@ connect_controllers(EFI_GUID *filter)
}
handles = malloc(hsize);
+ if (handles == NULL)
+ return (EFI_OUT_OF_RESOURCES);
nhandles = hsize / sizeof(EFI_HANDLE);
status = BS->LocateHandle(ByProtocol, filter, NULL,
Modified: projects/clang1000-import/stand/efi/libefi/efihttp.c
==============================================================================
--- projects/clang1000-import/stand/efi/libefi/efihttp.c Thu Feb 20 17:26:08 2020 (r358178)
+++ projects/clang1000-import/stand/efi/libefi/efihttp.c Thu Feb 20 19:07:29 2020 (r358179)
@@ -701,6 +701,8 @@ efihttp_fs_seek(struct open_file *f, off_t offset, int
return (0);
if (where == SEEK_SET && fh->offset < offset) {
buf = malloc(1500);
+ if (buf == NULL)
+ return (ENOMEM);
res = offset - fh->offset;
while (res > 0) {
err = _efihttp_fs_read(f, buf, min(1500, res), &res2);
Modified: projects/clang1000-import/stand/efi/libefi/efinet.c
==============================================================================
--- projects/clang1000-import/stand/efi/libefi/efinet.c Thu Feb 20 17:26:08 2020 (r358178)
+++ projects/clang1000-import/stand/efi/libefi/efinet.c Thu Feb 20 19:07:29 2020 (r358179)
@@ -371,6 +371,8 @@ efinet_dev_init()
status = BS->LocateHandle(ByProtocol, &sn_guid, NULL, &sz, NULL);
if (status == EFI_BUFFER_TOO_SMALL) {
handles = (EFI_HANDLE *)malloc(sz);
+ if (handles == NULL)
+ return (ENOMEM);
status = BS->LocateHandle(ByProtocol, &sn_guid, NULL, &sz,
handles);
if (EFI_ERROR(status))
Modified: projects/clang1000-import/stand/efi/libefi/efipart.c
==============================================================================
--- projects/clang1000-import/stand/efi/libefi/efipart.c Thu Feb 20 17:26:08 2020 (r358178)
+++ projects/clang1000-import/stand/efi/libefi/efipart.c Thu Feb 20 19:07:29 2020 (r358179)
@@ -363,6 +363,8 @@ efipart_inithandles(void)
status = BS->LocateHandle(ByProtocol, &blkio_guid, 0, &sz, hin);
if (status == EFI_BUFFER_TOO_SMALL) {
hin = malloc(sz);
+ if (hin == NULL)
+ return (ENOMEM);
status = BS->LocateHandle(ByProtocol, &blkio_guid, 0, &sz,
hin);
if (EFI_ERROR(status))
Modified: projects/clang1000-import/stand/efi/libefi/efizfs.c
==============================================================================
--- projects/clang1000-import/stand/efi/libefi/efizfs.c Thu Feb 20 17:26:08 2020 (r358178)
+++ projects/clang1000-import/stand/efi/libefi/efizfs.c Thu Feb 20 19:07:29 2020 (r358179)
@@ -86,9 +86,11 @@ insert_zfs(EFI_HANDLE handle, uint64_t guid)
zfsinfo_t *zi;
zi = malloc(sizeof(zfsinfo_t));
- zi->zi_handle = handle;
- zi->zi_pool_guid = guid;
- STAILQ_INSERT_TAIL(&zfsinfo, zi, zi_link);
+ if (zi != NULL) {
+ zi->zi_handle = handle;
+ zi->zi_pool_guid = guid;
+ STAILQ_INSERT_TAIL(&zfsinfo, zi, zi_link);
+ }
}
void
Modified: projects/clang1000-import/stand/efi/libefi/handles.c
==============================================================================
--- projects/clang1000-import/stand/efi/libefi/handles.c Thu Feb 20 17:26:08 2020 (r358178)
+++ projects/clang1000-import/stand/efi/libefi/handles.c Thu Feb 20 19:07:29 2020 (r358179)
@@ -52,6 +52,8 @@ efi_register_handles(struct devsw *sw, EFI_HANDLE *han
nentries += count;
sz = nentries * sizeof(struct entry);
entry = (entry == NULL) ? malloc(sz) : realloc(entry, sz);
+ if (entry == NULL)
+ return (ENOMEM);
for (unit = 0; idx < nentries; idx++, unit++) {
entry[idx].handle = handles[unit];
if (aliases != NULL)
Modified: projects/clang1000-import/stand/efi/loader/Makefile
==============================================================================
--- projects/clang1000-import/stand/efi/loader/Makefile Thu Feb 20 17:26:08 2020 (r358178)
+++ projects/clang1000-import/stand/efi/loader/Makefile Thu Feb 20 19:07:29 2020 (r358179)
@@ -22,7 +22,6 @@ SRCS= autoload.c \
framebuffer.c \
main.c \
self_reloc.c \
- smbios.c \
vers.c
CFLAGS+= -I${.CURDIR}/../loader
@@ -45,8 +44,6 @@ CWARNFLAGS.main.c+= -Wno-format
.PATH: ${.CURDIR}/../loader
.PATH: ${.CURDIR}/../loader/arch/${MACHINE}
-# For smbios.c XXX need to abstract properly
-.PATH: ${BOOTSRC}/i386/libi386
.include "${.CURDIR}/../loader/arch/${MACHINE}/Makefile.inc"
CFLAGS+= -I${.CURDIR}
@@ -56,18 +53,6 @@ CFLAGS+= -I${EFISRC}/include/${MACHINE}
CFLAGS+= -I${SYSDIR}/contrib/dev/acpica/include
CFLAGS+= -I${BOOTSRC}/i386/libi386
CFLAGS+= -DEFI
-
-.if !defined(BOOT_HIDE_SERIAL_NUMBERS)
-# Export serial numbers, UUID, and asset tag from loader.
-CFLAGS+= -DSMBIOS_SERIAL_NUMBERS
-.if defined(BOOT_LITTLE_ENDIAN_UUID)
-# Use little-endian UUID format as defined in SMBIOS 2.6.
-CFLAGS+= -DSMBIOS_LITTLE_ENDIAN_UUID
-.elif defined(BOOT_NETWORK_ENDIAN_UUID)
-# Use network-endian UUID format for backward compatibility.
-CFLAGS+= -DSMBIOS_NETWORK_ENDIAN_UUID
-.endif
-.endif
.if defined(HAVE_FDT) && ${MK_FDT} != "no"
.include "${BOOTSRC}/fdt.mk"
Modified: projects/clang1000-import/stand/efi/loader/main.c
==============================================================================
--- projects/clang1000-import/stand/efi/loader/main.c Thu Feb 20 17:26:08 2020 (r358178)
+++ projects/clang1000-import/stand/efi/loader/main.c Thu Feb 20 19:07:29 2020 (r358179)
@@ -852,7 +852,11 @@ read_loader_env(const char *name, char *def_fn, bool o
}
}
-
+caddr_t
+ptov(uintptr_t x)
+{
+ return ((caddr_t)x);
+}
EFI_STATUS
main(int argc, CHAR16 *argv[])
Modified: projects/clang1000-import/stand/i386/libi386/Makefile
==============================================================================
--- projects/clang1000-import/stand/i386/libi386/Makefile Thu Feb 20 17:26:08 2020 (r358178)
+++ projects/clang1000-import/stand/i386/libi386/Makefile Thu Feb 20 19:07:29 2020 (r358179)
@@ -9,7 +9,7 @@ SRCS= bio.c biosacpi.c biosdisk.c biosmem.c biospnp.c
comconsole.c devicename.c elf32_freebsd.c \
elf64_freebsd.c multiboot.c multiboot_tramp.S relocater_tramp.S \
i386_copy.c i386_module.c nullconsole.c pxe.c pxetramp.S \
- smbios.c time.c vidconsole.c amd64_tramp.S spinconsole.c
+ time.c vidconsole.c amd64_tramp.S spinconsole.c
.PATH: ${ZFSSRC}
SRCS+= devicename_stubs.c
CFLAGS+= -I${ZFSSRC}
@@ -26,18 +26,6 @@ CFLAGS+= -DCOMSPEED=${BOOT_COMCONSOLE_SPEED}
.ifdef(BOOT_BIOSDISK_DEBUG)
# Make the disk code more talkative
CFLAGS+= -DDISK_DEBUG
-.endif
-
-.if !defined(BOOT_HIDE_SERIAL_NUMBERS)
-# Export serial numbers, UUID, and asset tag from loader.
-CFLAGS+= -DSMBIOS_SERIAL_NUMBERS
-.if defined(BOOT_LITTLE_ENDIAN_UUID)
-# Use little-endian UUID format as defined in SMBIOS 2.6.
-CFLAGS+= -DSMBIOS_LITTLE_ENDIAN_UUID
-.elif defined(BOOT_NETWORK_ENDIAN_UUID)
-# Use network-endian UUID format for backward compatibility.
-CFLAGS+= -DSMBIOS_NETWORK_ENDIAN_UUID
-.endif
.endif
# terminal emulation
Modified: projects/clang1000-import/stand/i386/loader/main.c
==============================================================================
--- projects/clang1000-import/stand/i386/loader/main.c Thu Feb 20 17:26:08 2020 (r358178)
+++ projects/clang1000-import/stand/i386/loader/main.c Thu Feb 20 19:07:29 2020 (r358179)
@@ -45,7 +45,7 @@ __FBSDID("$FreeBSD$");
#include "bootstrap.h"
#include "common/bootargs.h"
#include "libi386/libi386.h"
-#include "libi386/smbios.h"
+#include <smbios.h>
#include "btxv86.h"
#ifdef LOADER_ZFS_SUPPORT
@@ -85,6 +85,12 @@ extern char end[];
static void *heap_top;
static void *heap_bottom;
+
+caddr_t
+ptov(uintptr_t x)
+{
+ return (PTOV(x));
+}
int
main(void)
Modified: projects/clang1000-import/stand/libsa/Makefile
==============================================================================
--- projects/clang1000-import/stand/libsa/Makefile Thu Feb 20 17:26:08 2020 (r358178)
+++ projects/clang1000-import/stand/libsa/Makefile Thu Feb 20 19:07:29 2020 (r358179)
@@ -137,6 +137,20 @@ CLEANFILES+= ${SAFE_INCS} ${STAND_H_INC} ${OTHER_INC}
SRCS+= closeall.c dev.c ioctl.c nullfs.c stat.c \
fstat.c close.c lseek.c open.c read.c write.c readdir.c
+# SMBios routines
+SRCS+= smbios.c
+.if !defined(BOOT_HIDE_SERIAL_NUMBERS)
+# Export serial numbers, UUID, and asset tag from loader.
+CFLAGS.smbios.c+= -DSMBIOS_SERIAL_NUMBERS
+.if defined(BOOT_LITTLE_ENDIAN_UUID)
+# Use little-endian UUID format as defined in SMBIOS 2.6.
+CFLAGS.smbios.c+= -DSMBIOS_LITTLE_ENDIAN_UUID
+.elif defined(BOOT_NETWORK_ENDIAN_UUID)
+# Use network-endian UUID format for backward compatibility.
+CFLAGS.smbios.c+= -DSMBIOS_NETWORK_ENDIAN_UUID
+.endif
+.endif
+
# network routines
SRCS+= arp.c ether.c ip.c inet_ntoa.c in_cksum.c net.c udp.c netif.c rpc.c
Copied: projects/clang1000-import/stand/libsa/smbios.c (from r358166, head/stand/libsa/smbios.c)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ projects/clang1000-import/stand/libsa/smbios.c Thu Feb 20 19:07:29 2020 (r358179, copy of r358166, head/stand/libsa/smbios.c)
@@ -0,0 +1,447 @@
+/*-
+ * Copyright (c) 2005-2009 Jung-uk Kim <jkim at FreeBSD.org>
+ * All rights reserved.
+ *
+ * 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 <sys/endian.h>
+
+#define PTOV(x) ptov(x)
+
+/*
+ * Detect SMBIOS and export information about the SMBIOS into the
+ * environment.
+ *
+ * System Management BIOS Reference Specification, v2.6 Final
+ * http://www.dmtf.org/standards/published_documents/DSP0134_2.6.0.pdf
+ */
+
+/*
+ * 2.1.1 SMBIOS Structure Table Entry Point
+ *
+ * "On non-EFI systems, the SMBIOS Entry Point structure, described below, can
+ * be located by application software by searching for the anchor-string on
+ * paragraph (16-byte) boundaries within the physical memory address range
+ * 000F0000h to 000FFFFFh. This entry point encapsulates an intermediate anchor
+ * string that is used by some existing DMI browsers."
+ */
+#define SMBIOS_START 0xf0000
+#define SMBIOS_LENGTH 0x10000
+#define SMBIOS_STEP 0x10
+#define SMBIOS_SIG "_SM_"
+#define SMBIOS_DMI_SIG "_DMI_"
+
+#define SMBIOS_GET8(base, off) (*(uint8_t *)((base) + (off)))
+#define SMBIOS_GET16(base, off) (*(uint16_t *)((base) + (off)))
+#define SMBIOS_GET32(base, off) (*(uint32_t *)((base) + (off)))
+
+#define SMBIOS_GETLEN(base) SMBIOS_GET8(base, 0x01)
+#define SMBIOS_GETSTR(base) ((base) + SMBIOS_GETLEN(base))
+
+struct smbios_attr {
+ int probed;
+ caddr_t addr;
+ size_t length;
+ size_t count;
+ int major;
+ int minor;
+ int ver;
+ const char* bios_vendor;
+ const char* maker;
+ const char* product;
+ uint32_t enabled_memory;
+ uint32_t old_enabled_memory;
+ uint8_t enabled_sockets;
+ uint8_t populated_sockets;
+};
+
+static struct smbios_attr smbios;
+
+static uint8_t
+smbios_checksum(const caddr_t addr, const uint8_t len)
+{
+ uint8_t sum;
+ int i;
+
+ for (sum = 0, i = 0; i < len; i++)
+ sum += SMBIOS_GET8(addr, i);
+ return (sum);
+}
+
+static caddr_t
+smbios_sigsearch(const caddr_t addr, const uint32_t len)
+{
+ caddr_t cp;
+
+ /* Search on 16-byte boundaries. */
+ for (cp = addr; cp < addr + len; cp += SMBIOS_STEP)
+ if (strncmp(cp, SMBIOS_SIG, 4) == 0 &&
+ smbios_checksum(cp, SMBIOS_GET8(cp, 0x05)) == 0 &&
+ strncmp(cp + 0x10, SMBIOS_DMI_SIG, 5) == 0 &&
+ smbios_checksum(cp + 0x10, 0x0f) == 0)
+ return (cp);
+ return (NULL);
+}
+
+static const char*
+smbios_getstring(caddr_t addr, const int offset)
+{
+ caddr_t cp;
+ int i, idx;
+
+ idx = SMBIOS_GET8(addr, offset);
+ if (idx != 0) {
+ cp = SMBIOS_GETSTR(addr);
+ for (i = 1; i < idx; i++)
+ cp += strlen(cp) + 1;
+ return cp;
+ }
+ return (NULL);
+}
+
+static void
+smbios_setenv(const char *name, caddr_t addr, const int offset)
+{
+ const char* val;
+
+ val = smbios_getstring(addr, offset);
+ if (val != NULL)
+ setenv(name, val, 1);
+}
+
+#ifdef SMBIOS_SERIAL_NUMBERS
+
+#define UUID_SIZE 16
+#define UUID_TYPE uint32_t
+#define UUID_STEP sizeof(UUID_TYPE)
+#define UUID_ALL_BITS (UUID_SIZE / UUID_STEP)
+#define UUID_GET(base, off) (*(UUID_TYPE *)((base) + (off)))
+
+static void
+smbios_setuuid(const char *name, const caddr_t addr, const int ver)
+{
+ char uuid[37];
+ int byteorder, i, ones, zeros;
+ UUID_TYPE n;
+ uint32_t f1;
+ uint16_t f2, f3;
+
+ for (i = 0, ones = 0, zeros = 0; i < UUID_SIZE; i += UUID_STEP) {
+ n = UUID_GET(addr, i) + 1;
+ if (zeros == 0 && n == 0)
+ ones++;
+ else if (ones == 0 && n == 1)
+ zeros++;
+ else
+ break;
+ }
+
+ if (ones != UUID_ALL_BITS && zeros != UUID_ALL_BITS) {
+ /*
+ * 3.3.2.1 System UUID
+ *
+ * "Although RFC 4122 recommends network byte order for all
+ * fields, the PC industry (including the ACPI, UEFI, and
+ * Microsoft specifications) has consistently used
+ * little-endian byte encoding for the first three fields:
+ * time_low, time_mid, time_hi_and_version. The same encoding,
+ * also known as wire format, should also be used for the
+ * SMBIOS representation of the UUID."
+ *
+ * Note: We use network byte order for backward compatibility
+ * unless SMBIOS version is 2.6+ or little-endian is forced.
+ */
+#if defined(SMBIOS_LITTLE_ENDIAN_UUID)
+ byteorder = LITTLE_ENDIAN;
+#elif defined(SMBIOS_NETWORK_ENDIAN_UUID)
+ byteorder = BIG_ENDIAN;
+#else
+ byteorder = ver < 0x0206 ? BIG_ENDIAN : LITTLE_ENDIAN;
+#endif
+ if (byteorder != LITTLE_ENDIAN) {
+ f1 = ntohl(SMBIOS_GET32(addr, 0));
+ f2 = ntohs(SMBIOS_GET16(addr, 4));
+ f3 = ntohs(SMBIOS_GET16(addr, 6));
+ } else {
+ f1 = le32toh(SMBIOS_GET32(addr, 0));
+ f2 = le16toh(SMBIOS_GET16(addr, 4));
+ f3 = le16toh(SMBIOS_GET16(addr, 6));
+ }
+ sprintf(uuid,
+ "%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x",
+ f1, f2, f3, SMBIOS_GET8(addr, 8), SMBIOS_GET8(addr, 9),
+ SMBIOS_GET8(addr, 10), SMBIOS_GET8(addr, 11),
+ SMBIOS_GET8(addr, 12), SMBIOS_GET8(addr, 13),
+ SMBIOS_GET8(addr, 14), SMBIOS_GET8(addr, 15));
+ setenv(name, uuid, 1);
+ }
+}
+
+#undef UUID_SIZE
+#undef UUID_TYPE
+#undef UUID_STEP
+#undef UUID_ALL_BITS
+#undef UUID_GET
+
+#endif
+
+static caddr_t
+smbios_parse_table(const caddr_t addr)
+{
+ caddr_t cp;
+ int proc, size, osize, type;
+
+ type = SMBIOS_GET8(addr, 0); /* 3.1.2 Structure Header Format */
+ switch(type) {
+ case 0: /* 3.3.1 BIOS Information (Type 0) */
+ smbios_setenv("smbios.bios.vendor", addr, 0x04);
+ smbios_setenv("smbios.bios.version", addr, 0x05);
+ smbios_setenv("smbios.bios.reldate", addr, 0x08);
+ break;
+
+ case 1: /* 3.3.2 System Information (Type 1) */
+ smbios_setenv("smbios.system.maker", addr, 0x04);
+ smbios_setenv("smbios.system.product", addr, 0x05);
+ smbios_setenv("smbios.system.version", addr, 0x06);
+#ifdef SMBIOS_SERIAL_NUMBERS
+ smbios_setenv("smbios.system.serial", addr, 0x07);
+ smbios_setuuid("smbios.system.uuid", addr + 0x08, smbios.ver);
+#endif
+ if (smbios.major > 2 ||
+ (smbios.major == 2 && smbios.minor >= 4)) {
+ smbios_setenv("smbios.system.sku", addr, 0x19);
+ smbios_setenv("smbios.system.family", addr, 0x1a);
+ }
+ break;
+
+ case 2: /* 3.3.3 Base Board (or Module) Information (Type 2) */
+ smbios_setenv("smbios.planar.maker", addr, 0x04);
+ smbios_setenv("smbios.planar.product", addr, 0x05);
+ smbios_setenv("smbios.planar.version", addr, 0x06);
+#ifdef SMBIOS_SERIAL_NUMBERS
+ smbios_setenv("smbios.planar.serial", addr, 0x07);
+ smbios_setenv("smbios.planar.tag", addr, 0x08);
+#endif
+ smbios_setenv("smbios.planar.location", addr, 0x0a);
+ break;
+
+ case 3: /* 3.3.4 System Enclosure or Chassis (Type 3) */
+ smbios_setenv("smbios.chassis.maker", addr, 0x04);
+ smbios_setenv("smbios.chassis.version", addr, 0x06);
+#ifdef SMBIOS_SERIAL_NUMBERS
+ smbios_setenv("smbios.chassis.serial", addr, 0x07);
+ smbios_setenv("smbios.chassis.tag", addr, 0x08);
+#endif
+ break;
+
+ case 4: /* 3.3.5 Processor Information (Type 4) */
+ /*
+ * Offset 18h: Processor Status
+ *
+ * Bit 7 Reserved, must be 0
+ * Bit 6 CPU Socket Populated
+ * 1 - CPU Socket Populated
+ * 0 - CPU Socket Unpopulated
+ * Bit 5:3 Reserved, must be zero
+ * Bit 2:0 CPU Status
+ * 0h - Unknown
+ * 1h - CPU Enabled
+ * 2h - CPU Disabled by User via BIOS Setup
+ * 3h - CPU Disabled by BIOS (POST Error)
+ * 4h - CPU is Idle, waiting to be enabled
+ * 5-6h - Reserved
+ * 7h - Other
+ */
+ proc = SMBIOS_GET8(addr, 0x18);
+ if ((proc & 0x07) == 1)
+ smbios.enabled_sockets++;
+ if ((proc & 0x40) != 0)
+ smbios.populated_sockets++;
+ break;
+
+ case 6: /* 3.3.7 Memory Module Information (Type 6, Obsolete) */
+ /*
+ * Offset 0Ah: Enabled Size
+ *
+ * Bit 7 Bank connection
+ * 1 - Double-bank connection
+ * 0 - Single-bank connection
+ * Bit 6:0 Size (n), where 2**n is the size in MB
+ * 7Dh - Not determinable (Installed Size only)
+ * 7Eh - Module is installed, but no memory
+ * has been enabled
+ * 7Fh - Not installed
+ */
+ osize = SMBIOS_GET8(addr, 0x0a) & 0x7f;
+ if (osize > 0 && osize < 22)
+ smbios.old_enabled_memory += 1 << (osize + 10);
+ break;
+
+ case 17: /* 3.3.18 Memory Device (Type 17) */
+ /*
+ * Offset 0Ch: Size
+ *
+ * Bit 15 Granularity
+ * 1 - Value is in kilobytes units
+ * 0 - Value is in megabytes units
+ * Bit 14:0 Size
+ */
+ size = SMBIOS_GET16(addr, 0x0c);
+ if (size != 0 && size != 0xffff)
+ smbios.enabled_memory += (size & 0x8000) != 0 ?
+ (size & 0x7fff) : (size << 10);
+ break;
+
+ default: /* skip other types */
+ break;
+ }
+
+ /* Find structure terminator. */
+ cp = SMBIOS_GETSTR(addr);
+ while (SMBIOS_GET16(cp, 0) != 0)
+ cp++;
+
+ return (cp + 2);
+}
+
+static caddr_t
+smbios_find_struct(int type)
+{
+ caddr_t dmi;
+ size_t i;
+
+ if (smbios.addr == NULL)
+ return (NULL);
+
+ for (dmi = smbios.addr, i = 0;
+ dmi < smbios.addr + smbios.length && i < smbios.count; i++) {
+ if (SMBIOS_GET8(dmi, 0) == type)
+ return dmi;
+ /* Find structure terminator. */
+ dmi = SMBIOS_GETSTR(dmi);
+ while (SMBIOS_GET16(dmi, 0) != 0)
+ dmi++;
+ dmi += 2;
+ }
+
+ return (NULL);
+}
+
+static void
+smbios_probe(const caddr_t addr)
+{
+ caddr_t saddr, info;
+ uintptr_t paddr;
+
+ if (smbios.probed)
+ return;
+ smbios.probed = 1;
+
+ /* Search signatures and validate checksums. */
+ saddr = smbios_sigsearch(addr ? addr : PTOV(SMBIOS_START),
+ SMBIOS_LENGTH);
+ if (saddr == NULL)
+ return;
+
+ smbios.length = SMBIOS_GET16(saddr, 0x16); /* Structure Table Length */
+ paddr = SMBIOS_GET32(saddr, 0x18); /* Structure Table Address */
+ smbios.count = SMBIOS_GET16(saddr, 0x1c); /* No of SMBIOS Structures */
+ smbios.ver = SMBIOS_GET8(saddr, 0x1e); /* SMBIOS BCD Revision */
+
+ if (smbios.ver != 0) {
+ smbios.major = smbios.ver >> 4;
+ smbios.minor = smbios.ver & 0x0f;
+ if (smbios.major > 9 || smbios.minor > 9)
+ smbios.ver = 0;
+ }
+ if (smbios.ver == 0) {
+ smbios.major = SMBIOS_GET8(saddr, 0x06);/* SMBIOS Major Version */
+ smbios.minor = SMBIOS_GET8(saddr, 0x07);/* SMBIOS Minor Version */
+ }
+ smbios.ver = (smbios.major << 8) | smbios.minor;
+ smbios.addr = PTOV(paddr);
+
+ /* Get system information from SMBIOS */
+ info = smbios_find_struct(0x00);
+ if (info != NULL) {
+ smbios.bios_vendor = smbios_getstring(info, 0x04);
+ }
+ info = smbios_find_struct(0x01);
+ if (info != NULL) {
+ smbios.maker = smbios_getstring(info, 0x04);
+ smbios.product = smbios_getstring(info, 0x05);
+ }
+}
+
+void
+smbios_detect(const caddr_t addr)
+{
+ char buf[16];
+ caddr_t dmi;
+ size_t i;
+
+ smbios_probe(addr);
+ if (smbios.addr == NULL)
+ return;
+
+ for (dmi = smbios.addr, i = 0;
+ dmi < smbios.addr + smbios.length && i < smbios.count; i++)
+ dmi = smbios_parse_table(dmi);
+
+ sprintf(buf, "%d.%d", smbios.major, smbios.minor);
+ setenv("smbios.version", buf, 1);
+ if (smbios.enabled_memory > 0 || smbios.old_enabled_memory > 0) {
+ sprintf(buf, "%u", smbios.enabled_memory > 0 ?
+ smbios.enabled_memory : smbios.old_enabled_memory);
+ setenv("smbios.memory.enabled", buf, 1);
+ }
+ if (smbios.enabled_sockets > 0) {
+ sprintf(buf, "%u", smbios.enabled_sockets);
+ setenv("smbios.socket.enabled", buf, 1);
+ }
+ if (smbios.populated_sockets > 0) {
+ sprintf(buf, "%u", smbios.populated_sockets);
+ setenv("smbios.socket.populated", buf, 1);
+ }
+}
+
+static int
+smbios_match_str(const char* s1, const char* s2)
+{
+ return (s1 == NULL || (s2 != NULL && !strcmp(s1, s2)));
+}
+
+int
+smbios_match(const char* bios_vendor, const char* maker,
+ const char* product)
+{
+ /* XXXRP currently, only called from non-EFI. */
+ smbios_probe(NULL);
+ return (smbios_match_str(bios_vendor, smbios.bios_vendor) &&
+ smbios_match_str(maker, smbios.maker) &&
+ smbios_match_str(product, smbios.product));
+}
Copied: projects/clang1000-import/stand/libsa/smbios.h (from r358166, head/stand/libsa/smbios.h)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ projects/clang1000-import/stand/libsa/smbios.h Thu Feb 20 19:07:29 2020 (r358179, copy of r358166, head/stand/libsa/smbios.h)
@@ -0,0 +1,34 @@
+/*-
+ * Copyright (c) 2015 Rui Paulo <rpaulo at FreeBSD.org>
+ * All rights reserved.
+ *
+ * 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$
+ */
+#ifndef _SMBIOS_H_
+#define _SMBIOS_H_
+
+void smbios_detect(const caddr_t);
+int smbios_match(const char *, const char *, const char *);
+
+#endif /* _SMBIOS_H_ */
Modified: projects/clang1000-import/stand/libsa/stand.h
==============================================================================
--- projects/clang1000-import/stand/libsa/stand.h Thu Feb 20 17:26:08 2020 (r358178)
+++ projects/clang1000-import/stand/libsa/stand.h Thu Feb 20 19:07:29 2020 (r358179)
@@ -452,4 +452,9 @@ const char *x86_hypervisor(void);
#define reallocf(x, y) Reallocf(x, y, NULL, 0)
#endif
+/*
+ * va <-> pa routines. MD code must supply.
+ */
+caddr_t ptov(uintptr_t);
+
#endif /* STAND_H */
Modified: projects/clang1000-import/sys/bsm/audit_kevents.h
==============================================================================
--- projects/clang1000-import/sys/bsm/audit_kevents.h Thu Feb 20 17:26:08 2020 (r358178)
+++ projects/clang1000-import/sys/bsm/audit_kevents.h Thu Feb 20 19:07:29 2020 (r358179)
@@ -657,6 +657,7 @@
#define AUE_LGETUUID 43261 /* CADETS. */
#define AUE_EXECVEAT 43262 /* FreeBSD/Linux. */
#define AUE_SHMRENAME 43263 /* FreeBSD-specific. */
+#define AUE_REALPATHAT 43264 /* FreeBSD-specific. */
/*
* Darwin BSM uses a number of AUE_O_* definitions, which are aliased to the
Modified: projects/clang1000-import/sys/compat/freebsd32/freebsd32_syscall.h
==============================================================================
--- projects/clang1000-import/sys/compat/freebsd32/freebsd32_syscall.h Thu Feb 20 17:26:08 2020 (r358178)
+++ projects/clang1000-import/sys/compat/freebsd32/freebsd32_syscall.h Thu Feb 20 19:07:29 2020 (r358179)
@@ -500,4 +500,5 @@
#define FREEBSD32_SYS_shm_open2 571
#define FREEBSD32_SYS_shm_rename 572
#define FREEBSD32_SYS_sigfastblock 573
-#define FREEBSD32_SYS_MAXSYSCALL 574
+#define FREEBSD32_SYS___realpathat 574
+#define FREEBSD32_SYS_MAXSYSCALL 575
Modified: projects/clang1000-import/sys/compat/freebsd32/freebsd32_syscalls.c
==============================================================================
--- projects/clang1000-import/sys/compat/freebsd32/freebsd32_syscalls.c Thu Feb 20 17:26:08 2020 (r358178)
+++ projects/clang1000-import/sys/compat/freebsd32/freebsd32_syscalls.c Thu Feb 20 19:07:29 2020 (r358179)
@@ -610,4 +610,5 @@ const char *freebsd32_syscallnames[] = {
"shm_open2", /* 571 = shm_open2 */
"shm_rename", /* 572 = shm_rename */
"sigfastblock", /* 573 = sigfastblock */
+ "__realpathat", /* 574 = __realpathat */
};
Modified: projects/clang1000-import/sys/compat/freebsd32/freebsd32_sysent.c
==============================================================================
--- projects/clang1000-import/sys/compat/freebsd32/freebsd32_sysent.c Thu Feb 20 17:26:08 2020 (r358178)
+++ projects/clang1000-import/sys/compat/freebsd32/freebsd32_sysent.c Thu Feb 20 19:07:29 2020 (r358179)
@@ -663,4 +663,5 @@ struct sysent freebsd32_sysent[] = {
{ AS(shm_open2_args), (sy_call_t *)sys_shm_open2, AUE_SHMOPEN, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 571 = shm_open2 */
{ AS(shm_rename_args), (sy_call_t *)sys_shm_rename, AUE_SHMRENAME, NULL, 0, 0, 0, SY_THR_STATIC }, /* 572 = shm_rename */
{ AS(sigfastblock_args), (sy_call_t *)sys_sigfastblock, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 573 = sigfastblock */
+ { AS(__realpathat_args), (sy_call_t *)sys___realpathat, AUE_REALPATHAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 574 = __realpathat */
};
Modified: projects/clang1000-import/sys/compat/freebsd32/freebsd32_systrace_args.c
==============================================================================
--- projects/clang1000-import/sys/compat/freebsd32/freebsd32_systrace_args.c Thu Feb 20 17:26:08 2020 (r358178)
+++ projects/clang1000-import/sys/compat/freebsd32/freebsd32_systrace_args.c Thu Feb 20 19:07:29 2020 (r358179)
@@ -3363,6 +3363,17 @@ systrace_args(int sysnum, void *params, uint64_t *uarg
*n_args = 2;
break;
}
+ /* __realpathat */
+ case 574: {
+ struct __realpathat_args *p = params;
+ iarg[0] = p->fd; /* int */
+ uarg[1] = (intptr_t) p->path; /* const char * */
+ uarg[2] = (intptr_t) p->buf; /* char * */
+ uarg[3] = p->size; /* size_t */
+ iarg[4] = p->flags; /* int */
+ *n_args = 5;
+ break;
+ }
default:
*n_args = 0;
break;
@@ -9062,6 +9073,28 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *d
break;
};
break;
+ /* __realpathat */
+ case 574:
+ switch(ndx) {
+ case 0:
+ p = "int";
+ break;
+ case 1:
+ p = "userland const char *";
+ break;
+ case 2:
+ p = "userland char *";
+ break;
+ case 3:
+ p = "size_t";
+ break;
+ case 4:
+ p = "int";
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-src-projects
mailing list