sync with OpenBSD -current

This commit is contained in:
purplerain 2024-07-03 01:50:11 +00:00
parent e42955765e
commit 0c5463838b
Signed by: purplerain
GPG key ID: F42C07F07E2E35B7
28 changed files with 291 additions and 300 deletions

View file

@ -2614,6 +2614,9 @@
./usr/share/man/man8/rad.8
./usr/share/man/man8/radiusctl.8
./usr/share/man/man8/radiusd.8
./usr/share/man/man8/radiusd_bsdauth.8
./usr/share/man/man8/radiusd_radius.8
./usr/share/man/man8/radiusd_standard.8
./usr/share/man/man8/rarpd.8
./usr/share/man/man8/rbootd.8
./usr/share/man/man8/rc.8

View file

@ -1,20 +1,5 @@
/* $OpenBSD: agp_machdep.c,v 1.14 2015/03/14 03:38:46 jsg Exp $ */
/* $OpenBSD: agp_machdep.c,v 1.17 2024/07/02 04:42:43 jsg Exp $ */
/*
* Copyright (c) 2008 - 2009 Owain G. Ainsworth <oga@openbsd.org>
*
* 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.
*/
/*
* Copyright (c) 2002 Michael Shalayeff
* All rights reserved.
@ -43,90 +28,11 @@
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/malloc.h>
#include <sys/rwlock.h>
#include <dev/pci/pcivar.h>
#include <dev/pci/pcireg.h>
#include <dev/pci/pcidevs.h>
#include <uvm/uvm_extern.h>
#include <machine/cpufunc.h>
#include <machine/bus.h>
#include <machine/pmap.h>
void
agp_flush_cache(void)
{
wbinvd();
}
void
agp_flush_cache_range(vaddr_t va, vsize_t sz)
{
pmap_flush_cache(va, sz);
}
struct agp_map {
bus_space_tag_t bst;
bus_space_handle_t bsh;
bus_size_t size;
};
int
agp_init_map(bus_space_tag_t tag, bus_addr_t address, bus_size_t size,
int flags, struct agp_map **mapp)
{
struct agp_map *map;
int err;
map = malloc(sizeof(*map), M_AGP, M_WAITOK | M_CANFAIL);
if (map == NULL)
return (ENOMEM);
map->bst = tag;
map->size = size;
if ((err = bus_space_map(tag, address, size, flags, &map->bsh)) != 0) {
free(map, M_AGP, sizeof(*map));
return (err);
}
*mapp = map;
return (0);
}
void
agp_destroy_map(struct agp_map *map)
{
bus_space_unmap(map->bst, map->bsh, map->size);
free(map, M_AGP, sizeof(*map));
}
int
agp_map_subregion(struct agp_map *map, bus_size_t offset, bus_size_t size,
bus_space_handle_t *bshp)
{
return (bus_space_subregion(map->bst, map->bsh, offset, size, bshp));
}
void
agp_unmap_subregion(struct agp_map *map, bus_space_handle_t bsh,
bus_size_t size)
{
/* subregion doesn't need unmapping, do nothing */
}
void
agp_map_atomic(struct agp_map *map, bus_size_t offset,
bus_space_handle_t *bshp)
{
agp_map_subregion(map, offset, PAGE_SIZE, bshp);
}
void
agp_unmap_atomic(struct agp_map *map, bus_space_handle_t bsh)
{
/* subregion doesn't need unmapping, do nothing */
}

View file

@ -1,4 +1,4 @@
/* $OpenBSD: cpu.c,v 1.121 2024/06/23 10:17:16 kettenis Exp $ */
/* $OpenBSD: cpu.c,v 1.123 2024/07/02 19:59:54 kettenis Exp $ */
/*
* Copyright (c) 2016 Dale Rahn <drahn@dalerahn.com>
@ -244,6 +244,7 @@ uint64_t cpu_id_aa64isar2;
uint64_t cpu_id_aa64pfr0;
uint64_t cpu_id_aa64pfr1;
int arm64_has_lse;
#ifdef CRYPTO
int arm64_has_aes;
#endif
@ -714,6 +715,7 @@ cpu_identify(struct cpu_info *ci)
if (ID_AA64ISAR0_ATOMIC(id) >= ID_AA64ISAR0_ATOMIC_IMPL) {
printf("%sAtomic", sep);
sep = ",";
arm64_has_lse = 1;
}
if (ID_AA64ISAR0_CRC32(id) >= ID_AA64ISAR0_CRC32_BASE) {
@ -2003,7 +2005,7 @@ cpu_psci_init(struct cpu_info *ci)
*/
len = OF_getproplen(node, "domain-idle-states");
if (len < sizeof(uint32_t))
if (len < (int)sizeof(uint32_t))
return;
states = malloc(len, M_TEMP, M_WAITOK);

170
sys/arch/arm64/arm64/lse.S Normal file
View file

