OpenBSD src changes summary for 2015-12-08
==========================================

Makefile.cross                          distrib/sets
distrib/special                         etc/mail/Makefile
etc/mtree/4.4BSD.dist                   lib/libc
libexec/spamd                           sbin/mount_ext2fs
sbin/mount_ffs                          share/man
sys/arch/amd64/amd64                    sys/arch/amd64/conf
sys/arch/amd64/include                  sys/arch/macppc/dev
sys/arch/sgi/hpc                        sys/arch/sparc/dev
sys/arch/vax/if                         sys/conf
sys/dev/ic                              sys/dev/isa
sys/dev/pci                             sys/dev/pcmcia
sys/dev/pv                              sys/dev/sbus
sys/dev/usb                             sys/kern
sys/net                                 sys/nfs
sys/sys                                 sys/tmpfs
sys/ufs/ufs                             usr.bin/calendar
usr.bin/doas                            usr.bin/nc
usr.bin/tmux                            usr.bin/wc
usr.sbin/arp                            usr.sbin/authpf
usr.sbin/mailwrapper                    usr.sbin/rebound
usr.sbin/smtpd                          usr.sbin/vmctl
usr.sbin/vmd                            usr.sbin/ypserv

== Makefile.cross ==================================================== 01/10 ==

  http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/Makefile.cross

Makefile.cross


  > Restore parenthesis (tobiasu@)

== distrib =========================================================== 02/10 ==

  http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/distrib

sets

  ~ lists/base/mi                         ~ lists/etc/mi

  > Move /etc/examples/vm.conf from etc to base.
  > ok sthen@ jca@ reyk@ (ajacoutot@)

  ~ lists/base/md.alpha                   ~ lists/base/md.amd64
  ~ lists/base/md.armish                  ~ lists/base/md.armv7
  ~ lists/base/md.hppa                    ~ lists/base/md.hppa64
  ~ lists/base/md.i386                    ~ lists/base/md.landisk
  ~ lists/base/md.loongson                ~ lists/base/md.luna88k
  ~ lists/base/md.macppc                  ~ lists/base/md.octeon
  ~ lists/base/md.sgi                     ~ lists/base/md.socppc
  ~ lists/base/md.sparc                   ~ lists/base/md.sparc64
  ~ lists/base/md.vax                     ~ lists/base/md.zaurus

  > sync (deraadt@)

  ~ lists/comp/mi                         

  > sync (deraadt@)

special

  ~ signify/Makefile                      

  > don't need to .path ssh anymore since the file were copied (tedu@)

== etc =============================================================== 03/10 ==

  http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/etc

mail/Makefile

  ~ mail/Makefile                         

  > Use mailwrapper path instead of smtpd.
  > Ok tb@ jung@ (sunil@)

mtree/4.4BSD.dist

  ~ mtree/4.4BSD.dist                     

  > libexec/smtpd dir no longer needed; ok gilles (deraadt@)

== lib =============================================================== 04/10 ==

  http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/lib

libc

  ~ gen/getusershell.c                    

  > rewrite guts of getusershell() to avoid possibility of overflow.
  > instead of trying to allocate "just enough" memory based on the size of the
  > file (which is mostly comments, in fact), allocate memory on demand.
  > i.e., save memory by wasting it. also be a little stricter about parsing.
  > after discussion with tobias. (with a bug fix from patrick keshishian)
  > descended from bug glibc bug 18660 via tobias. (tedu@)

== libexec =========================================================== 05/10 ==

  http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/libexec

spamd

  ~ grey.c                                ~ spamd.c

  > Initially pledge spamd
  > All the work done by Ricardo Mestre <[email protected]> - Thanks.
  > (beck@)

== sbin ============================================================== 06/10 ==

  http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/sbin

mount_ext2fs

  ~ mount_ext2fs.c                        

  > spaces to tabs (tedu@)

mount_ffs

  ~ mount_ffs.c                           

  > spaces to tabs (tedu@)

== share ============================================================= 07/10 ==

  http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/share

man

  ~ man9/Makefile                         + man9/if_get.9

  > Manual for if_get(9) and if_put(9).
  > ok dlg@ (mpi@)

  ~ man4/man4.luna88k/le.4                ~ man4/man4.vax/de.4
  ~ man4/man4.vax/qe.4                    

  > remove lies about trailers support (tedu@)

  ~ man8/afterboot.8                      

  > NOTRAILERS is unlikely to show up in future ifconfig output (tedu@)

  ~ man7/hier.7                           

  > remove libexec/smtpd; (jmc@)

  ~ man9/if_get.9                         

  > tweak previous; (jmc@)

  ~ man4/pvbus.4                          

  > Add vmm(4) to the list. (reyk@)

