svn commit: r358263 - in projects/clang1000-import: share/misc stand/common sys/conf sys/fs/nfsclient sys/kern sys/riscv/include sys/sys sys/vm
Dimitry Andric
dim at FreeBSD.org
Sun Feb 23 21:48:57 UTC 2020
Author: dim
Date: Sun Feb 23 21:48:48 2020
New Revision: 358263
URL: https://svnweb.freebsd.org/changeset/base/358263
Log:
Merge ^/head r358239 through r358262.
Modified:
projects/clang1000-import/share/misc/bsd-family-tree
projects/clang1000-import/share/misc/committers-ports.dot
projects/clang1000-import/stand/common/misc.c
projects/clang1000-import/sys/conf/Makefile.riscv
projects/clang1000-import/sys/fs/nfsclient/nfs_clbio.c
projects/clang1000-import/sys/fs/nfsclient/nfs_clport.c
projects/clang1000-import/sys/kern/kern_cons.c
projects/clang1000-import/sys/kern/kern_linker.c
projects/clang1000-import/sys/kern/kern_malloc.c
projects/clang1000-import/sys/kern/kern_shutdown.c
projects/clang1000-import/sys/kern/kern_sig.c
projects/clang1000-import/sys/kern/kern_thread.c
projects/clang1000-import/sys/kern/link_elf.c
projects/clang1000-import/sys/kern/vfs_subr.c
projects/clang1000-import/sys/kern/vfs_vnops.c
projects/clang1000-import/sys/kern/vnode_if.src
projects/clang1000-import/sys/riscv/include/param.h
projects/clang1000-import/sys/sys/buf.h
projects/clang1000-import/sys/sys/bufobj.h
projects/clang1000-import/sys/sys/conf.h
projects/clang1000-import/sys/sys/cons.h
projects/clang1000-import/sys/sys/proc.h
projects/clang1000-import/sys/sys/signalvar.h
projects/clang1000-import/sys/sys/vnode.h
projects/clang1000-import/sys/vm/swap_pager.c
projects/clang1000-import/sys/vm/uma.h
projects/clang1000-import/sys/vm/uma_core.c
projects/clang1000-import/sys/vm/vm_map.c
projects/clang1000-import/sys/vm/vm_object.c
projects/clang1000-import/sys/vm/vm_object.h
projects/clang1000-import/sys/vm/vm_page.c
projects/clang1000-import/sys/vm/vm_pager.c
projects/clang1000-import/sys/vm/vm_radix.c
Directory Properties:
projects/clang1000-import/ (props changed)
Modified: projects/clang1000-import/share/misc/bsd-family-tree
==============================================================================
--- projects/clang1000-import/share/misc/bsd-family-tree Sun Feb 23 19:04:15 2020 (r358262)
+++ projects/clang1000-import/share/misc/bsd-family-tree Sun Feb 23 21:48:48 2020 (r358263)
@@ -388,11 +388,11 @@ FreeBSD 5.2 | | |
| | | | | | | DragonFly 5.2.2
| FreeBSD | | | *--NetBSD | |
| 11.2 | | | 7.2 | |
- | | macOS | | | | |
- | | 10.14 | | | OpenBSD 6.4 |
- | | | | | | | |
- | | | | | | | DragonFly 5.4.0
- *--FreeBSD | | | | v | |
+ | | macOS | | | |
+ | | 10.14 | | OpenBSD 6.4 |
+ | | | | | | |
+ | | | | | | DragonFly 5.4.0
+ *--FreeBSD | | | | | |
| 12.0 | | | | | DragonFly 5.4.1
| | | | | | OpenBSD 6.5 |
| | | | | | | |
@@ -405,7 +405,8 @@ FreeBSD 5.2 | | |
| FreeBSD | | OpenBSD 6.6 |
| 12.1 macOS | | |
| | 10.15.1 | | DragonFly 5.6.2
- | v | | | |
+ | | | *--NetBSD | |
+ | v | | 9.0 | |
| | | | |
FreeBSD 13 -current | NetBSD -current OpenBSD -current DragonFly -current
| | | | |
@@ -798,6 +799,7 @@ OpenBSD 6.6 2019-10-17 [OBD]
macOS 10.15 2019-10-07 [APL]
macOS 10.15.1 2019-10-29 [APL] (security/critical release)
FreeBSD 12.1 2019-11-04 [FBD]
+NetBSD 9.0 2020-02-15 [NBD]
Bibliography
------------------------
Modified: projects/clang1000-import/share/misc/committers-ports.dot
==============================================================================
--- projects/clang1000-import/share/misc/committers-ports.dot Sun Feb 23 19:04:15 2020 (r358262)
+++ projects/clang1000-import/share/misc/committers-ports.dot Sun Feb 23 21:48:48 2020 (r358263)
@@ -238,6 +238,7 @@ rodrigo [label="Rodrigo Osorio\nrodrigo at FreeBSD.org\n2
romain [label="Romain Tartiere\nromain at FreeBSD.org\n2010/01/24"]
rpaulo [label="Rui Paulo\nrpaulo at FreeBSD.org\n2014/07/15"]
sahil [label="Sahil Tandon\nsahil at FreeBSD.org\n2010/04/11"]
+salvadore [label="Lorenzo Salvadore\nsalvadore at FreeBSD.org\n2020/02/21"]
samm [label="Alex Samorukov\nsamm at FreeBSD.org\n2019/10/09"]
sat [label="Andrew Pantyukhin\nsat at FreeBSD.org\n2006/05/06"]
sbruno [label="Sean Bruno\nsbruno at FreeBSD.org\n2014/09/14"]
@@ -459,6 +460,8 @@ garga -> rnoland
garga -> vd
garga -> wxs
garga -> xride
+
+gerald -> salvadore
glarkin -> avl
glarkin -> cs
Modified: projects/clang1000-import/stand/common/misc.c
==============================================================================
--- projects/clang1000-import/stand/common/misc.c Sun Feb 23 19:04:15 2020 (r358262)
+++ projects/clang1000-import/stand/common/misc.c Sun Feb 23 21:48:48 2020 (r358263)
@@ -149,6 +149,7 @@ alloc_pread(int fd, off_t off, size_t len)
#ifdef DEBUG
printf("\nmalloc(%d) failed\n", (int)len);
#endif
+ errno = ENOMEM;
return (NULL);
}
if (lseek(fd, off, SEEK_SET) == -1) {
Modified: projects/clang1000-import/sys/conf/Makefile.riscv
==============================================================================
--- projects/clang1000-import/sys/conf/Makefile.riscv Sun Feb 23 19:04:15 2020 (r358262)
+++ projects/clang1000-import/sys/conf/Makefile.riscv Sun Feb 23 21:48:48 2020 (r358263)
@@ -46,6 +46,10 @@ SYSTEM_LD= @${LD} -N -m ${LD_EMULATION} -Bdynamic -T $
CFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls
.endif
+# Currently, the compile flags don't let the kernel know if this is a hard-float
+# ABI build or a soft-float ABI build. We need to pass in this information.
+CFLAGS += -DMACHINE_ARCH=\"${MACHINE_ARCH}\"
+
# hack because genassym.c includes sys/bus.h which includes these.
genassym.o: bus_if.h device_if.h
Modified: projects/clang1000-import/sys/fs/nfsclient/nfs_clbio.c
==============================================================================
--- projects/clang1000-import/sys/fs/nfsclient/nfs_clbio.c Sun Feb 23 19:04:15 2020 (r358262)
+++ projects/clang1000-import/sys/fs/nfsclient/nfs_clbio.c Sun Feb 23 21:48:48 2020 (r358263)
@@ -425,14 +425,11 @@ int
ncl_bioread(struct vnode *vp, struct uio *uio, int ioflag, struct ucred *cred)
{
struct nfsnode *np = VTONFS(vp);
- int biosize, i;
struct buf *bp, *rabp;
struct thread *td;
struct nfsmount *nmp = VFSTONFS(vp->v_mount);
daddr_t lbn, rabn;
- int bcount;
- int seqcount;
- int nra, error = 0, n = 0, on = 0;
+ int biosize, bcount, error, i, n, nra, on, save2, seqcount;
off_t tmp_off;
KASSERT(uio->uio_rw == UIO_READ, ("ncl_read mode"));
@@ -464,6 +461,8 @@ ncl_bioread(struct vnode *vp, struct uio *uio, int iof
/* No caching/ no readaheads. Just read data into the user buffer */
return ncl_readrpc(vp, uio, cred);
+ n = 0;
+ on = 0;
biosize = vp->v_bufobj.bo_bsize;
seqcount = (int)((off_t)(ioflag >> IO_SEQSHIFT) * biosize / BKVASIZE);
@@ -471,6 +470,7 @@ ncl_bioread(struct vnode *vp, struct uio *uio, int iof
if (error)
return error;
+ save2 = curthread_pflags2_set(TDP2_SBPAGES);
do {
u_quad_t nsize;
@@ -495,7 +495,9 @@ ncl_bioread(struct vnode *vp, struct uio *uio, int iof
rabp = nfs_getcacheblk(vp, rabn, biosize, td);
if (!rabp) {
error = newnfs_sigintr(nmp, td);
- return (error ? error : EINTR);
+ if (error == 0)
+ error = EINTR;
+ goto out;
}
if ((rabp->b_flags & (B_CACHE|B_DELWRI)) == 0) {
rabp->b_flags |= B_ASYNC;
@@ -526,7 +528,9 @@ ncl_bioread(struct vnode *vp, struct uio *uio, int iof
if (!bp) {
error = newnfs_sigintr(nmp, td);
- return (error ? error : EINTR);
+ if (error == 0)
+ error = EINTR;
+ goto out;
}
/*
@@ -540,7 +544,7 @@ ncl_bioread(struct vnode *vp, struct uio *uio, int iof
error = ncl_doio(vp, bp, cred, td, 0);
if (error) {
brelse(bp);
- return (error);
+ goto out;
}
}
@@ -561,7 +565,9 @@ ncl_bioread(struct vnode *vp, struct uio *uio, int iof
bp = nfs_getcacheblk(vp, (daddr_t)0, NFS_MAXPATHLEN, td);
if (!bp) {
error = newnfs_sigintr(nmp, td);
- return (error ? error : EINTR);
+ if (error == 0)
+ error = EINTR;
+ goto out;
}
if ((bp->b_flags & B_CACHE) == 0) {
bp->b_iocmd = BIO_READ;
@@ -570,7 +576,7 @@ ncl_bioread(struct vnode *vp, struct uio *uio, int iof
if (error) {
bp->b_ioflags |= BIO_ERROR;
brelse(bp);
- return (error);
+ goto out;
}
}
n = MIN(uio->uio_resid, NFS_MAXPATHLEN - bp->b_resid);
@@ -580,14 +586,17 @@ ncl_bioread(struct vnode *vp, struct uio *uio, int iof
NFSINCRGLOBAL(nfsstatsv1.biocache_readdirs);
if (np->n_direofoffset
&& uio->uio_offset >= np->n_direofoffset) {
- return (0);
+ error = 0;
+ goto out;
}
lbn = (uoff_t)uio->uio_offset / NFS_DIRBLKSIZ;
on = uio->uio_offset & (NFS_DIRBLKSIZ - 1);
bp = nfs_getcacheblk(vp, lbn, NFS_DIRBLKSIZ, td);
if (!bp) {
- error = newnfs_sigintr(nmp, td);
- return (error ? error : EINTR);
+ error = newnfs_sigintr(nmp, td);
+ if (error == 0)
+ error = EINTR;
+ goto out;
}
if ((bp->b_flags & B_CACHE) == 0) {
bp->b_iocmd = BIO_READ;
@@ -612,12 +621,16 @@ ncl_bioread(struct vnode *vp, struct uio *uio, int iof
*/
for (i = 0; i <= lbn && !error; i++) {
if (np->n_direofoffset
- && (i * NFS_DIRBLKSIZ) >= np->n_direofoffset)
- return (0);
+ && (i * NFS_DIRBLKSIZ) >= np->n_direofoffset) {
+ error = 0;
+ goto out;
+ }
bp = nfs_getcacheblk(vp, i, NFS_DIRBLKSIZ, td);
if (!bp) {
error = newnfs_sigintr(nmp, td);
- return (error ? error : EINTR);
+ if (error == 0)
+ error = EINTR;
+ goto out;
}
if ((bp->b_flags & B_CACHE) == 0) {
bp->b_iocmd = BIO_READ;
@@ -646,7 +659,7 @@ ncl_bioread(struct vnode *vp, struct uio *uio, int iof
* we give up.
*/
if (error)
- return (error);
+ goto out;
}
/*
@@ -706,6 +719,12 @@ ncl_bioread(struct vnode *vp, struct uio *uio, int iof
if (bp != NULL)
brelse(bp);
} while (error == 0 && uio->uio_resid > 0 && n > 0);
+out:
+ curthread_pflags2_restore(save2);
+ if ((curthread->td_pflags2 & TDP2_SBPAGES) == 0) {
+ NFSLOCKNODE(np);
+ ncl_pager_setsize(vp, NULL);
+ }
return (error);
}
Modified: projects/clang1000-import/sys/fs/nfsclient/nfs_clport.c
==============================================================================
--- projects/clang1000-import/sys/fs/nfsclient/nfs_clport.c Sun Feb 23 19:04:15 2020 (r358262)
+++ projects/clang1000-import/sys/fs/nfsclient/nfs_clport.c Sun Feb 23 21:48:48 2020 (r358263)
@@ -597,7 +597,8 @@ ncl_pager_setsize(struct vnode *vp, u_quad_t *nsizep)
setnsize = false;
if (object != NULL && nsize != object->un_pager.vnp.vnp_size) {
- if (VOP_ISLOCKED(vp) == LK_EXCLUSIVE)
+ if (VOP_ISLOCKED(vp) == LK_EXCLUSIVE &&
+ (curthread->td_pflags2 & TDP2_SBPAGES) == 0)
setnsize = true;
else
np->n_flag |= NVNSETSZSKIP;
Modified: projects/clang1000-import/sys/kern/kern_cons.c
==============================================================================
--- projects/clang1000-import/sys/kern/kern_cons.c Sun Feb 23 19:04:15 2020 (r358262)
+++ projects/clang1000-import/sys/kern/kern_cons.c Sun Feb 23 21:48:48 2020 (r358263)
@@ -98,7 +98,7 @@ static char *consbuf; /* buffer used by `consmsgbuf'
static struct callout conscallout; /* callout for outputting to constty */
struct msgbuf consmsgbuf; /* message buffer for console tty */
static u_char console_pausing; /* pause after each line during probe */
-static char *console_pausestr=
+static const char console_pausestr[] =
"<pause; press any key to proceed to next line or '.' to end pause mode>";
struct tty *constty; /* pointer to console "window" tty */
static struct mtx cnputs_mtx; /* Mutex for cnputs(). */
@@ -510,7 +510,7 @@ cnputc(int c)
{
struct cn_device *cnd;
struct consdev *cn;
- char *cp;
+ const char *cp;
#ifdef EARLY_PRINTF
if (early_putc != NULL) {
@@ -571,7 +571,7 @@ cnputsn(const char *p, size_t n)
}
void
-cnputs(char *p)
+cnputs(const char *p)
{
cnputsn(p, strlen(p));
}
Modified: projects/clang1000-import/sys/kern/kern_linker.c
==============================================================================
--- projects/clang1000-import/sys/kern/kern_linker.c Sun Feb 23 19:04:15 2020 (r358262)
+++ projects/clang1000-import/sys/kern/kern_linker.c Sun Feb 23 21:48:48 2020 (r358263)
@@ -1765,7 +1765,7 @@ SYSCTL_STRING(_kern, OID_AUTO, module_path, CTLFLAG_RW
TUNABLE_STR("module_path", linker_path, sizeof(linker_path));
-static char *linker_ext_list[] = {
+static const char * const linker_ext_list[] = {
"",
".ko",
NULL
@@ -1782,7 +1782,8 @@ linker_lookup_file(const char *path, int pathlen, cons
{
struct nameidata nd;
struct thread *td = curthread; /* XXX */
- char *result, **cpp, *sep;
+ const char * const *cpp, *sep;
+ char *result;
int error, len, extlen, reclen, flags;
enum vtype type;
@@ -1838,8 +1839,9 @@ linker_hints_lookup(const char *path, int pathlen, con
struct ucred *cred = td ? td->td_ucred : NULL;
struct nameidata nd;
struct vattr vattr, mattr;
+ const char *best, *sep;
u_char *hints = NULL;
- u_char *cp, *recptr, *bufend, *result, *best, *pathbuf, *sep;
+ u_char *cp, *recptr, *bufend, *result, *pathbuf;
int error, ival, bestver, *intp, found, flags, clen, blen;
ssize_t reclen;
Modified: projects/clang1000-import/sys/kern/kern_malloc.c
==============================================================================
--- projects/clang1000-import/sys/kern/kern_malloc.c Sun Feb 23 19:04:15 2020 (r358262)
+++ projects/clang1000-import/sys/kern/kern_malloc.c Sun Feb 23 21:48:48 2020 (r358263)
@@ -153,7 +153,7 @@ static int numzones = MALLOC_DEBUG_MAXZONES;
*/
struct {
int kz_size;
- char *kz_name;
+ const char *kz_name;
uma_zone_t kz_zone[MALLOC_DEBUG_MAXZONES];
} kmemzones[] = {
{16, "16", },
@@ -1091,7 +1091,7 @@ mallocinit(void *dummy)
UMA_ALIGN_PTR, UMA_ZONE_MALLOC);
for (i = 0, indx = 0; kmemzones[indx].kz_size != 0; indx++) {
int size = kmemzones[indx].kz_size;
- char *name = kmemzones[indx].kz_name;
+ const char *name = kmemzones[indx].kz_name;
int subzone;
for (subzone = 0; subzone < numzones; subzone++) {
Modified: projects/clang1000-import/sys/kern/kern_shutdown.c
==============================================================================
--- projects/clang1000-import/sys/kern/kern_shutdown.c Sun Feb 23 19:04:15 2020 (r358262)
+++ projects/clang1000-import/sys/kern/kern_shutdown.c Sun Feb 23 21:48:48 2020 (r358263)
@@ -1714,7 +1714,7 @@ dump_finish(struct dumperinfo *di, struct kerneldumphe
void
dump_init_header(const struct dumperinfo *di, struct kerneldumpheader *kdh,
- char *magic, uint32_t archver, uint64_t dumplen)
+ const char *magic, uint32_t archver, uint64_t dumplen)
{
size_t dstsize;
Modified: projects/clang1000-import/sys/kern/kern_sig.c
==============================================================================
--- projects/clang1000-import/sys/kern/kern_sig.c Sun Feb 23 19:04:15 2020 (r358262)
+++ projects/clang1000-import/sys/kern/kern_sig.c Sun Feb 23 21:48:48 2020 (r358263)
@@ -3181,7 +3181,7 @@ proc_wkilled(struct proc *p)
* Kill the current process for stated reason.
*/
void
-killproc(struct proc *p, char *why)
+killproc(struct proc *p, const char *why)
{
PROC_LOCK_ASSERT(p, MA_OWNED);
Modified: projects/clang1000-import/sys/kern/kern_thread.c
==============================================================================
--- projects/clang1000-import/sys/kern/kern_thread.c Sun Feb 23 19:04:15 2020 (r358262)
+++ projects/clang1000-import/sys/kern/kern_thread.c Sun Feb 23 21:48:48 2020 (r358263)
@@ -82,9 +82,9 @@ _Static_assert(offsetof(struct thread, td_flags) == 0x
"struct thread KBI td_flags");
_Static_assert(offsetof(struct thread, td_pflags) == 0x104,
"struct thread KBI td_pflags");
-_Static_assert(offsetof(struct thread, td_frame) == 0x490,
+_Static_assert(offsetof(struct thread, td_frame) == 0x498,
"struct thread KBI td_frame");
-_Static_assert(offsetof(struct thread, td_emuldata) == 0x6a0,
+_Static_assert(offsetof(struct thread, td_emuldata) == 0x6b0,
"struct thread KBI td_emuldata");
_Static_assert(offsetof(struct proc, p_flag) == 0xb0,
"struct proc KBI p_flag");
@@ -102,9 +102,9 @@ _Static_assert(offsetof(struct thread, td_flags) == 0x
"struct thread KBI td_flags");
_Static_assert(offsetof(struct thread, td_pflags) == 0xa0,
"struct thread KBI td_pflags");
-_Static_assert(offsetof(struct thread, td_frame) == 0x2f8,
+_Static_assert(offsetof(struct thread, td_frame) == 0x2fc,
"struct thread KBI td_frame");
-_Static_assert(offsetof(struct thread, td_emuldata) == 0x340,
+_Static_assert(offsetof(struct thread, td_emuldata) == 0x344,
"struct thread KBI td_emuldata");
_Static_assert(offsetof(struct proc, p_flag) == 0x68,
"struct proc KBI p_flag");
Modified: projects/clang1000-import/sys/kern/link_elf.c
==============================================================================
--- projects/clang1000-import/sys/kern/link_elf.c Sun Feb 23 19:04:15 2020 (r358262)
+++ projects/clang1000-import/sys/kern/link_elf.c Sun Feb 23 21:48:48 2020 (r358263)
@@ -405,7 +405,7 @@ link_elf_init(void* arg)
Elf_Size *ctors_sizep;
caddr_t modptr, baseptr, sizeptr;
elf_file_t ef;
- char *modname;
+ const char *modname;
linker_add_class(&link_elf_class);
Modified: projects/clang1000-import/sys/kern/vfs_subr.c
==============================================================================
--- projects/clang1000-import/sys/kern/vfs_subr.c Sun Feb 23 19:04:15 2020 (r358262)
+++ projects/clang1000-import/sys/kern/vfs_subr.c Sun Feb 23 21:48:48 2020 (r358263)
@@ -4040,7 +4040,7 @@ vcount(struct vnode *vp)
/*
* Print out a description of a vnode.
*/
-static char *typename[] =
+static const char * const typename[] =
{"VNON", "VREG", "VDIR", "VBLK", "VCHR", "VLNK", "VSOCK", "VFIFO", "VBAD",
"VMARKER"};
Modified: projects/clang1000-import/sys/kern/vfs_vnops.c
==============================================================================
--- projects/clang1000-import/sys/kern/vfs_vnops.c Sun Feb 23 19:04:15 2020 (r358262)
+++ projects/clang1000-import/sys/kern/vfs_vnops.c Sun Feb 23 21:48:48 2020 (r358263)
@@ -1566,7 +1566,8 @@ vn_poll(struct file *fp, int events, struct ucred *act
* permits vn_lock to return doomed vnodes.
*/
static int __noinline
-_vn_lock_fallback(struct vnode *vp, int flags, char *file, int line, int error)
+_vn_lock_fallback(struct vnode *vp, int flags, const char *file, int line,
+ int error)
{
KASSERT((flags & LK_RETRY) == 0 || error == 0,
@@ -1602,7 +1603,7 @@ _vn_lock_fallback(struct vnode *vp, int flags, char *f
}
int
-_vn_lock(struct vnode *vp, int flags, char *file, int line)
+_vn_lock(struct vnode *vp, int flags, const char *file, int line)
{
int error;
Modified: projects/clang1000-import/sys/kern/vnode_if.src
==============================================================================
--- projects/clang1000-import/sys/kern/vnode_if.src Sun Feb 23 19:04:15 2020 (r358262)
+++ projects/clang1000-import/sys/kern/vnode_if.src Sun Feb 23 21:48:48 2020 (r358263)
@@ -380,7 +380,7 @@ vop_reclaim {
vop_lock1 {
IN struct vnode *vp;
IN int flags;
- IN char *file;
+ IN const char *file;
IN int line;
};
Modified: projects/clang1000-import/sys/riscv/include/param.h
==============================================================================
--- projects/clang1000-import/sys/riscv/include/param.h Sun Feb 23 19:04:15 2020 (r358262)
+++ projects/clang1000-import/sys/riscv/include/param.h Sun Feb 23 21:48:48 2020 (r358263)
@@ -46,7 +46,11 @@
#define MACHINE "riscv"
#endif
#ifndef MACHINE_ARCH
+#ifdef __riscv_float_abi_soft
+#define MACHINE_ARCH "riscv64sf"
+#else
#define MACHINE_ARCH "riscv64"
+#endif
#endif
#ifdef SMP
Modified: projects/clang1000-import/sys/sys/buf.h
==============================================================================
--- projects/clang1000-import/sys/sys/buf.h Sun Feb 23 19:04:15 2020 (r358262)
+++ projects/clang1000-import/sys/sys/buf.h Sun Feb 23 21:48:48 2020 (r358263)
@@ -554,7 +554,7 @@ void bufdone(struct buf *);
void bd_speedup(void);
extern uma_zone_t pbuf_zone;
-uma_zone_t pbuf_zsecond_create(char *name, int max);
+uma_zone_t pbuf_zsecond_create(const char *name, int max);
int cluster_read(struct vnode *, u_quad_t, daddr_t, long,
struct ucred *, long, int, int, struct buf **);
Modified: projects/clang1000-import/sys/sys/bufobj.h
==============================================================================
--- projects/clang1000-import/sys/sys/bufobj.h Sun Feb 23 19:04:15 2020 (r358262)
+++ projects/clang1000-import/sys/sys/bufobj.h Sun Feb 23 21:48:48 2020 (r358263)
@@ -78,7 +78,7 @@ typedef int b_sync_t(struct bufobj *, int waitfor);
typedef void b_bdflush_t(struct bufobj *, struct buf *);
struct buf_ops {
- char *bop_name;
+ const char *bop_name;
b_write_t *bop_write;
b_strategy_t *bop_strategy;
b_sync_t *bop_sync;
Modified: projects/clang1000-import/sys/sys/conf.h
==============================================================================
--- projects/clang1000-import/sys/sys/conf.h Sun Feb 23 19:04:15 2020 (r358262)
+++ projects/clang1000-import/sys/sys/conf.h Sun Feb 23 21:48:48 2020 (r358263)
@@ -374,7 +374,7 @@ int dump_append(struct dumperinfo *, void *, vm_offset
int dump_write(struct dumperinfo *, void *, vm_offset_t, off_t, size_t);
int dump_finish(struct dumperinfo *di, struct kerneldumpheader *kdh);
void dump_init_header(const struct dumperinfo *di, struct kerneldumpheader *kdh,
- char *magic, uint32_t archver, uint64_t dumplen);
+ const char *magic, uint32_t archver, uint64_t dumplen);
#endif /* _KERNEL */
Modified: projects/clang1000-import/sys/sys/cons.h
==============================================================================
--- projects/clang1000-import/sys/sys/cons.h Sun Feb 23 19:04:15 2020 (r358262)
+++ projects/clang1000-import/sys/sys/cons.h Sun Feb 23 21:48:48 2020 (r358263)
@@ -136,7 +136,7 @@ int cncheckc(void);
int cngetc(void);
void cngets(char *, size_t, int);
void cnputc(int);
-void cnputs(char *);
+void cnputs(const char *);
void cnputsn(const char *, size_t);
int cnunavailable(void);
void constty_set(struct tty *tp);
Modified: projects/clang1000-import/sys/sys/proc.h
==============================================================================
--- projects/clang1000-import/sys/sys/proc.h Sun Feb 23 19:04:15 2020 (r358262)
+++ projects/clang1000-import/sys/sys/proc.h Sun Feb 23 21:48:48 2020 (r358263)
@@ -250,6 +250,7 @@ struct thread {
int td_flags; /* (t) TDF_* flags. */
int td_inhibitors; /* (t) Why can not run. */
int td_pflags; /* (k) Private thread (TDP_*) flags. */
+ int td_pflags2; /* (k) Private thread (TDP2_*) flags. */
int td_dupfd; /* (k) Ret value from fdopen. XXX */
int td_sqqueue; /* (t) Sleepqueue queue blocked on. */
const void *td_wchan; /* (t) Sleep address. */
@@ -514,6 +515,8 @@ do { \
#define TDP_EXECVMSPC 0x40000000 /* Execve destroyed old vmspace */
#define TDP_SIGFASTPENDING 0x80000000 /* Pending signal due to sigfastblock */
+#define TDP2_SBPAGES 0x00000001 /* Owns sbusy on some pages */
+
/*
* Reasons that the current thread can not be run yet.
* More than one may apply.
@@ -1195,6 +1198,25 @@ curthread_pflags_restore(int save)
{
curthread->td_pflags &= save;
+}
+
+static __inline int
+curthread_pflags2_set(int flags)
+{
+ struct thread *td;
+ int save;
+
+ td = curthread;
+ save = ~flags | (td->td_pflags2 & flags);
+ td->td_pflags2 |= flags;
+ return (save);
+}
+
+static __inline void
+curthread_pflags2_restore(int save)
+{
+
+ curthread->td_pflags2 &= save;
}
static __inline __pure2 struct td_sched *
Modified: projects/clang1000-import/sys/sys/signalvar.h
==============================================================================
--- projects/clang1000-import/sys/sys/signalvar.h Sun Feb 23 19:04:15 2020 (r358262)
+++ projects/clang1000-import/sys/sys/signalvar.h Sun Feb 23 21:48:48 2020 (r358263)
@@ -384,7 +384,7 @@ sigallowstop(int prev)
int cursig(struct thread *td);
void execsigs(struct proc *p);
void gsignal(int pgid, int sig, ksiginfo_t *ksi);
-void killproc(struct proc *p, char *why);
+void killproc(struct proc *p, const char *why);
ksiginfo_t * ksiginfo_alloc(int wait);
void ksiginfo_free(ksiginfo_t *ksi);
int pksignal(struct proc *p, int sig, ksiginfo_t *ksi);
Modified: projects/clang1000-import/sys/sys/vnode.h
==============================================================================
--- projects/clang1000-import/sys/sys/vnode.h Sun Feb 23 19:04:15 2020 (r358262)
+++ projects/clang1000-import/sys/sys/vnode.h Sun Feb 23 21:48:48 2020 (r358263)
@@ -689,7 +689,7 @@ int vn_generic_copy_file_range(struct vnode *invp, off
struct thread *fsize_td);
int vn_need_pageq_flush(struct vnode *vp);
int vn_isdisk(struct vnode *vp, int *errp);
-int _vn_lock(struct vnode *vp, int flags, char *file, int line);
+int _vn_lock(struct vnode *vp, int flags, const char *file, int line);
#define vn_lock(vp, flags) _vn_lock(vp, flags, __FILE__, __LINE__)
int vn_open(struct nameidata *ndp, int *flagp, int cmode, struct file *fp);
int vn_open_cred(struct nameidata *ndp, int *flagp, int cmode,
Modified: projects/clang1000-import/sys/vm/swap_pager.c
==============================================================================
--- projects/clang1000-import/sys/vm/swap_pager.c Sun Feb 23 19:04:15 2020 (r358262)
+++ projects/clang1000-import/sys/vm/swap_pager.c Sun Feb 23 21:48:48 2020 (r358263)
@@ -1464,7 +1464,7 @@ swap_pager_putpages(vm_object_t object, vm_page_t *ma,
/* Get a block of swap of size up to size n. */
VM_OBJECT_WLOCK(object);
- blk = swp_pager_getswapspace(&n, 4);
+ blk = swp_pager_getswapspace(&n, 1);
if (blk == SWAPBLK_NONE) {
VM_OBJECT_WUNLOCK(object);
mtx_lock(&swbuf_mtx);
Modified: projects/clang1000-import/sys/vm/uma.h
==============================================================================
--- projects/clang1000-import/sys/vm/uma.h Sun Feb 23 19:04:15 2020 (r358262)
+++ projects/clang1000-import/sys/vm/uma.h Sun Feb 23 21:48:48 2020 (r358263)
@@ -213,8 +213,8 @@ uma_zone_t uma_zcreate(const char *name, size_t size,
* A pointer to a structure which is intended to be opaque to users of
* the interface. The value may be null if the wait flag is not set.
*/
-uma_zone_t uma_zsecond_create(char *name, uma_ctor ctor, uma_dtor dtor,
- uma_init zinit, uma_fini zfini, uma_zone_t master);
+uma_zone_t uma_zsecond_create(const char *name, uma_ctor ctor, uma_dtor dtor,
+ uma_init zinit, uma_fini zfini, uma_zone_t master);
/*
* Create cache-only zones.
@@ -225,9 +225,9 @@ uma_zone_t uma_zsecond_create(char *name, uma_ctor cto
* zones. The 'arg' parameter is passed to import/release and is caller
* specific.
*/
-uma_zone_t uma_zcache_create(char *name, int size, uma_ctor ctor, uma_dtor dtor,
- uma_init zinit, uma_fini zfini, uma_import zimport,
- uma_release zrelease, void *arg, int flags);
+uma_zone_t uma_zcache_create(const char *name, int size, uma_ctor ctor,
+ uma_dtor dtor, uma_init zinit, uma_fini zfini, uma_import zimport,
+ uma_release zrelease, void *arg, int flags);
/*
* Definitions for uma_zcreate flags
Modified: projects/clang1000-import/sys/vm/uma_core.c
==============================================================================
--- projects/clang1000-import/sys/vm/uma_core.c Sun Feb 23 19:04:15 2020 (r358262)
+++ projects/clang1000-import/sys/vm/uma_core.c Sun Feb 23 21:48:48 2020 (r358263)
@@ -223,7 +223,7 @@ struct uma_kctor_args {
struct uma_bucket_zone {
uma_zone_t ubz_zone;
- char *ubz_name;
+ const char *ubz_name;
int ubz_entries; /* Number of items it can hold. */
int ubz_maxsize; /* Maximum allocation size per-item. */
};
@@ -3014,8 +3014,8 @@ uma_zcreate(const char *name, size_t size, uma_ctor ct
/* See uma.h */
uma_zone_t
-uma_zsecond_create(char *name, uma_ctor ctor, uma_dtor dtor,
- uma_init zinit, uma_fini zfini, uma_zone_t master)
+uma_zsecond_create(const char *name, uma_ctor ctor, uma_dtor dtor,
+ uma_init zinit, uma_fini zfini, uma_zone_t master)
{
struct uma_zctor_args args;
uma_keg_t keg;
@@ -3042,9 +3042,9 @@ uma_zsecond_create(char *name, uma_ctor ctor, uma_dtor
/* See uma.h */
uma_zone_t
-uma_zcache_create(char *name, int size, uma_ctor ctor, uma_dtor dtor,
- uma_init zinit, uma_fini zfini, uma_import zimport,
- uma_release zrelease, void *arg, int flags)
+uma_zcache_create(const char *name, int size, uma_ctor ctor, uma_dtor dtor,
+ uma_init zinit, uma_fini zfini, uma_import zimport, uma_release zrelease,
+ void *arg, int flags)
{
struct uma_zctor_args args;
Modified: projects/clang1000-import/sys/vm/vm_map.c
==============================================================================
--- projects/clang1000-import/sys/vm/vm_map.c Sun Feb 23 19:04:15 2020 (r358262)
+++ projects/clang1000-import/sys/vm/vm_map.c Sun Feb 23 21:48:48 2020 (r358263)
@@ -5108,7 +5108,7 @@ vm_map_print(vm_map_t map)
(void *)entry, (void *)entry->start, (void *)entry->end,
entry->eflags);
{
- static char *inheritance_name[4] =
+ static const char * const inheritance_name[4] =
{"share", "copy", "none", "donate_copy"};
db_iprintf(" prot=%x/%x/%s",
Modified: projects/clang1000-import/sys/vm/vm_object.c
==============================================================================
--- projects/clang1000-import/sys/vm/vm_object.c Sun Feb 23 19:04:15 2020 (r358262)
+++ projects/clang1000-import/sys/vm/vm_object.c Sun Feb 23 21:48:48 2020 (r358263)
@@ -386,7 +386,7 @@ vm_object_pip_wakeupn(vm_object_t object, short i)
* re-acquired on return.
*/
static void
-vm_object_pip_sleep(vm_object_t object, char *waitid)
+vm_object_pip_sleep(vm_object_t object, const char *waitid)
{
refcount_sleep_interlock(&object->paging_in_progress,
@@ -394,7 +394,7 @@ vm_object_pip_sleep(vm_object_t object, char *waitid)
}
void
-vm_object_pip_wait(vm_object_t object, char *waitid)
+vm_object_pip_wait(vm_object_t object, const char *waitid)
{
VM_OBJECT_ASSERT_WLOCKED(object);
@@ -406,7 +406,7 @@ vm_object_pip_wait(vm_object_t object, char *waitid)
}
void
-vm_object_pip_wait_unlocked(vm_object_t object, char *waitid)
+vm_object_pip_wait_unlocked(vm_object_t object, const char *waitid)
{
VM_OBJECT_ASSERT_UNLOCKED(object);
Modified: projects/clang1000-import/sys/vm/vm_object.h
==============================================================================
--- projects/clang1000-import/sys/vm/vm_object.h Sun Feb 23 19:04:15 2020 (r358262)
+++ projects/clang1000-import/sys/vm/vm_object.h Sun Feb 23 21:48:48 2020 (r358263)
@@ -337,8 +337,8 @@ void vm_object_clear_flag(vm_object_t object, u_short
void vm_object_pip_add(vm_object_t object, short i);
void vm_object_pip_wakeup(vm_object_t object);
void vm_object_pip_wakeupn(vm_object_t object, short i);
-void vm_object_pip_wait(vm_object_t object, char *waitid);
-void vm_object_pip_wait_unlocked(vm_object_t object, char *waitid);
+void vm_object_pip_wait(vm_object_t object, const char *waitid);
+void vm_object_pip_wait_unlocked(vm_object_t object, const char *waitid);
void vm_object_busy(vm_object_t object);
void vm_object_unbusy(vm_object_t object);
Modified: projects/clang1000-import/sys/vm/vm_page.c
==============================================================================
--- projects/clang1000-import/sys/vm/vm_page.c Sun Feb 23 19:04:15 2020 (r358262)
+++ projects/clang1000-import/sys/vm/vm_page.c Sun Feb 23 21:48:48 2020 (r358263)
@@ -451,13 +451,14 @@ vm_page_domain_init(int domain)
vmd = VM_DOMAIN(domain);
bzero(vmd, sizeof(*vmd));
- *__DECONST(char **, &vmd->vmd_pagequeues[PQ_INACTIVE].pq_name) =
+ *__DECONST(const char **, &vmd->vmd_pagequeues[PQ_INACTIVE].pq_name) =
"vm inactive pagequeue";
- *__DECONST(char **, &vmd->vmd_pagequeues[PQ_ACTIVE].pq_name) =
+ *__DECONST(const char **, &vmd->vmd_pagequeues[PQ_ACTIVE].pq_name) =
"vm active pagequeue";
- *__DECONST(char **, &vmd->vmd_pagequeues[PQ_LAUNDRY].pq_name) =
+ *__DECONST(const char **, &vmd->vmd_pagequeues[PQ_LAUNDRY].pq_name) =
"vm laundry pagequeue";
- *__DECONST(char **, &vmd->vmd_pagequeues[PQ_UNSWAPPABLE].pq_name) =
+ *__DECONST(const char **,
+ &vmd->vmd_pagequeues[PQ_UNSWAPPABLE].pq_name) =
"vm unswappable pagequeue";
vmd->vmd_domain = domain;
vmd->vmd_page_count = 0;
Modified: projects/clang1000-import/sys/vm/vm_pager.c
==============================================================================
--- projects/clang1000-import/sys/vm/vm_pager.c Sun Feb 23 19:04:15 2020 (r358262)
+++ projects/clang1000-import/sys/vm/vm_pager.c Sun Feb 23 21:48:48 2020 (r358263)
@@ -191,7 +191,7 @@ vm_pager_bufferinit(void)
}
uma_zone_t
-pbuf_zsecond_create(char *name, int max)
+pbuf_zsecond_create(const char *name, int max)
{
uma_zone_t zone;
Modified: projects/clang1000-import/sys/vm/vm_radix.c
==============================================================================
--- projects/clang1000-import/sys/vm/vm_radix.c Sun Feb 23 19:04:15 2020 (r358262)
+++ projects/clang1000-import/sys/vm/vm_radix.c Sun Feb 23 21:48:48 2020 (r358263)
@@ -208,8 +208,7 @@ vm_radix_node_load(smrnode_t *p, enum vm_radix_access
case SMR:
return (smr_entered_load(p, vm_radix_smr));
}
- /* This is unreachable, silence gcc. */
- panic("vm_radix_node_get: Unknown access type");
+ __unreachable();
}
static __inline void
More information about the svn-src-projects
mailing list