@ -0,0 +1,170 @@
/* $OpenBSD: lse.S,v 1.1 2024/07/02 10:25:16 kettenis Exp $ */
/*
* Copyright (c) 2024 Mark Kettenis <kettenis@openbsd.org>
*
* 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 <machine/asm.h>
/*
* Out-of-line LSE atomics helpers
*/
.arch armv8-a+lse
ENTRY(__aarch64_cas4_acq_rel)
RETGUARD_SETUP(__aarch64_cas4_acq_rel, x15)
adrp x9, arm64_has_lse
ldr w9, [x9, :lo12:arm64_has_lse]
cbz w9, 1f
casal w0, w1, [x2]
RETGUARD_CHECK(__aarch64_cas4_acq_rel, x15)
ret
1:
ldaxr w9, [x2]
cmp w9, w0
b.ne 2f
stlxr w10, w1, [x2]
cbnz w10, 1b
2:
mov w0, w9
RETGUARD_CHECK(__aarch64_cas4_acq_rel, x15)
ret
END(__aarch64_cas4_acq_rel)
ENTRY(__aarch64_cas8_acq_rel)
RETGUARD_SETUP(__aarch64_cas8_acq_rel, x15)
adrp x9, arm64_has_lse
ldr w9, [x9, :lo12:arm64_has_lse]
cbz w9, 1f
casal x0, x1, [x2]
RETGUARD_CHECK(__aarch64_cas8_acq_rel, x15)
ret
1:
ldaxr x9, [x2]
cmp x9, x0
b.ne 2f
stlxr w10, x1, [x2]
cbnz w10, 1b
2:
mov x0, x9
RETGUARD_CHECK(__aarch64_cas8_acq_rel, x15)
ret
END(__aarch64_cas8_acq_rel)
ENTRY(__aarch64_ldadd4_acq_rel)
RETGUARD_SETUP(__aarch64_ldadd4_acq_rel, x15)
adrp x9, arm64_has_lse
ldr w9, [x9, :lo12:arm64_has_lse]
cbz w9, 1f
ldaddal w0, w0, [x1]
RETGUARD_CHECK(__aarch64_ldadd4_acq_rel, x15)
ret
1:
ldaxr w9, [x1]
add w11, w9, w0
stlxr w10, w11, [x1]
cbnz w10, 1b
mov w0, w9
RETGUARD_CHECK(__aarch64_ldadd4_acq_rel, x15)
ret
END(__aarch64_ldadd4_acq_rel)
ENTRY(__aarch64_ldadd8_acq_rel)
RETGUARD_SETUP(__aarch64_ldadd8_acq_rel, x15)
adrp x9, arm64_has_lse
ldr w9, [x9, :lo12:arm64_has_lse]
cbz w9, 1f
ldaddal x0, x0, [x1]
RETGUARD_CHECK(__aarch64_ldadd8_acq_rel, x15)
ret
1:
ldaxr x9, [x1]
add x11, x9, x0
stlxr w10, x11, [x1]
cbnz w10, 1b
mov x0, x9
RETGUARD_CHECK(__aarch64_ldadd8_acq_rel, x15)
ret
END(__aarch64_ldadd8_acq_rel)
ENTRY(__aarch64_ldclr4_acq_rel)
RETGUARD_SETUP(__aarch64_ldclr4_acq_rel, x15)
adrp x9, arm64_has_lse
ldr w9, [x9, :lo12:arm64_has_lse]
cbz w9, 1f
ldclral w0, w0, [x1]
RETGUARD_CHECK(__aarch64_ldclr4_acq_rel, x15)
ret
1:
ldaxr w9, [x1]
bic w11, w9, w0
stlxr w10, w11, [x1]
cbnz w10, 1b
mov w0, w9
RETGUARD_CHECK(__aarch64_ldclr4_acq_rel, x15)
ret
END(__aarch64_ldclr4_acq_rel)
ENTRY(__aarch64_ldset4_acq_rel)
RETGUARD_SETUP(__aarch64_ldset4_acq_rel, x15)
adrp x9, arm64_has_lse
ldr w9, [x9, :lo12:arm64_has_lse]
cbz w9, 1f
ldsetal w0, w0, [x1]
RETGUARD_CHECK(__aarch64_ldset4_acq_rel, x15)
ret
1:
ldaxr w9, [x1]
orr w11, w9, w0
stlxr w10, w11, [x1]
cbnz w10, 1b
mov w0, w9
RETGUARD_CHECK(__aarch64_ldset4_acq_rel, x15)
ret
END(__aarch64_ldset4_acq_rel)
ENTRY(__aarch64_swp4_acq_rel)
RETGUARD_SETUP(__aarch64_swp4_acq_rel, x15)
adrp x9, arm64_has_lse
ldr w9, [x9, :lo12:arm64_has_lse]
cbz w9, 1f
swpal w0, w0, [x1]
RETGUARD_CHECK(__aarch64_swp4_acq_rel, x15)
ret
1:
ldaxr w9, [x1]
stlxr w10, w0, [x1]
cbnz w10, 1b
mov w0, w9
RETGUARD_CHECK(__aarch64_swp4_acq_rel, x15)
ret
END(__aarch64_swp4_acq_rel)
ENTRY(__aarch64_swp8_acq_rel)
RETGUARD_SETUP(__aarch64_swp8_acq_rel, x15)
adrp x9, arm64_has_lse
ldr w9, [x9, :lo12:arm64_has_lse]
cbz w9, 1f
swpal x0, x0, [x1]
RETGUARD_CHECK(__aarch64_swp8_acq_rel, x15)
ret
1:
ldaxr x9, [x1]
stlxr w10, x0, [x1]
cbnz w10, 1b
mov x0, x9
RETGUARD_CHECK(__aarch64_swp8_acq_rel, x15)
ret
END(__aarch64_swp8_acq_rel)