== sys =============================================================== 08/10 ==

  http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/sys

arch/amd64/amd64

  ~ locore.S                              

  > Setup a hypercall page in the kernel .text segment
  > Its location will be communicated with the Xen hypervisor
  > that will fill it in with instructions resulting in VMEXIT
  > events.
  > Discussed with kettenis@ and deraadt@, with input from and
  > OK mpi, mlarkin, reyk (mikeb@)

  ~ intr.c                                ~ lapic.c
  ~ vector.S                              

  > Set up an IDT vector for Xen callbacks
  > This adds support for delivering the combined Xen interrupt
  > that later fans out into event port specific (device specific)
  > interrupts via an IDT of a guest system.
  > The Xen IDT vector is set to be the first of the IPL_NET group
  > and is implemented the same way LAPIC timer and IPIs are done.
  > The additional machinery is there to be able to mask it via
  > standard mechanisms (e.g. splnet).
  > Discussed with kettenis@, OK mlarkin, reyk (mikeb@)

arch/amd64/conf

  ~ GENERIC                               

  > Xen basic infrastructure files and pvbus(4) attachment.
  > With input from and OK mpi, mlarkin, reyk (mikeb@)

  ~ GENERIC                               

  > Driver for the XenSource Platform Device
  > This is a simple driver for the virtual PCI device with only one
  > purpose: to allocate the interrupt vector and communicate that
  > to the Hypervisor in case the IDT callback method was not available.
  > With input from and OK deraadt, mlarkin, reyk, mpi (mikeb@)

  ~ GENERIC                               

  > Disable xspd(4) until the man page is written; noticed by reyk@ (mikeb@)

arch/amd64/include

  ~ i82489var.h                           ~ intrdefs.h

  > Set up an IDT vector for Xen callbacks
  > This adds support for delivering the combined Xen interrupt
  > that later fans out into event port specific (device specific)
  > interrupts via an IDT of a guest system.
  > The Xen IDT vector is set to be the first of the IPL_NET group
  > and is implemented the same way LAPIC timer and IPIs are done.
  > The additional machinery is there to be able to mask it via
  > standard mechanisms (e.g. splnet).
  > Discussed with kettenis@, OK mlarkin, reyk (mikeb@)

arch/macppc/dev

  ~ if_bm.c                               ~ if_mc.c

  > No trailers has been the default and only option for 20 years, yet some
  > drivers still set IFF_NOTRAILERS while others do not. Remove all usage of
  > the flag from the drivers which in ancient times used it (and the modern
  > drivers which blindly copied it from those drivers of yore).
  > suggested by guenther. ok mpi (tedu@)

arch/sgi/hpc

  ~ if_sq.c                               

  > No trailers has been the default and only option for 20 years, yet some
  > drivers still set IFF_NOTRAILERS while others do not. Remove all usage of
  > the flag from the drivers which in ancient times used it (and the modern
  > drivers which blindly copied it from those drivers of yore).
  > suggested by guenther. ok mpi (tedu@)

arch/sparc/dev

  ~ be.c                                  ~ hme.c
  ~ if_ie.c                               ~ qe.c

  > No trailers has been the default and only option for 20 years, yet some
  > drivers still set IFF_NOTRAILERS while others do not. Remove all usage of
  > the flag from the drivers which in ancient times used it (and the modern
  > drivers which blindly copied it from those drivers of yore).
  > suggested by guenther. ok mpi (tedu@)

arch/vax/if

  ~ if_de.c                               

  > No trailers has been the default and only option for 20 years, yet some
  > drivers still set IFF_NOTRAILERS while others do not. Remove all usage of
  > the flag from the drivers which in ancient times used it (and the modern
  > drivers which blindly copied it from those drivers of yore).
  > suggested by guenther. ok mpi (tedu@)

conf

  ~ files                                 

  > split the interface send queue (struct ifqueue) implementation out.
  > the intention is to make it more clear what belongs to a transmit
  > queue and what belongs to an interface.
  > suggested by and ok mpi@ (dlg@)

dev/ic

  ~ ath.c                                 ~ atw.c
  ~ dp8390.c                              ~ elink3.c
  ~ gem.c                                 ~ hme.c
  ~ i82596.c                              ~ lance.c
  ~ lemac.c                               ~ rtw.c
  ~ smc91cxx.c                            

  > No trailers has been the default and only option for 20 years, yet some
  > drivers still set IFF_NOTRAILERS while others do not. Remove all usage of
  > the flag from the drivers which in ancient times used it (and the modern
  > drivers which blindly copied it from those drivers of yore).
  > suggested by guenther. ok mpi (tedu@)

