# $NetBSD: XEN3_DOMU,v 1.106 2025/05/22 09:37:40 bad Exp $

include         "arch/amd64/conf/std.xen"

options         XENPV           # PV domU support
options         MULTIPROCESSOR

options         INCLUDE_CONFIG_FILE     # embed config file in kernel binary

#options        UVMHIST
#options        UVMHIST_PRINT
#options        SYSCALL_DEBUG

#ident          "XEN3_DOMU-$Revision: 1.106 $"

maxusers        32              # estimated number of users

#
#options        DOM0OPS

#options        MTRR            # memory-type range register syscall support

#options        CONSDEVNAME="\"xencons\""
#options        CONS_OVERRIDE

options         INSECURE        # disable kernel security levels - X needs this

options         RTC_OFFSET=0    # hardware clock is this many mins. west of GMT
options         NTP             # NTP phase/frequency locked loop

options         KTRACE          # system call tracing via ktrace(1)

options         SYSVMSG         # System V-like message queues
options         SYSVSEM         # System V-like semaphores
options         SYSVSHM         # System V-like memory sharing

options         MODULAR         # new style module(7) framework
options         USERCONF        # userconf(4) support
options         SYSCTL_INCLUDE_DESCR    # Include sysctl descriptions in kernel

# Alternate buffer queue strategies for better responsiveness under high
# disk I/O load.
#options        BUFQ_READPRIO
options         BUFQ_PRIOCSCAN

# Diagnostic/debugging support options
options         DIAGNOSTIC      # inexpensive kernel consistency checks
#options        DEBUG           # expensive debugging checks/support
options         DDB             # in-kernel debugger
options         DDB_ONPANIC=1   # see also sysctl(7): `ddb.onpanic'
options         DDB_HISTORY_SIZE=512    # enable history editing in DDB
#options        KGDB            # remote debugger
#options        KGDB_DEVNAME="\"com\"",KGDB_DEVADDR=0x2f8,KGDB_DEVRATE=57600
makeoptions     DEBUG="-g"      # compile full symbol table for CTF
makeoptions     COPTS="-O2 -fno-omit-frame-pointer"
options DDB_COMMANDONENTER="trace;show registers"
options         KDTRACE_HOOKS   # kernel DTrace hooks

# Heartbeat checks
options         HEARTBEAT
options         HEARTBEAT_MAX_PERIOD_DEFAULT=15

# Compatibility options
include         "conf/compat_netbsd15.config"
#options        COMPAT_386BSD_MBRPART # recognize old partition ID

options         COMPAT_NETBSD32
options         EXEC_ELF32

# Wedge support
options         DKWEDGE_AUTODISCOVER    # Automatically add dk(4) instances
options         DKWEDGE_METHOD_GPT      # Supports GPT partitions as wedges
#options        DKWEDGE_METHOD_BSDLABEL # Support disklabel entries as wedges
#options        DKWEDGE_METHOD_MBR      # Support MBR partitions as wedges
options         DKWEDGE_METHOD_APPLE    # Support Apple partitions as wedges
#options        DKWEDGE_METHOD_RDB      # Support RDB partitions as wedges
#options        DKWEDGE_METHOD_TOS      # Support Atari "TOS" partitions as wedges

# File systems
include "conf/filesystems.config"

# File system options
# ffs
#options        FFS_EI          # FFS Endian Independent support
#options        FFS_NO_SNAPSHOT # No FFS snapshot support
options         QUOTA           # legacy UFS quotas
options         QUOTA2          # new, in-filesystem UFS quotas
options         UFS_ACL         # UFS Access Control Lists
options         UFS_DIRHASH     # UFS Large Directory Hashing
options         UFS_EXTATTR     # Extended attribute support for UFS1
options         WAPBL           # File system journaling support
# lfs
options         LFS_DIRHASH     # LFS version of UFS_DIRHASH
# ext2fs
# other
#options        DISKLABEL_EI    # disklabel Endian Independent support
options         NFSSERVER       # Network File System server

# Networking options
#options        GATEWAY         # packet forwarding
options         INET            # IP + ICMP + TCP + UDP
options         INET6           # IPV6
options         IPSEC           # IP security
#options        IPSEC_DEBUG     # debug for IP security
#options        MROUTING        # IP multicast routing
#options        PIM             # Protocol Independent Multicast
options         NETATALK        # AppleTalk networking protocols
options         PPP_BSDCOMP     # BSD-Compress compression support for PPP
options         PPP_DEFLATE     # Deflate compression support for PPP
options         PPP_FILTER      # Active filter support for PPP (requires bpf)
#options        TCP_DEBUG       # Record last TCP_NDEBUG packets with SO_DEBUG