View file

@ -1,4 +1,4 @@
# $OpenBSD: Makefile.arm64,v 1.47 2023/09/06 01:47:36 jsg Exp $
# $OpenBSD: Makefile.arm64,v 1.48 2024/07/02 10:25:16 kettenis Exp $
# For instructions on building kernels consult the config(8) and options(4)
# manual pages.
@ -60,6 +60,7 @@ CMACHFLAGS= -march=armv8-a+nofp+nosimd \
-fno-omit-frame-pointer -mno-omit-leaf-frame-pointer \
-ffixed-x18
CMACHFLAGS+= -ffreestanding ${NOPIE_FLAGS}
CMACHFLAGS+= -moutline-atomics
SORTR= sort -R
.if ${IDENT:M-DNO_PROPOLICE}
CMACHFLAGS+= -fno-stack-protector

View file

@ -1,4 +1,4 @@
# $OpenBSD: files.arm64,v 1.69 2024/03/25 17:24:03 patrick Exp $
# $OpenBSD: files.arm64,v 1.70 2024/07/02 10:25:16 kettenis Exp $
maxpartitions 16
maxusers 2 8 128
@ -34,6 +34,7 @@ file arch/arm64/arm64/trap.c
file arch/arm64/arm64/ast.c
file arch/arm64/arm64/cpufunc_asm.S
file arch/arm64/arm64/lse.S
file arch/arm64/arm64/support.S
file arch/arm64/arm64/bus_dma.c

View file

@ -1,4 +1,4 @@
/* $OpenBSD: smmu_fdt.c,v 1.6 2022/11/06 12:14:52 patrick Exp $ */
/* $OpenBSD: smmu_fdt.c,v 1.7 2024/07/02 19:41:52 patrick Exp $ */
/*
* Copyright (c) 2021 Patrick Wildt <patrick@blueri.se>
*
@ -83,7 +83,8 @@ smmu_fdt_attach(struct device *parent, struct device *self, void *aux)
sc->sc_is_mmu500 = 1;
if (OF_is_compatible(faa->fa_node, "marvell,ap806-smmu-500"))
sc->sc_is_ap806 = 1;
if (OF_is_compatible(faa->fa_node, "qcom,sc8280xp-smmu-500"))
if (OF_is_compatible(faa->fa_node, "qcom,sc8280xp-smmu-500") ||
OF_is_compatible(faa->fa_node, "qcom,x1e80100-smmu-500"))
sc->sc_is_qcom = 1;
if (OF_getproplen(faa->fa_node, "dma-coherent") == 0)
sc->sc_coherent = 1;

View file

@ -1,20 +1,5 @@
/* $OpenBSD: agp_machdep.c,v 1.21 2023/01/30 10:49:05 jsg Exp $ */
/* $OpenBSD: agp_machdep.c,v 1.24 2024/07/02 04:42:43 jsg Exp $ */
/*
* Copyright (c) 2008 - 2009 Owain G. Ainsworth <oga@openbsd.org>
*
* 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.
*/
/*
* Copyright (c) 2002 Michael Shalayeff
* All rights reserved.
@ -43,129 +28,11 @@
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/malloc.h>
#include <dev/pci/pcivar.h>
#include <dev/pci/pcireg.h>
#include <dev/pci/agpvar.h>
#include <uvm/uvm_extern.h>
#include <machine/cpufunc.h>
#include <machine/bus.h>
#include <machine/pmap.h>
void
agp_flush_cache(void)
{
wbinvd();
}
void
agp_flush_cache_range(vaddr_t va, vsize_t sz)
{
pmap_flush_cache(va, sz);
}
struct agp_map {
bus_space_tag_t bst;
bus_addr_t addr;
bus_size_t size;
int flags;
vaddr_t va;
};
extern struct extent *iomem_ex;
int
agp_init_map(bus_space_tag_t tag, bus_addr_t address, bus_size_t size,
int flags, struct agp_map **mapp)
{
struct agp_map *map;
int error;
KASSERT(tag == I386_BUS_SPACE_MEM);
/*
* We grab the extent out of the bus region ourselves
* so we don't need to do these allocations every time.
*/
error = extent_alloc_region(iomem_ex, address, size,
EX_NOWAIT | EX_MALLOCOK);
if (error)
return (error);
map = malloc(sizeof(*map), M_AGP, M_WAITOK | M_CANFAIL);
if (map == NULL)
return (ENOMEM);
map->bst = tag;
map->addr = address;
map->size = size;
map->flags = flags;
map->va = (vaddr_t)km_alloc(PAGE_SIZE, &kv_any, &kp_none, &kd_waitok);
if (map->va == 0) {
free(map, M_AGP, sizeof(*map));
return (ENOMEM);
}
*mapp = map;
return (0);
}
void
agp_destroy_map(struct agp_map *map)
{
if (extent_free(iomem_ex, map->addr, map->size,
EX_NOWAIT | EX_MALLOCOK ))
printf("%s: can't free region\n",__func__);
km_free((void *)map->va, PAGE_SIZE, &kv_any, &kp_none);
free(map, M_AGP, sizeof(*map));
}
int
agp_map_subregion(struct agp_map *map, bus_size_t offset, bus_size_t size,
bus_space_handle_t *bshp)
{
return (_bus_space_map(map->bst, map->addr + offset, size,
map->flags, bshp));
}
void
agp_unmap_subregion(struct agp_map *map, bus_space_handle_t bsh,
bus_size_t size)
{
return (_bus_space_unmap(map->bst, bsh, size, NULL));
}
void
agp_map_atomic(struct agp_map *map, bus_size_t offset,
bus_space_handle_t *bshp)
{
int pmap_flags = PMAP_NOCACHE;
paddr_t pa;
KASSERT((offset & PGOFSET) == 0);
if (map->flags & BUS_SPACE_MAP_CACHEABLE)
pmap_flags = 0;
else if (map->flags & BUS_SPACE_MAP_PREFETCHABLE)
pmap_flags = PMAP_WC;
pa = bus_space_mmap(map->bst, map->addr, offset, 0, 0);
pmap_kenter_pa(map->va, pa | pmap_flags, PROT_READ | PROT_WRITE);
pmap_update(pmap_kernel());
*bshp = (bus_space_handle_t)map->va;
}
void
agp_unmap_atomic(struct agp_map *map, bus_space_handle_t bsh)
{
KASSERT(bsh == (bus_space_handle_t)map->va);
pmap_kremove(map->va, PAGE_SIZE);
pmap_update(pmap_kernel());
}