dev/isa

  ~ if_ef_isapnp.c                        ~ if_eg.c
  ~ if_el.c                               ~ if_ie.c

  > No trailers has been the default and only option for 20 years, yet some
  > drivers still set IFF_NOTRAILERS while others do not. Remove all usage of
  > the flag from the drivers which in ancient times used it (and the modern
  > drivers which blindly copied it from those drivers of yore).
  > suggested by guenther. ok mpi (tedu@)

dev/pci

  ~ if_de.c                               

  > dont need to repeatedly set if_start to the same function. (dlg@)

  ~ if_cas.c                              ~ if_de.c

  > No trailers has been the default and only option for 20 years, yet some
  > drivers still set IFF_NOTRAILERS while others do not. Remove all usage of
  > the flag from the drivers which in ancient times used it (and the modern
  > drivers which blindly copied it from those drivers of yore).
  > suggested by guenther. ok mpi (tedu@)

  ~ if_iwm.c                              ~ if_iwmreg.h
  ~ if_iwmvar.h                           

  > When iwm(4) moves to AUTH state it asks the firmware for a "time event" to
  > prevent it from moving off-channel during association. The firmware issues
  > interrupts at beginning and end of the time event. The driver tried
  > detecting
  > the beginning with a tsleep() in the newstate task followed by a wakeup()
  > from the interrupt handler. However, sometimes the newstate task did not
  > get
  > scheduled until the time event had already passed, and association was
  > aborted.
  > In rare cases the newstate task would even sleep forever and the iwm(4)
  > interface would stop working until reboot.
  > Fix these issues by issuing the time event and continuing association
  > without
  > checking for a "go" from the firmware. Our kernel does not provide the
  > scheduling guarantees required for such precise synchronization so
  > association is more likely to fail with the additional check than without.
  > ok mpi@ tedu@ (stsp@)

  ~ files.pci                             + xspd.c

  > Driver for the XenSource Platform Device
  > This is a simple driver for the virtual PCI device with only one
  > purpose: to allocate the interrupt vector and communicate that
  > to the Hypervisor in case the IDT callback method was not available.
  > With input from and OK deraadt, mlarkin, reyk, mpi (mikeb@)

dev/pcmcia

  ~ if_cnw.c                              ~ if_xe.c

  > No trailers has been the default and only option for 20 years, yet some
  > drivers still set IFF_NOTRAILERS while others do not. Remove all usage of
  > the flag from the drivers which in ancient times used it (and the modern
  > drivers which blindly copied it from those drivers of yore).
  > suggested by guenther. ok mpi (tedu@)