#options        ALTQ            # Manipulate network interfaces' output queues
#options        ALTQ_BLUE       # Stochastic Fair Blue
#options        ALTQ_CBQ        # Class-Based Queueing
#options        ALTQ_CDNR       # Diffserv Traffic Conditioner
#options        ALTQ_FIFOQ      # First-In First-Out Queue
#options        ALTQ_FLOWVALVE  # RED/flow-valve (red-penalty-box)
#options        ALTQ_HFSC       # Hierarchical Fair Service Curve
#options        ALTQ_LOCALQ     # Local queueing discipline
#options        ALTQ_PRIQ       # Priority Queueing
#options        ALTQ_RED        # Random Early Detection
#options        ALTQ_RIO        # RED with IN/OUT
#options        ALTQ_WFQ        # Weighted Fair Queueing

options         NFS_BOOT_DHCP,NFS_BOOT_BOOTPARAM
#options        NFS_BOOT_BOOTSTATIC
#options        NFS_BOOTSTATIC_MYIP="\"169.254.1.2\""
#options        NFS_BOOTSTATIC_GWIP="\"169.254.1.1\""
#options        NFS_BOOTSTATIC_MASK="\"255.255.255.0\""
#options        NFS_BOOTSTATIC_SERVADDR="\"169.254.1.1\""
#options        NFS_BOOTSTATIC_SERVER="\"server:/path/to/root\""

config          netbsd  root on ? type ?
#config         netbsd  root on wd0a type ffs
#config         netbsd  root on xennet0 type nfs

mainbus0 at root

hypervisor*     at mainbus?             # Xen hypervisor

vcpu*           at hypervisor?          # Xen virtual CPUs
xenbus*         at hypervisor?          # Xen virtual bus
xennet*         at xenbus?              # Xen virtual network interface
xbd*            at xenbus?              # Xen virtual block device
balloon*        at xenbus?              # Xen balloon device

xencons*        at hypervisor?          # Xen virtual console

# PCI pass-through support:
#xpci* at xenbus ?                      #Xen3 PCI front end driver
#pci* at xpci ?
# you then need to add your PCI devices drivers below.

# Pseudo-Devices

#
# accept filters
pseudo-device   accf_data       # "dataready" accept filter
pseudo-device   accf_http       # "httpready" accept filter

pseudo-device   crypto          # /dev/crypto device
pseudo-device   swcrypto        # software crypto implementation

# disk/mass storage pseudo-devices
pseudo-device   ccd                     # concatenated/striped disk devices
pseudo-device   cgd                     # cryptographic disk devices
pseudo-device   raid                    # RAIDframe disk driver
options         RAID_AUTOCONFIG         # auto-configuration of RAID components
# Options to enable various other RAIDframe RAID types.
#options        RF_INCLUDE_EVENODD=1
#options        RF_INCLUDE_RAID5_RS=1
#options        RF_INCLUDE_PARITYLOGGING=1
#options        RF_INCLUDE_CHAINDECLUSTER=1
#options        RF_INCLUDE_INTERDECLUSTER=1
#options        RF_INCLUDE_PARITY_DECLUSTERING=1
#options        RF_INCLUDE_PARITY_DECLUSTERING_DS=1
pseudo-device   fss                     # file system snapshot device

pseudo-device   md                      # memory disk device (ramdisk)
pseudo-device   vnd                     # disk-like interface to files
pseudo-device   dm                      # device-mapper driver for LVM

# network pseudo-devices
pseudo-device   bpfilter                # Berkeley packet filter
#pseudo-device  carp                    # Common Address Redundancy Protocol
pseudo-device   loop                    # network loopback
#pseudo-device  mpls                    # MPLS pseudo-interface
pseudo-device   ppp                     # Point-to-Point Protocol
pseudo-device   pppoe                   # PPP over Ethernet (RFC 2516)
pseudo-device   sl                      # Serial Line IP
pseudo-device   tap                     # virtual Ethernet
pseudo-device   tun                     # network tunneling over tty
pseudo-device   gre                     # generic L3 over IP tunnel
pseudo-device   gif                     # IPv[46] over IPv[46] tunnel (RFC1933)
#pseudo-device  faith                   # IPv[46] tcp relay translation i/f
pseudo-device   stf                     # 6to4 IPv6 over IPv4 encapsulation
pseudo-device   vlan                    # IEEE 802.1q encapsulation
pseudo-device   bridge                  # simple inter-network bridging
pseudo-device   vether                  # Virtual Ethernet for bridge
pseudo-device   l2tp                    # L2TPv3 interface
pseudo-device   npf                     # NPF packet filter

options         PAX_MPROTECT=1          # PaX mprotect(2) restrictions
options         PAX_ASLR=1              # PaX Address Space Layout Randomization

# miscellaneous pseudo-devices
pseudo-device   pty                     # pseudo-terminals
pseudo-device   clockctl                # user control of clock subsystem
pseudo-device   ksyms                   # /dev/ksyms

# iSCSI initiator and dependencies
#scsibus* at scsi?
#sd*    at scsibus? target ? lun ?
#pseudo-device  iscsi

# userland interface to drivers, including autoconf and properties retrieval
pseudo-device   drvctl

# Pull in optional local configuration - always at end
cinclude        "arch/amd64/conf/XEN3.local"
cinclude        "arch/amd64/conf/XEN3_DOMU.local"