View file

@ -1,4 +1,4 @@
/* $OpenBSD: acpi.c,v 1.432 2024/06/25 11:57:10 kettenis Exp $ */
/* $OpenBSD: acpi.c,v 1.433 2024/07/02 08:27:04 kettenis Exp $ */
/*
* Copyright (c) 2005 Thorsten Lockert <tholo@sigmasoft.com>
* Copyright (c) 2005 Jordan Hargrave <jordan@openbsd.org>
@ -2203,6 +2203,7 @@ acpi_add_device(struct aml_node *node, void *arg)
CPU_INFO_ITERATOR cii;
struct cpu_info *ci;
int proc_id = -1;
int64_t sta;
memset(&aaa, 0, sizeof(aaa));
aaa.aaa_node = node;
@ -2233,6 +2234,10 @@ acpi_add_device(struct aml_node *node, void *arg)
aaa.aaa_name = "acpicpu";
break;
case AML_OBJTYPE_THERMZONE:
sta = acpi_getsta(sc, node);
if ((sta & STA_PRESENT) == 0)
return 0;
aaa.aaa_name = "acpitz";
break;
case AML_OBJTYPE_POWERRSRC:

View file

@ -1,4 +1,4 @@
/* $OpenBSD: dwpcie.c,v 1.53 2024/03/29 12:45:13 kettenis Exp $ */
/* $OpenBSD: dwpcie.c,v 1.54 2024/07/02 19:44:37 patrick Exp $ */
/*
* Copyright (c) 2018 Mark Kettenis <kettenis@openbsd.org>
*
@ -314,6 +314,7 @@ dwpcie_match(struct device *parent, void *match, void *aux)
OF_is_compatible(faa->fa_node, "fsl,imx8mq-pcie") ||
OF_is_compatible(faa->fa_node, "marvell,armada8k-pcie") ||
OF_is_compatible(faa->fa_node, "qcom,pcie-sc8280xp") ||
OF_is_compatible(faa->fa_node, "qcom,pcie-x1e80100") ||
OF_is_compatible(faa->fa_node, "rockchip,rk3568-pcie") ||
OF_is_compatible(faa->fa_node, "rockchip,rk3588-pcie") ||
OF_is_compatible(faa->fa_node, "sifive,fu740-pcie"));
@ -533,7 +534,8 @@ dwpcie_attach_deferred(struct device *self)
if (OF_is_compatible(sc->sc_node, "fsl,imx8mm-pcie") ||
OF_is_compatible(sc->sc_node, "fsl,imx8mq-pcie"))
error = dwpcie_imx8mq_init(sc);
if (OF_is_compatible(sc->sc_node, "qcom,pcie-sc8280xp"))
if (OF_is_compatible(sc->sc_node, "qcom,pcie-sc8280xp") ||
OF_is_compatible(sc->sc_node, "qcom,pcie-x1e80100"))
error = dwpcie_sc8280xp_init(sc);
if (OF_is_compatible(sc->sc_node, "rockchip,rk3568-pcie") ||
OF_is_compatible(sc->sc_node, "rockchip,rk3588-pcie"))

View file

@ -1,4 +1,4 @@
/* $OpenBSD: qcgpio_fdt.c,v 1.3 2024/05/13 01:15:50 jsg Exp $ */
/* $OpenBSD: qcgpio_fdt.c,v 1.4 2024/07/02 19:43:52 patrick Exp $ */
/*
* Copyright (c) 2022 Mark Kettenis <kettenis@openbsd.org>
*
@ -100,7 +100,8 @@ qcgpio_fdt_match(struct device *parent, void *match, void *aux)
{
struct fdt_attach_args *faa = aux;
return OF_is_compatible(faa->fa_node, "qcom,sc8280xp-tlmm");
return (OF_is_compatible(faa->fa_node, "qcom,sc8280xp-tlmm") ||
OF_is_compatible(faa->fa_node, "qcom,x1e80100-tlmm"));
}
void
@ -116,7 +117,10 @@ qcgpio_fdt_attach(struct device *parent, struct device *self, void *aux)
return;
}
sc->sc_npins = 230;
if (OF_is_compatible(faa->fa_node, "qcom,sc8280xp-tlmm"))
sc->sc_npins = 230;
else
sc->sc_npins = 239;
sc->sc_pin_ih = mallocarray(sc->sc_npins, sizeof(*sc->sc_pin_ih),
M_DEVBUF, M_WAITOK | M_ZERO);

View file

@ -1,4 +1,4 @@
/* $OpenBSD: hidkbd.c,v 1.12 2024/01/03 21:41:44 tobhe Exp $ */
/* $OpenBSD: hidkbd.c,v 1.13 2024/07/02 05:50:02 gkoehler Exp $ */
/* $NetBSD: ukbd.c,v 1.85 2003/03/11 16:44:00 augustss Exp $ */
/*
@ -141,9 +141,26 @@ static const struct hidkbd_translation apple_fn_trans[] = {
{ 60, 127 }, /* F3 -> audio mute */
{ 61, 129 }, /* F4 -> audio lower */
{ 62, 128 }, /* F5 -> audio raise */
{ 63, 83 }, /* F6 -> num lock */
{ 65, 234 }, /* F8 -> backlight toggle */
{ 66, 236 }, /* F9 -> backlight lower */
{ 67, 235 }, /* F10 -> backlight raise */
{ 39, 84 }, /* keypad divide */
{ 19, 85 }, /* keypad multiply */
{ 51, 86 }, /* keypad substract */
{ 56, 87 }, /* keypad add */
{ 13, 89 }, /* keypad 1 */
{ 14, 90 }, /* keypad 2 */
{ 15, 91 }, /* keypad 3 */
{ 24, 92 }, /* keypad 4 */
{ 12, 93 }, /* keypad 5 */
{ 18, 94 }, /* keypad 6 */
{ 36, 95 }, /* keypad 7 */
{ 37, 96 }, /* keypad 8 */
{ 38, 97 }, /* keypad 9 */
{ 16, 98 }, /* keypad 0 */
{ 55, 99 }, /* keypad decimal */
{ 45, 103 }, /* keypad equal */
#else
{ 63, 102 }, /* F6 -> sleep */
{ 67, 127 }, /* F10 -> audio mute */