dev/pv

  ~ files.pv                              + xen.c
  + xenvar.h                              

  > Xen basic infrastructure files and pvbus(4) attachment.
  > With input from and OK mpi, mlarkin, reyk (mikeb@)

  ~ xen.c                                 ~ xenvar.h
  + xenreg.h                              

  > This brings in support for Xen hypercalls via an MI interface
  > and implements functions to fetch extended version and features.
  > OK mlarkin (mikeb@)

  ~ xen.c                                 ~ xenreg.h
  ~ xenvar.h                              

  > Allocate and hook up a "shared info page"
  > This page provides a matrix of pending events and some other
  > information like hypervisor timecounter.
  > OK mlarkin, reyk (mikeb@)

  ~ xenvar.h                              

  > /*
  > * Copyright (c) 2015 Mike Belopuhov
  > *
  > * Permission to use, copy, modify, and distribute this software for any
  > * purpose with or without fee is hereby granted, provided that the above
  > * copyright notice and this permission notice appear in all copies.
  > *
  > * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
  > * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
  > * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
  > * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
  > * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
  > * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  > * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  > */
  > #include <sys/param.h>
  > #include <sys/systm.h>
  > #include <sys/atomic.h>
  > #include <sys/malloc.h>
  > #include <sys/kernel.h>
  > #include <sys/device.h>
  > #include <machine/bus.h>
  > #include <machine/cpu.h>
  > #include <machine/cpufunc.h>
  > #include <uvm/uvm_extern.h>
  > #include <machine/i82489var.h>
  > #include <dev/pv/pvvar.h>
  > #include <dev/pv/xenreg.h>
  > #include <dev/pv/xenvar.h>
  > struct xen_softc *xen_sc;
  > int     xen_init_hypercall(struct xen_softc *);
  > int     xen_getversion(struct xen_softc *);
  > int     xen_getfeatures(struct xen_softc *);
  > int     xen_init_info_page(struct xen_softc *);
  > int     xen_init_cbvec(struct xen_softc *);
  > int     xen_match(struct device *, void *, void *);
  > void    xen_attach(struct device *, struct device *, void *);
  > void    xen_resume(struct device *);
  > int     xen_activate(struct device *, int);
  > const struct cfdriver xen_cd = {
  > NULL, "xen", DV_DULL
  > };
  > const struct cfattach xen_ca = {
  > sizeof(struct xen_softc), xen_match, xen_attach, NULL, xen_activate
  > };
  > int
  > xen_match(struct device *parent, void *match, void *aux)
  > {
  > struct pv_attach_args *pva = aux;
  > struct pvbus_hv *hv = &pva->pva_hv[PVBUS_XEN];
  > if (hv->hv_base == 0)
  > return (0);
  > return (1);
  > }
  > void
  > xen_attach(struct device *parent, struct device *self, void *aux)
  > {
  > struct pv_attach_args *pva = (struct pv_attach_args *)aux;
  > struct pvbus_hv *hv = &pva->pva_hv[PVBUS_XEN];
  > struct xen_softc *sc = (struct xen_softc *)self;
  > sc->sc_base = hv->hv_base;
  > printf("\n");
  > if (xen_init_hypercall(sc))
  > return;
  > /* Wire it up to the global */
  > xen_sc = sc;
  > if (xen_getversion(sc))
  > return;
  > if (xen_getfeatures(sc))
  > return;
  > if (xen_init_info_page(sc))
  > return;
  > xen_init_cbvec(sc);
  > }
  > void
  > xen_resume(struct device *self)
  > {
  > }
  > int
  > xen_activate(struct device *self, int act)
  > {
  > int rv = 0;
  > switch (act) {
  > case DVACT_RESUME:
  > xen_resume(self);
  > break;
  > }
  > return (rv);
  > }
  > int
  > xen_init_hypercall(struct xen_softc *sc)
  > {
  > extern void *xen_hypercall_page;
  > uint32_t regs[4];
  > paddr_t pa;
  > /* Get hypercall page configuration MSR */
  > CPUID(sc->sc_base + CPUID_OFFSET_XEN_HYPERCALL,
  > regs[0], regs[1], regs[2], regs[3]);
  > /* We don't support more than one hypercall page */
  > if (regs[0] != 1) {
  > printf("%s: requested %d hypercall pages\n",
  > sc->sc_dev.dv_xname, regs[0]);
  > return (-1);
  > }
  > sc->sc_hc = &xen_hypercall_page;
  > if (!pmap_extract(pmap_kernel(), (vaddr_t)sc->sc_hc, &pa)) {
  > printf("%s: hypercall page PA extraction failed\n",
  > sc->sc_dev.dv_xname);
  > return (-1);
  > }
  > wrmsr(regs[1], pa);
  > DPRINTF("%s: hypercall page at va %p pa %#lx\n", sc->sc_dev.dv_xname,
  > sc->sc_hc, pa);
  > return (0);
  > }
  > int
  > xen_hypercall(struct xen_softc *sc, int op, int argc, ...)
  > {
  > va_list ap;
  > ulong argv[5];
  > int i;
  > if (argc < 0 || argc > 5)
  > return (-1);
  > va_start(ap, argc);
  > for (i = 0; i < argc; i++)
  > argv[i] = (ulong)va_arg(ap, ulong);
  > return (xen_hypercallv(sc, op, argc, argv));
  > }
  > int
  > xen_hypercallv(struct xen_softc *sc, int op, int argc, ulong *argv)
  > {
  > ulong hcall;
  > int rv = 0;
  > hcall = (ulong)sc->sc_hc + op * 32;
  > #if defined(XEN_DEBUG) && disabled
  > {
  > int i;
  > printf("hypercall %d", op);
  > if (argc > 0) {
  > printf(", args {");
  > for (i = 0; i < argc; i++)
  > printf(" %#lx", argv[i]);
  > printf(" }\n");
  > } else
  > printf("\n");
  > }
  > #endif
  > switch (argc) {
  > case 0: {
  > HYPERCALL_RES1;
  > __asm__ volatile (                      \
  > HYPERCALL_LABEL         \
  > : HYPERCALL_OUT1                \
  > : HYPERCALL_PTR(hcall)          \
  > : HYPERCALL_CLOBBER             \
  > );
  > HYPERCALL_RET(rv);
  > break;
  > }
  > case 1: {
  > HYPERCALL_RES1; HYPERCALL_RES2;
  > HYPERCALL_ARG1(argv[0]);
  > __asm__ volatile (                      \
  > HYPERCALL_LABEL         \
  > : HYPERCALL_OUT1 HYPERCALL_OUT2 \
  > : HYPERCALL_IN1                 \
  > , HYPERCALL_PTR(hcall)          \
  > : HYPERCALL_CLOBBER             \
  > );
  > HYPERCALL_RET(rv);
  > break;
  > }
  > case 2: {
  > HYPERCALL_RES1; HYPERCALL_RES2; HYPERCALL_RES3;
  > HYPERCALL_ARG1(argv[0]); HYPERCALL_ARG2(argv[1]);
  > __asm__ volatile (                      \
  > HYPERCALL_LABEL         \
  > : HYPERCALL_OUT1 HYPERCALL_OUT2 \
  > HYPERCALL_OUT3          \
  > : HYPERCALL_IN1 HYPERCALL_IN2   \
  > , HYPERCALL_PTR(hcall)          \
  > : HYPERCALL_CLOBBER             \
  > );
  > HYPERCALL_RET(rv);
  > break;
  > }
  > case 3: {
  > HYPERCALL_RES1; HYPERCALL_RES2; HYPERCALL_RES3;
  > HYPERCALL_RES4;
  > HYPERCALL_ARG1(argv[0]); HYPERCALL_ARG2(argv[1]);
  > HYPERCALL_ARG3(argv[2]);
  > __asm__ volatile (                      \
  > HYPERCALL_LABEL         \
  > : HYPERCALL_OUT1 HYPERCALL_OUT2 \
  > HYPERCALL_OUT3 HYPERCALL_OUT4   \
  > : HYPERCALL_IN1 HYPERCALL_IN2   \
  > HYPERCALL_IN3                   \
  > , HYPERCALL_PTR(hcall)          \
  > : HYPERCALL_CLOBBER             \
  > );
  > HYPERCALL_RET(rv);
  > break;
  > }
  > case 4: {
  > HYPERCALL_RES1; HYPERCALL_RES2; HYPERCALL_RES3;
  > HYPERCALL_RES4; HYPERCALL_RES5;
  > HYPERCALL_ARG1(argv[0]); HYPERCALL_ARG2(argv[1]);
  > HYPERCALL_ARG3(argv[2]); HYPERCALL_ARG4(argv[3]);
  > __asm__ volatile (                      \
  > HYPERCALL_LABEL         \
  > : HYPERCALL_OUT1 HYPERCALL_OUT2 \
  > HYPERCALL_OUT3 HYPERCALL_OUT4   \
  > HYPERCALL_OUT5          \
  > : HYPERCALL_IN1 HYPERCALL_IN2   \
  > HYPERCALL_IN3   HYPERCALL_IN4   \
  > , HYPERCALL_PTR(hcall)          \
  > : HYPERCALL_CLOBBER             \
  > );
  > HYPERCALL_RET(rv);
  > break;
  > }
  > case 5: {
  > HYPERCALL_RES1; HYPERCALL_RES2; HYPERCALL_RES3;
  > HYPERCALL_RES4; HYPERCALL_RES5; HYPERCALL_RES6;
  > HYPERCALL_ARG1(argv[0]); HYPERCALL_ARG2(argv[1]);
  > HYPERCALL_ARG3(argv[2]); HYPERCALL_ARG4(argv[3]);
  > HYPERCALL_ARG5(argv[4]);
  > __asm__ volatile (                      \
  > HYPERCALL_LABEL         \
  > : HYPERCALL_OUT1 HYPERCALL_OUT2 \
  > HYPERCALL_OUT3 HYPERCALL_OUT4   \
  > HYPERCALL_OUT5 HYPERCALL_OUT6   \
  > : HYPERCALL_IN1 HYPERCALL_IN2   \
  > HYPERCALL_IN3   HYPERCALL_IN4   \
  > HYPERCALL_IN5                   \
  > , HYPERCALL_PTR(hcall)          \
  > : HYPERCALL_CLOBBER             \
  > );
  > HYPERCALL_RET(rv);
  > break;
  > }
  > default:
  > DPRINTF("%s: wrong number of arguments: %d\n", __func__, argc);
  > rv = -1;
  > break;
  > }
  > return (rv);
  > }
  > int
  > xen_getversion(struct xen_softc *sc)
  > {
  > char buf[16];
  > int version;
  > ulong argv[2] = { XENVER_extraversion, (ulong)&buf[0] };
  > int argc = 2;
  > memset(buf, 0, sizeof(buf));
  > if ((version = xen_hypercall(sc, xen_version, 1, XENVER_version)) < 0) {
  > printf("%s: failed to fetch version\n", sc->sc_dev.dv_xname);
  > return (-1);
  > }
  > if (xen_hypercallv(sc, xen_version, argc, argv) < 0) {
  > printf("%s: failed to fetch extended version\n",
  > sc->sc_dev.dv_xname);
  > return (-1);
  > }
  > printf("%s: version %d.%d%s\n", sc->sc_dev.dv_xname,
  > version >> 16, version & 0xffff, buf);
  > return (0);
  > }
  > int
  > xen_getfeatures(struct xen_softc *sc)
  > {
  > struct xen_feature_info xfi;
  > ulong argv[2] = { XENVER_get_features, (ulong)&xfi };
  > int argc = 2;
  > memset(&xfi, 0, sizeof(xfi));
  > if (xen_hypercallv(sc, xen_version, argc, argv) < 0) {
  > printf("%s: failed to fetch features\n", sc->sc_dev.dv_xname);
  > return (-1);
  > }
  > sc->sc_features = xfi.submap;
  > printf("%s: features %b\n", sc->sc_dev.dv_xname, sc->sc_features,
  > "\20\014DOM0\013PIRQ\012PVCLOCK\011CBVEC\010GNTFLAGS\007HMA"
  > "\006PTUPD\005PAE4G\004SUPERVISOR\003AUTOPMAP\002WDT\001WPT");
  > return (0);
  > }
  > #ifdef XEN_DEBUG
  > void
  > xen_print_info_page(void)
  > {
  > struct xen_softc *sc = xen_sc;
  > struct shared_info *s = sc->sc_ipg;
  > struct vcpu_info *v;
  > int i;
  > membar_sync();
  > for (i = 0; i < XEN_LEGACY_MAX_VCPUS; i++) {
  > v = &s->vcpu_info[i];
  > if (!v->evtchn_upcall_pending && !v->evtchn_upcall_mask &&
  > !v->evtchn_pending_sel && !v->time.version &&
  > !v->time.tsc_timestamp && !v->time.system_time &&
  > !v->time.tsc_to_system_mul && !v->time.tsc_shift)
  > continue;
  > printf("vcpu%d:\n"
  > "   upcall_pending=%02x upcall_mask=%02x pending_sel=%#lx\n"
  > "   time version=%u tsc=%llu system=%llu\n"
  > "   time mul=%u shift=%d\n"
  > , i, v->evtchn_upcall_pending, v->evtchn_upcall_mask,
  > v->evtchn_pending_sel, v->time.version,
  > v->time.tsc_timestamp, v->time.system_time,
  > v->time.tsc_to_system_mul, v->time.tsc_shift);
  > }
  > printf("pending events: ");
  > for (i = 0; i < nitems(s->evtchn_pending); i++) {
  > if (s->evtchn_pending[i] == 0)
  > continue;
  > printf(" %d:%#lx", i, s->evtchn_pending[i]);
  > }
  > printf("\nmasked events: ");
  > for (i = 0; i < nitems(s->evtchn_mask); i++) {
  > if (s->evtchn_mask[i] == 0xffffffffffffffffULL)
  > continue;
  > printf(" %d:%#lx", i, s->evtchn_mask[i]);
  > }
  > printf("\nwc ver=%u sec=%u nsec=%u\n", s->wc_version, s->wc_sec,
  > s->wc_nsec);
  > printf("arch maxpfn=%lu framelist=%lu nmi=%lu\n", s->arch.max_pfn,
  > s->arch.pfn_to_mfn_frame_list, s->arch.nmi_reason);
  > }
  > #endif  /* XEN_DEBUG */
  > int
  > xen_init_info_page(struct xen_softc *sc)
  > {
  > struct xen_add_to_physmap xatp;
  > paddr_t pa;
  > sc->sc_ipg = malloc(PAGE_SIZE, M_DEVBUF, M_NOWAIT | M_ZERO);
  > if (sc->sc_ipg == NULL) {
  > printf("%s: failed to allocate shared info page\n",
  > sc->sc_dev.dv_xname);
  > return (-1);
  > }
  > if (!pmap_extract(pmap_kernel(), (vaddr_t)sc->sc_ipg, &pa)) {
  > printf("%s: shared info page PA extraction failed\n",
  > sc->sc_dev.dv_xname);
  > free(sc->sc_ipg, M_DEVBUF, PAGE_SIZE);
  > return (-1);
  > }
  > xatp.domid = DOMID_SELF;
  > xatp.idx = 0;
  > xatp.space = XENMAPSPACE_shared_info;
  > xatp.gpfn = atop(pa);
  > if (xen_hypercall(sc, memory_op, 2, XENMEM_add_to_physmap, &xatp)) {
  > printf("%s: failed to register shared info page\n",
  > sc->sc_dev.dv_xname);
  > free(sc->sc_ipg, M_DEVBUF, PAGE_SIZE);
  > return (-1);
  > }
  > DPRINTF("%s: shared info page at va %p pa %#lx\n", sc->sc_dev.dv_xname,
  > sc->sc_ipg, pa);
  > return (0);
  > }
  > int
  > xen_init_cbvec(struct xen_softc *sc)
  > {
  > struct xen_hvm_param xhp;
  > if ((sc->sc_features & XENFEAT_CBVEC) == 0)
  > return (ENOENT);
  > xhp.domid = DOMID_SELF;
  > xhp.index = HVM_PARAM_CALLBACK_IRQ;
  > xhp.value = HVM_CALLBACK_VECTOR(LAPIC_XEN_VECTOR);
  > if (xen_hypercall(sc, hvm_op, 2, HVMOP_set_param, &xhp)) {
  > /* Will retry with the xspd(4) PCI interrupt */
  > return (ENOENT);
  > }
  > DPRINTF("%s: registered callback IDT vector %d\n",
  > sc->sc_dev.dv_xname, LAPIC_XEN_VECTOR);
  > sc->sc_cbvec = 1;
  > return (0);
  > }
  > void
  > xen_intr(void)
  > {
  > /* stub */
  > } (mikeb@)

  ~ xen.c                                 ~ xenvar.h

  > Communicate the selected IDT vector to the Hypervisor
  > OK mlarkin, reyk (mikeb@)

  ~ xen.c                                 ~ xenreg.h
  ~ xenvar.h                              

  > Add ability to establish virtual interrupts via Xen event
  > channel ports.
  > During boot, Xen will use polling mode, but once the system
  > enables interrupts after cpu_configure(), xen_intr_enable
  > will be called from the mountrook hook to unmask event ports.
  > OK mlarkin, mpi, reyk (mikeb@)

  ~ files.pv                              ~ xen.c
  ~ xenvar.h                              + xenstore.c

  > Driver for XenStore, the configuration storage
  > XenStore provides a hierarchical storage for Xen configuration
  > in a style of an OpenFirmware.  Itself it's an interrupt driven
  > producer/consumer interface with two 1kb rings for input and
  > output.
  > It's required in order to do virtual device discovery and device
  > configuration (fetch MAC address, various parameters).
  > With input from and OK mlarkin, reyk (mikeb@)

  ~ xen.c                                 

  > Implement a function to detach emulated devices (such as an em(4)
  > network interface) in order to attach a paravirtualized drivers
  > (such as Xen Netfront).
  > OK mlarkin (mikeb@)

  ~ xen.c                                 ~ xenvar.h

  > Implements simple virtual device probing routine
  > Discussed with deraadt@, kettenis@, mpi@, OK mlarkin, mpi (mikeb@)