View file

@ -1,4 +1,4 @@
/* $OpenBSD: agpvar.h,v 1.35 2024/05/13 01:15:51 jsg Exp $ */
/* $OpenBSD: agpvar.h,v 1.37 2024/07/02 04:29:01 jsg Exp $ */
/* $NetBSD: agpvar.h,v 1.4 2001/10/01 21:54:48 fvdl Exp $ */
/*-
@ -122,8 +122,6 @@ struct agp_gatt {
size_t ag_size;
};
struct agp_map;
/*
* Functions private to the AGP code.
*/
@ -134,17 +132,7 @@ struct agp_gatt *
agp_alloc_gatt(bus_dma_tag_t, u_int32_t);
void agp_free_gatt(bus_dma_tag_t, struct agp_gatt *);
void agp_flush_cache(void);
void agp_flush_cache_range(vaddr_t, vsize_t);
int agp_generic_enable(struct agp_softc *, u_int32_t);
int agp_init_map(bus_space_tag_t, bus_addr_t, bus_size_t, int, struct
agp_map **);
void agp_destroy_map(struct agp_map *);
int agp_map_subregion(struct agp_map *, bus_size_t, bus_size_t,
bus_space_handle_t *);
void agp_unmap_subregion(struct agp_map *, bus_space_handle_t,
bus_size_t);
void agp_map_atomic(struct agp_map *, bus_size_t, bus_space_handle_t *);
void agp_unmap_atomic(struct agp_map *, bus_space_handle_t);
int agp_alloc_dmamem(bus_dma_tag_t, size_t, bus_dmamap_t *,
bus_addr_t *, bus_dma_segment_t *);

View file

@ -1,4 +1,4 @@
$OpenBSD: pcidevs,v 1.2078 2024/06/30 08:11:36 kevlo Exp $
$OpenBSD: pcidevs,v 1.2079 2024/07/02 22:28:02 kettenis Exp $
/* $NetBSD: pcidevs,v 1.30 1997/06/24 06:20:24 thorpej Exp $ */
/*
@ -8628,6 +8628,7 @@ product QLOGIC ISP8432 0x8432 ISP8432
/* Qualcomm products */
product QUALCOMM SC8280XP_PCIE 0x010e SC8280XP PCIe
product QUALCOMM X1E80100_PCIE 0x0111 X1E80100 PCIe
product QUALCOMM QCNFA765 0x1103 QCNFA765
/* Quancom products */

View file

@ -2,7 +2,7 @@
* THIS FILE AUTOMATICALLY GENERATED. DO NOT EDIT.
*
* generated from:
* OpenBSD: pcidevs,v 1.2078 2024/06/30 08:11:36 kevlo Exp
* OpenBSD: pcidevs,v 1.2079 2024/07/02 22:28:02 kettenis Exp
*/
/* $NetBSD: pcidevs,v 1.30 1997/06/24 06:20:24 thorpej Exp $ */
@ -8633,6 +8633,7 @@
/* Qualcomm products */
#define PCI_PRODUCT_QUALCOMM_SC8280XP_PCIE 0x010e /* SC8280XP PCIe */
#define PCI_PRODUCT_QUALCOMM_X1E80100_PCIE 0x0111 /* X1E80100 PCIe */
#define PCI_PRODUCT_QUALCOMM_QCNFA765 0x1103 /* QCNFA765 */
/* Quancom products */

View file

@ -2,7 +2,7 @@
* THIS FILE AUTOMATICALLY GENERATED. DO NOT EDIT.
*
* generated from:
* OpenBSD: pcidevs,v 1.2078 2024/06/30 08:11:36 kevlo Exp
* OpenBSD: pcidevs,v 1.2079 2024/07/02 22:28:02 kettenis Exp
*/
/* $NetBSD: pcidevs,v 1.30 1997/06/24 06:20:24 thorpej Exp $ */
@ -31139,6 +31139,10 @@ static const struct pci_known_product pci_known_products[] = {
PCI_VENDOR_QUALCOMM, PCI_PRODUCT_QUALCOMM_SC8280XP_PCIE,
"SC8280XP PCIe",
},
{
PCI_VENDOR_QUALCOMM, PCI_PRODUCT_QUALCOMM_X1E80100_PCIE,
"X1E80100 PCIe",
},
{
PCI_VENDOR_QUALCOMM, PCI_PRODUCT_QUALCOMM_QCNFA765,
"QCNFA765",

View file

@ -1,4 +1,4 @@
/* $OpenBSD: pf.c,v 1.1199 2024/06/21 12:51:29 sashan Exp $ */
/* $OpenBSD: pf.c,v 1.1200 2024/07/02 18:33:47 bluhm Exp $ */
/*
* Copyright (c) 2001 Daniel Hartmeier
@ -7958,20 +7958,26 @@ done:
case PF_AFRT:
if (pf_translate_af(&pd)) {
action = PF_DROP;
break;
goto out;
}
pd.m->m_pkthdr.pf.flags |= PF_TAG_GENERATED;
switch (pd.naf) {
case AF_INET:
if (pd.dir == PF_IN) {
int flags;
int flags = IP_REDIRECT;
if (ip_forwarding == 0) {
switch (ip_forwarding) {
case 2:
SET(flags, IP_FORWARDING_IPSEC);
/* FALLTHROUGH */
case 1:
SET(flags, IP_FORWARDING);
break;
default:
ipstat_inc(ips_cantforward);
action = PF_DROP;
break;
goto out;
}
flags = IP_FORWARDING | IP_REDIRECT;
if (ip_directedbcast)
SET(flags, IP_ALLOWBROADCAST);
ip_forward(pd.m, ifp, NULL, flags);
@ -7985,7 +7991,7 @@ done:
if (ip6_forwarding == 0) {
ip6stat_inc(ip6s_cantforward);
action = PF_DROP;
break;
goto out;
}
flags = IPV6_FORWARDING | IPV6_REDIRECT;
ip6_forward(pd.m, NULL, flags);
@ -7993,10 +7999,8 @@ done:
ip6_output(pd.m, NULL, NULL, 0, NULL, NULL);
break;
}
if (action != PF_DROP) {
pd.m = NULL;
action = PF_PASS;
}
pd.m = NULL;
action = PF_PASS;
break;
#endif /* INET6 */
case PF_DROP:
@ -8036,6 +8040,7 @@ done:
st->if_index_out = ifp->if_index;
}
out:
*m0 = pd.m;
pf_state_unref(st);

View file