dev/sbus

  ~ be.c                                  ~ qe.c

  > No trailers has been the default and only option for 20 years, yet some
  > drivers still set IFF_NOTRAILERS while others do not. Remove all usage of
  > the flag from the drivers which in ancient times used it (and the modern
  > drivers which blindly copied it from those drivers of yore).
  > suggested by guenther. ok mpi (tedu@)

dev/usb

  ~ uhidev.c                              

  > Match 3rd party Xbox 360 controllers, from Christian Heckendorf.
  > Tested by jeremy@ (mpi@)

kern

  ~ kern_task.c                           

  > use struct task_list instead of TAILQ_HEAD(, task) (dlg@)

  ~ kern_task.c                           

  > tweak whitespace in struct definition. no functional change. (dlg@)

net

  ~ if.c                                  ~ if_var.h
  + ifq.c                                 + ifq.h

  > split the interface send queue (struct ifqueue) implementation out.
  > the intention is to make it more clear what belongs to a transmit
  > queue and what belongs to an interface.
  > suggested by and ok mpi@ (dlg@)

  ~ if_var.h                              

  > if_stop is unused, so kill it.
  > ok mpi@ (dlg@)

  ~ if.c                                  

  > Kill unused iftxlist.
  > ok dlg@ (mpi@)

  ~ if_vlan.c                             

  > vlan doenst have to handle SIOCGIFADDR cos the stack does it.
  > ok mpi@ (dlg@)

nfs

  ~ nfs_vnops.c                           

  TAGGED OPENBSD_5_8
  > Bring in fix for NFS panic from current.
  > ok deraadt@ (beck@)

sys

  ~ task.h                                

  > +TAILQ_HEAD(task_list, task); (dlg@)

  ~ task.h                                

  > _SYS_TASKQ_H_ -> _SYS_TASK_H_ (dlg@)

tmpfs

  ~ tmpfs_vnops.c                         

  > correct errant spacing (tedu@)

ufs/ufs

  ~ ufs_vnops.c                           

  > correct errant spacing here before it continues spreading (tedu@)

== usr.bin =========================================================== 09/10 ==

  http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.bin

calendar

  ~ day.c                                 ~ io.c

  > Remove NULL-checks before free(). ok tb@ (mmcc@)

doas

  ~ doas.1                                ~ doas.c

  > Support -a <auth_style> in doas(1). Allows specifying a non-default auth
  > style, for example if you have "auth-doas=yubikey,passwd" in login.conf,
  > doas will usually want yubikey authentication, but will allow a fallback
  > of "doas -a passwd".
  > Avoids the need for sudo in a number of cases, at the expense of 5 added
  > lines of code (and one of those is only to avoid >80 columns).
  > Adapted from a diff by Renaud Allard, ok dlg@ tedu@ (sthen@)

  ~ doas.c                                

  > semarie noticed that auth failures don't set errno. just print a generic
  > message and leave it to the user to find the tea leaves. (tedu@)