@ -1,4 +1,4 @@
/* $OpenBSD: ip_input.c,v 1.396 2024/06/24 12:19:19 bluhm Exp $ */
/* $OpenBSD: ip_input.c,v 1.397 2024/07/02 18:33:47 bluhm Exp $ */
/* $NetBSD: ip_input.c,v 1.30 1996/03/16 23:53:58 christos Exp $ */
/*
@ -465,8 +465,14 @@ ip_input_if(struct mbuf **mp, int *offp, int nxt, int af, struct ifnet *ifp)
SET(flags, IP_REDIRECT);
#endif
if (ip_forwarding != 0)
switch (ip_forwarding) {
case 2:
SET(flags, IP_FORWARDING_IPSEC);
/* FALLTHROUGH */
case 1:
SET(flags, IP_FORWARDING);
break;
}
if (ip_directedbcast)
SET(flags, IP_ALLOWBROADCAST);
@ -529,7 +535,7 @@ ip_input_if(struct mbuf **mp, int *offp, int nxt, int af, struct ifnet *ifp)
* ip_output().)
*/
KERNEL_LOCK();
error = ip_mforward(m, ifp);
error = ip_mforward(m, ifp, flags);
KERNEL_UNLOCK();
if (error) {
ipstat_inc(ips_cantforward);

View file

@ -1,4 +1,4 @@
/* $OpenBSD: ip_mroute.c,v 1.142 2024/04/06 14:23:27 bluhm Exp $ */
/* $OpenBSD: ip_mroute.c,v 1.143 2024/07/02 18:33:47 bluhm Exp $ */
/* $NetBSD: ip_mroute.c,v 1.85 2004/04/26 01:31:57 matt Exp $ */
/*
@ -122,7 +122,7 @@ int get_api_support(struct mbuf *);
int get_api_config(struct mbuf *);
int socket_send(struct socket *, struct mbuf *,
struct sockaddr_in *);
int ip_mdq(struct mbuf *, struct ifnet *, struct rtentry *);
int ip_mdq(struct mbuf *, struct ifnet *, struct rtentry *, int);
struct ifnet *if_lookupbyvif(vifi_t, unsigned int);
struct rtentry *rt_mcast_add(struct ifnet *, struct sockaddr *,
struct sockaddr *);
@ -1080,7 +1080,7 @@ socket_send(struct socket *so, struct mbuf *mm, struct sockaddr_in *src)
#define TUNNEL_LEN 12 /* # bytes of IP option for tunnel encapsulation */
int
ip_mforward(struct mbuf *m, struct ifnet *ifp)
ip_mforward(struct mbuf *m, struct ifnet *ifp, int flags)
{
struct ip *ip = mtod(m, struct ip *);
struct vif *v;
@ -1121,7 +1121,7 @@ ip_mforward(struct mbuf *m, struct ifnet *ifp)
/* Entry exists, so forward if necessary */
if (rt != NULL) {
return (ip_mdq(m, ifp, rt));
return (ip_mdq(m, ifp, rt, flags));
} else {
/*
* If we don't have a route for packet's origin,
@ -1183,7 +1183,7 @@ ip_mforward(struct mbuf *m, struct ifnet *ifp)
* Packet forwarding routine once entry in the cache is made
*/
int
ip_mdq(struct mbuf *m, struct ifnet *ifp0, struct rtentry *rt)
ip_mdq(struct mbuf *m, struct ifnet *ifp0, struct rtentry *rt, int flags)
{
struct ip *ip = mtod(m, struct ip *);
struct mfc *mfc = (struct mfc *)rt->rt_llinfo;
@ -1281,7 +1281,7 @@ ip_mdq(struct mbuf *m, struct ifnet *ifp0, struct rtentry *rt)
imo.imo_ttl = ip->ip_ttl - IPTTLDEC;
imo.imo_loop = 1;
ip_output(mc, NULL, NULL, IP_FORWARDING, &imo, NULL, 0);
ip_output(mc, NULL, NULL, flags | IP_FORWARDING, &imo, NULL, 0);
if_put(ifp);
} while ((rt = rtable_iterate(rt)) != NULL);

View file

@ -1,4 +1,4 @@
/* $OpenBSD: ip_output.c,v 1.400 2024/06/07 18:24:16 bluhm Exp $ */
/* $OpenBSD: ip_output.c,v 1.401 2024/07/02 18:33:47 bluhm Exp $ */
/* $NetBSD: ip_output.c,v 1.28 1996/02/13 23:43:07 christos Exp $ */
/*
@ -331,7 +331,7 @@ reroute:
int rv;
KERNEL_LOCK();
rv = ip_mforward(m, ifp);
rv = ip_mforward(m, ifp, flags);
KERNEL_UNLOCK();
if (rv != 0)
goto bad;
@ -428,9 +428,8 @@ sendit:
#endif
#ifdef IPSEC
if ((flags & IP_FORWARDING) && ip_forwarding == 2 &&
(!ipsec_in_use ||
m_tag_find(m, PACKET_TAG_IPSEC_IN_DONE, NULL) == NULL)) {
if (ISSET(flags, IP_FORWARDING) && ISSET(flags, IP_FORWARDING_IPSEC) &&
!ISSET(m->m_pkthdr.ph_tagsset, PACKET_TAG_IPSEC_IN_DONE)) {
error = EHOSTUNREACH;
goto bad;
}

View file

@ -1,4 +1,4 @@
/* $OpenBSD: ip_var.h,v 1.118 2024/06/07 18:24:16 bluhm Exp $ */
/* $OpenBSD: ip_var.h,v 1.119 2024/07/02 18:33:47 bluhm Exp $ */
/* $NetBSD: ip_var.h,v 1.16 1996/02/13 23:43:20 christos Exp $ */
/*
@ -207,6 +207,7 @@ struct ipoffnxt {
#define IP_FORWARDING 0x0001 /* most of ip header exists */
#define IP_RAWOUTPUT 0x0002 /* raw ip header exists */
#define IP_REDIRECT 0x0004 /* redirected by pf or source route */
#define IP_FORWARDING_IPSEC 0x0008 /* only packets processed by IPsec */
#define IP_ALLOWBROADCAST SO_BROADCAST /* can send broadcast packets */
#define IP_MTUDISC 0x0800 /* pmtu discovery, set DF */
@ -246,7 +247,7 @@ int ip_getmoptions(int, struct ip_moptions *, struct mbuf *);
void ip_init(void);
struct mbuf*
ip_insertoptions(struct mbuf *, struct mbuf *, int *);
int ip_mforward(struct mbuf *, struct ifnet *);
int ip_mforward(struct mbuf *, struct ifnet *, int);
int ip_optcopy(struct ip *, struct ip *);
int ip_output(struct mbuf *, struct mbuf *, struct route *, int,
struct ip_moptions *, const struct ipsec_level *, u_int32_t);

View file

@ -1,4 +1,4 @@
/* $OpenBSD: frontend.c,v 1.48 2024/05/31 16:10:42 florian Exp $ */
/* $OpenBSD: frontend.c,v 1.49 2024/07/02 17:41:27 florian Exp $ */
/*
* Copyright (c) 2018 Florian Obser <florian@openbsd.org>
@ -777,8 +777,9 @@ merge_ra_interface(char *if_name, char *conf_name, struct ifaddrs *ifap)
link_state =
((struct if_data*)ifa->ifa_data)->ifi_link_state;
sdl = (struct sockaddr_dl *)ifa->ifa_addr;
if (sdl->sdl_type == IFT_ETHER &&
sdl->sdl_alen == ETHER_ADDR_LEN) {
if (sdl != NULL && (sdl->sdl_type == IFT_ETHER ||
sdl->sdl_type == IFT_CARP) && sdl->sdl_alen ==
ETHER_ADDR_LEN) {
has_hw_addr = 1;
memcpy(&hw_addr, LLADDR(sdl), ETHER_ADDR_LEN);
}

View file

@ -1,4 +1,5 @@
# $OpenBSD: Makefile,v 1.2 2023/09/08 05:56:22 yasuoka Exp $
# $OpenBSD: Makefile,v 1.3 2024/07/02 16:18:11 deraadt Exp $
SUBDIR= radiusd
SUBDIR+= radiusd_bsdauth
SUBDIR+= radiusd_radius

View file

@ -1,4 +1,5 @@
# $OpenBSD: Makefile.inc,v 1.2 2017/02/21 05:17:48 yasuoka Exp $
# $OpenBSD: Makefile.inc,v 1.3 2024/07/02 16:18:11 deraadt Exp $
.PATH: ${.CURDIR}/..
CFLAGS+= -I${.CURDIR}/..
CFLAGS+= -Wall -Wextra -Wshadow -Wno-unused-parameter

View file

@ -1,4 +1,4 @@
.\" $OpenBSD: radiusd.conf.5,v 1.22 2024/07/02 00:35:56 yasuoka Exp $
.\" $OpenBSD: radiusd.conf.5,v 1.23 2024/07/02 06:01:22 jmc Exp $
.\"
.\" Copyright (c) 2014 Esdenera Networks GmbH
.\" Copyright (c) 2014, 2023 Internet Initiative Japan Inc.
@ -43,7 +43,7 @@ and a
.Ar port
to listen on.
When
.Ar accouting
.Ar accounting
is specified,
it is used for waiting for RADIUS accounting messages.
The default port number is 1812 for authentication and 1813 for accounting.
@ -72,7 +72,7 @@ and
When multiple modules of the same path are loaded with different names,
each module can have configurations respectively and work independently.
.Pp
The following module are predefined:
The following modules are predefined:
.Bl -tag -width Ds
.It Do bsdauth Dc module
The
@ -108,7 +108,7 @@ and
for the module specified by
.Ar module .
Notice that
.Ar key ,
.Ar key
and
.Ar value
must be quoted to be distinguished from the reserved word if needed.
@ -116,8 +116,8 @@ must be quoted to be distinguished from the reserved word if needed.
.It Ic authenticate Ar username-pattern ... Ic by Ar auth Oo Ic decorated-by \
Ar deco ... Oc
Specify an authentication configuration for the users specified by
.Ar username-pattern.
The users matched by the pattern is authenticated by the module
.Ar username-pattern .
The users matched by the pattern are authenticated by the module
specified by
.Ar auth .
Use shell globbing rules for the pattern;

View file

@ -1,4 +1,5 @@
# $OpenBSD: Makefile,v 1.3 2024/07/02 00:00:12 yasuoka Exp $
# $OpenBSD: Makefile,v 1.4 2024/07/02 16:18:11 deraadt Exp $
PROG= radiusd_bsdauth
BINDIR= /usr/libexec/radiusd
SRCS= radiusd_bsdauth.c radiusd_module.c imsg_subr.c

View file

@ -1,4 +1,5 @@
# $OpenBSD: Makefile,v 1.3 2024/07/02 00:00:12 yasuoka Exp $
# $OpenBSD: Makefile,v 1.4 2024/07/02 16:18:11 deraadt Exp $
PROG= radiusd_radius
BINDIR= /usr/libexec/radiusd
SRCS= radiusd_radius.c radiusd_module.c util.c imsg_subr.c log.c

View file

@ -1,8 +1,10 @@
# $OpenBSD: Makefile,v 1.2 2024/07/02 00:00:12 yasuoka Exp $
# $OpenBSD: Makefile,v 1.3 2024/07/02 16:18:11 deraadt Exp $
PROG= radiusd_standard
BINDIR= /usr/libexec/radiusd
SRCS= radiusd_standard.c radiusd_module.c
LDADD= -lutil -lradius -lcrypto
LDADD= -lradius -lcrypto -lutil
DPADD= ${LIBRADIUS} ${LIBCRYPTO} ${LIBUTIL}
MAN= radiusd_standard.8
.include <bsd.prog.mk>