nc

  ~ netcat.c                              

  > pledge nc better - Load the certificate into memory and then do the pledge,
  > this allows us to drop the rpath fromt the nc pledge.
  > ok deraadt@, tedu@ (beck@)

tmux

  ~ cmd-switch-client.c                   

  > Use ^= instead of a verbose alternative. ok nicm@ (mmcc@)

  ~ Makefile                              ~ cmd-attach-session.c
  ~ cmd-detach-client.c                   ~ cmd.c
  ~ server-client.c                       ~ session.c
  ~ tmux.1                                ~ tmux.c
  ~ tmux.h                                + cmd-set-hook.c
  + hooks.c                               

  > Add hooks infrastructure, basic commands (set-hook, show-hooks) and a
  > couple of not very useful client hooks. This will eventually let
  > commands be run at various points and on notifications. Joint work with
  > Thomas Adam. (nicm@)

  ~ tmux.1                                

  > Ed was meant to be El; (jmc@)

  ~ options.c                             ~ tmux.h

  > Spacing nits. (nicm@)

  ~ cmd-attach-session.c                  ~ cmd-break-pane.c
  ~ cmd-display-message.c                 ~ cmd-if-shell.c
  ~ cmd-list-buffers.c                    ~ cmd-list-clients.c
  ~ cmd-list-panes.c                      ~ cmd-list-sessions.c
  ~ cmd-list-windows.c                    ~ cmd-new-session.c
  ~ cmd-new-window.c                      ~ cmd-pipe-pane.c
  ~ cmd-run-shell.c                       ~ cmd-split-window.c
  ~ control-notify.c                      ~ format.c
  ~ names.c                               ~ server-client.c
  ~ status.c                              ~ tmux.h
  ~ window-choose.c                       ~ window-copy.c

  > Remove format_create_flags and just pass flags to format_create. (nicm@)

wc

  ~ wc.1                                  ~ wc.c

  > UTF-8 support: implement -m for character counting
  > and use iswspace(3) for word counting.
  > Requires using getline(3) rather than read(2)
  > to make sure that characters aren't chopped to pieces.
  > Using feedback from millert@ on an earlier version.
  > Feedback and OK tedu@. (schwarze@)

== usr.sbin ========================================================== 10/10 ==

  http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.sbin

arp

  ~ arp.4                                 

  > jmc discovered more references to trailers. i think it's safe to remove
  > mention that they are no longer supported. the six people who know what
  > trailers are are surely aware they aren't support anymore. (tedu@)

  ~ arp.c                                 

  > remove undocumented message about trailers (tedu@)

authpf

  ~ authpf.c                              

  > Remove a NULL-check before free(). (mmcc@)

mailwrapper

  ~ mailer.conf.5                         

  > Update EXAMPLES to use smtpctl(8). (sunil@)

rebound

  ~ rebound.c                             

  > more better fake replies. servfail is the correct response. (tedu@)

smtpd

  ~ smtpd.c                               

  > Let smtpd shutdown gracefully with a zero exit code when the priv
  > process receives a SIGINT/SIGTERM.
  > Initial diff by nfnty <[email protected]>
  > Ok gilles@ jung@ millert@ (sunil@)

vmctl

  ~ main.c                                ~ vmctl.8
  ~ vmctl.c                               ~ vmctl.h

  > Add "vmctl console" to connect to a specified VM console by id.
  > Requested by mlarkin@ (reyk@)

  ~ main.c                                

  > vmctl console - id is not optional (reyk@)

  ~ main.c                                

  > style(9) says that is OK to not include sys/cdefs.h directly, as it
  > comes from sys/types.h (include-what-you-use doesn't know this policy).
  > Pointed out by Jan Schreiber (reyk@)

vmd

  ~ vmd.c                                 

  > make the -f option work as intended
  > ok reyk@ (jsg@)

  ~ vmd.c                                 

  > when checking the config file with -n don't open /dev/vmm or require root
  > ok reyk@ (jsg@)

ypserv

  ~ revnetgroup/parse_netgroup.c          ~ ypserv/ypserv_db.c

  > Remove NULL-checks before free(). (mmcc@)

===============================================================================
_______________________________________________
odc mailing list
[email protected]
http://www.squish.net/mailman/listinfo/odc

Reply via email to