MAKEFILE(9)
๐ makefile(9) ๐
okay so bestie, this is the NetBSD section 9 makefile โ the one that builds all the kernel function and variable manual pages. it's not a manpage about a function, it's the literal build list, and it is long. like, "five parts" long. this is part 1 and we're just getting warmed up ๐
here's the header it carries around, no cap:
$NetBSD: Makefile,v 1.474.2.1 2025/10/19 10:29:19 martin Exp $
and the line right under it says what this whole thing is:
Makefile for section 9 (kernel function and variable) manual pages.
that's the vibe. kernel stuff. functions. variables. the whole section 9 buffet. ๐
๐ the header bits ๐
so the first thing in the file is that $NetBSD: RCS line โ revision 1.474.2.1, dated 2025/10/19 10:29:19, committed by martin. that's the โจprovenanceโจ, we respect her.
then comes the comment that spells out the job: it's the makefile for section 9, covering kernel function and variable manual pages. that's it, that's the mission statement, and honestly? main character energy. ๐
๐ MAN= โ the whole roster ๐
this is the big one. the master list. every single page that ships with section 9 is named in here, in order, and there are so many of them. the way this list just goes on ๐ญ
lowkey important detail: the MAN+= and MLINKS+= lines for secmodel_securelevel.9 and secmodel_suser.9 are sitting right in the middle of the roster. not a typo, not me being chaotic โ that's literally how it's written. canon. ๐ซถ
here's the whole thing, exactly as it appears:
MAN= accept_filter.9 accf_data.9 accf_http.9 acl.9
acct_process.9 altq.9 arp.9 audio.9 autoconf.9 bcdtobin.9
bcmp.9 bcopy.9 bintime_add.9 bluetooth.9 boothowto.9 bpf.9
buffercache.9 bufferio.9 bufq.9 bus_dma.9 bus_space.9 byteorder.9
bzero.9 callback.9 callout.9 cardbus.9
clock.9 cnmagic.9 condvar.9 config.9 cons.9 copy.9 coredump_write.9
cpu_configure.9 cpu_coredump.9 cpu_dumpconf.9
cpu_lwp_fork.9 cpu_idle.9 cpu_initclocks.9
cpu_need_resched.9 cpu_number.9 cpu_reboot.9 cpu_rootconf.9
cpu_startup.9 cpu_switchto.9 cpufreq.9 crashme.9 csf.9
ctod.9 curproc.9 ddb.9 ddc.9 delay.9 devsw_attach.9
disk.9 disklabel.9 dksubr.9 dofileread.9 dopowerhooks.9
do_setresuid.9 doshutdownhooks.9 driver.9 edid.9 errno.9
ethersubr.9 evcnt.9 extattr.9 extent.9 file.9 fileassoc.9
filedesc.9 firmload.9 flash.9 fork1.9 fsetown.9 fstrans.9
genfs.9 genfs_can_access.9 genfs_can_access_acl_nfs4.9
genfs_can_access_acl_posix1e.9 genfs_rename.9 hardclock.9
hash.9 hashinit.9 heartbeat.9 humanize_number.9 hz.9
ieee80211.9 ieee80211_crypto.9 ieee80211_input.9
ieee80211_ioctl.9 ieee80211_node.9 ieee80211_output.9
ieee80211_proto.9 ieee80211_radiotap.9 iic.9 imax.9
in_getifa.9 in4_cksum.9 inittodr.9 interrupt_distribute.9
intro.9 ioasic.9 ioctl.9 ipi.9 isa.9 isapnp.9 itimerfix.9
kauth.9 kcopy.9 kcpuset.9 kernhist.9 klua_lock.9 klua_mod_register.9
kmem.9 kpause.9 kfilter_register.9 knote.9 kprintf.9
kthread.9 linedisc.9 lock.9 locking.9 log.9 ltsleep.9 localcount.9
LWP_CACHE_CREDS.9 makeiplcookie.9 malloc.9
mbuf.9 mca.9 memcmp.9 memcpy.9 memoryallocators.9 memmove.9
memset.9 microseq.9 microtime.9 microuptime.9 mi_switch.9 module.9
mstohz.9 mutex.9 m_tag.9 namecache.9 namei.9 nullop.9
opencrypto.9 optstr.9 panic.9 paravirt_membar_sync.9
pathbuf.9 pci.9 pci_configure_bus.9
pci_intr.9 pci_msi.9 pckbport.9 pcmcia.9 pcq.9 pcu.9
percpu.9 pfil.9 physio.9 pktqueue.9 pmap.9 pmatch.9 pmf.9
pool.9 pool_cache.9 portfeatures.9 powerhook_establish.9
ppsratecheck.9 preempt.9 proc_find.9 pserialize.9 pslist.9
psref.9 putter.9 radio.9 ras.9 rasops.9 ratecheck.9 resettodr.9
rnd.9 roundup.9 rssadapt.9 rt_timer.9 rwlock.9
RUN_ONCE.9 STACK.9 scanc.9 sched_4bsd.9 sched_m2.9
scsipi.9 secmodel_bsd44.9 secmodel_extensions.9 secmodel_overlay.9
MAN+= secmodel_securelevel.9
MLINKS+= secmodel_securelevel.9 securelevel.9
MAN+= secmodel_suser.9
SET.9 setbit.9 setjmp.9 shutdownhook_establish.9 signal.9
skpc.9 sockopt.9 softintr.9 spl.9 specificdata.9 spi.9
splraiseipl.9 strlist.9 suspendsched.9 sysctl.9
sysmon_envsys.9 sysmon_pswitch.9 sysmon_taskq.9 tc.9 tcp_connctl.9
thmap.9 threadpool.9 timecounter.9 time_second.9 todr.9
ts2timo.9 tvtohz.9 ubc.9 ucas.9 ucom.9 ufetch.9
uiomove.9 usbd_status.9 usbdi.9 usbnet.9 userret.9 ustore.9
uvm.9 uvm_hotplug.9 uvm_km.9 uvm_map.9 uvm_obj_wirepages.9
vattr.9 veriexec.9 vcons.9 versioningsyscalls.9 vfs.9
vfs_hooks.9 vfsops.9 vfssubr.9 video.9 vme.9 vnfileops.9 vnode.9
vnodeops.9 vnsubr.9 vmem.9 wapbl.9 wdc.9 workqueue.9
wsbell.9 wscons.9 wsdisplay.9 wsfont.9 wskbd.9 wsmouse.9
xcall.9 VOP_ACLCHECK.9 VOP_GETACL.9 VOP_SETACL.9
a few faves from the roster, for the vibe check:
crashme.9is just right there betweencpufreq.9andcsf.9and it's iconic, we love a girl who's honest about her intentions ๐panic.9andddb.9andlock.9andlocking.9โ the drama of it allintro.9is literally the intro, doing intro things, slayboothowto.9shows up twice in this file โ once inMAN=up there, and again later as its ownMAN+=line. she contains multitudes ๐LWP_CACHE_CREDS.9,RUN_ONCE.9,STACK.9,SET.9โ the all-caps girlies, highkey intimidating
๐ธ MAN+= and MLINKS+= โ the alias groups ๐ธ
okay so from here on it's a parade of MAN+= (add this page) and MLINKS+= (pair this page with another name) groups. and bestie, the sizes range from "one entry" to "bus_space going absolutely feral". let's go ๐ฆ
๐ฆ __cpu_simple_lock.9
MAN+= __cpu_simple_lock.9 and then a whole pile of aliases, all paired back to __cpu_simple_lock.9:
__SIMPLELOCK_LOCKED_P.9
__SIMPLELOCK_UNLOCKED_P.9
__cpu_simple_lock_clear.9
__cpu_simple_lock_init.9
__cpu_simple_lock_set.9
__cpu_simple_lock_try.9
__cpu_simple_unlock.9
seven aliases, zero chill, and yes every single one is MLINKS+=__cpu_simple_lock.9 <name>. ๐
๐ฆ atomic_loadstore.9
MAN+= atomic_loadstore.9, and every alias hangs off atomic_loadstore.9:
atomic_load_acquire.9
atomic_load_consume.9
atomic_load_relaxed.9
atomic_store_relaxed.9
atomic_store_release.9
loads and stores, acquire to release, the full set. periodt. โ๏ธ
๐ฆ boothowto.9
MLINKS+=boothowto.9 BOOT_FLAG.9
one line. that's it. MAN+= boothowto.9 plus exactly one link to BOOT_FLAG.9. tiny, but mighty. ๐
๐ฆ cprng.9
MAN+= cprng.9 and this girl brought friends. every alias below is paired with cprng.9:
cprng_strong.9
cprng_strong_create.9
cprng_strong_destroy.9
cprng_strong32.9
cprng_strong64.9
cprng_fast.9
cprng_fast32.9
cprng_fast64.9
arc4random.9
arc4randbytes.9
rnd_extract_data.9
strong, fast, 32, 64, plus the arc4 crowd and rnd_extract_data.9 riding along. obsessed. ๐ฅ
๐ฆ deviter.9
MAN+= deviter.9, aliases all hung off deviter.9:
deviter_first.9
deviter_init.9
deviter_next.9
deviter_release.9
first, init, next, release โ a whole little lifecycle happening. ๐ซถ
๐ฆ dmover.9
MAN+= dmover.9, and the aliases (each MLINKS+=dmover.9 <name>) are:
dmover_backend_register.9
dmover_backend_unregister.9
dmover_session_create.9
dmover_session_destroy.9
dmover_request_alloc.9
dmover_request_free.9
dmover_process.9
dmover_done.9
register/unregister, create/destroy, alloc/free โ look at all those matched pairs, it's giving symmetry โจ
๐ฆ CTASSERT.9 and KASSERT.9
MAN+= CTASSERT.9โ just her, standing alone, no links needed.MAN+= KASSERT.9โ andKASSERT.9gets a squad:
KASSERTMSG.9
KDASSERT.9
KDASSERTMSG.9
each one is MLINKS+=KASSERT.9 <name>. all the assert flavours, fr fr.
๐ฆ KERNEL_LOCK.9
MAN+= KERNEL_LOCK.9, and the linked names (all MLINKS+=KERNEL_LOCK.9 <name>) are:
KERNEL_LOCKED_P.9
KERNEL_UNLOCK_ALL.9
KERNEL_UNLOCK_LAST.9
KERNEL_UNLOCK_ONE.9
lock it, check if it's locked, unlock all of it, unlock the last one, unlock one โ the whole emotional arc ๐ญ
๐ฆ accept_filter.9
four MLINKS+= lines, each one accept_filter.9 plus an alias:
accept_filt_add.9
accept_filt_del.9
accept_filt_generic_mod_event.9
accept_filt_get.9
note the spelling drop โ accept_filter.9 the page, accept_filt_* the names. that's not a typo, that's just how she's built ๐
๐ฆ arp.9
MLINKS+=arp.9 arp_ifinit.9MLINKS+=arp.9 arpresolve.9MLINKS+=arp.9 arpintr.9
three lines, three links, one arp.9 doing all the work. ๐
๐ฆ autoconf.9
autoconf.9 is the page, and every alias below is paired with it:
config_search.9
config_found.9
config_match.9
config_attach.9
config_attach_pseudo.9
config_detach.9
config_detach_children.9
config_detach_release.9
config_deactivate.9
config_defer.9
config_interrupts.9
config_mountroot.9
config_pending_incr.9
config_pending_decr.9
config_probe.9
config_finalize_register.9
sixteen aliases, search โ found โ match โ attach โ detach โ deactivate โ defer โ interrupts โ mountroot โ pending incr/decr โ probe โ finalize_register. the entire device-attach saga in one page. ๐
๐ฆ bcdtobin.9
MLINKS+=bcdtobin.9 bintobcd.9
two-way street, one line. converting both directions and not bragging about it. ๐
๐ฆ bintime_add.9
everything here pairs with bintime_add.9:
bintime_addx.9
bintime_sub.9
bintime2timespec.9
timespec2bintime.9
bintime2timeval.9
timeval2bintime.9
add, addx, sub, and all the conversions to and from timespec and timeval. math girlie hours ๐ง
๐ฆ buffercache.9
buffercache.9 is the page, and the aliases (each MLINKS+=buffercache.9 <name>) are:
bread.9
breada.9
breadn.9
bwrite.9
bawrite.9
bdwrite.9
getblk.9
geteblk.9
incore.9
allocbuf.9
brelse.9
read it, read it async, read it n, write it, bawrite it, bdwrite it, get the block, get the empty block, check if it's in core, alloc the buffer, release it. eleven entries and every single one is a whole mood. ๐
๐ฆ bufferio.9
each alias is MLINKS+=bufferio.9 <name>:
biodone.9
biowait.9
getiobuf.9
putiobuf.9
nestiobuf_setup.9
nestiobuf_done.9
done, wait, get, put, setup the nest, finish the nest. clean. ๐
๐ฆ bufq.9
bufq.9 with a lot of aliases, all MLINKS+=bufq.9 <name>:
bufq_init.9
bufq_register.9
bufq_unregister.9
bufq_state.9
bufq_alloc.9
bufq_drain.9
bufq_free.9
bufq_getstrategyname.9
bufq_move.9
bufq_put.9
bufq_get.9
bufq_peek.9
bufq_cancel.9
init, register, unregister, state, alloc, drain, free, getstrategyname, move, put, get, peek, cancel. thirteen and she's not done being iconic. ๐ฅ
๐ฆ bus_space.9
okay this is the big one. bus_space.9 alone owns forty-plus aliases. every name below is an MLINKS+=bus_space.9 <name> pair:
bus_space_alloc.9
bus_space_barrier.9
bus_space_copy_region_1.9
bus_space_copy_region_2.9
bus_space_copy_region_4.9
bus_space_copy_region_8.9
bus_space_free.9
bus_space_is_equal.9
bus_space_map.9
bus_space_mmap.9
bus_space_read_1.9
bus_space_read_2.9
bus_space_read_4.9
bus_space_read_8.9
bus_space_read_multi_1.9
bus_space_read_multi_2.9
bus_space_read_multi_4.9
bus_space_read_multi_8.9
bus_space_read_region_1.9
bus_space_read_region_2.9
bus_space_read_region_4.9
bus_space_read_region_8.9
bus_space_set_region_1.9
bus_space_set_region_2.9
bus_space_set_region_4.9
bus_space_set_region_8.9
bus_space_subregion.9
bus_space_unmap.9
bus_space_vaddr.9
bus_space_write_1.9
bus_space_write_2.9
bus_space_write_4.9
bus_space_write_8.9
bus_space_write_multi_1.9
bus_space_write_multi_2.9
bus_space_write_multi_4.9
bus_space_write_multi_8.9
bus_space_write_region_1.9
bus_space_write_region_2.9
bus_space_write_region_4.9
bus_space_write_region_8.9
1, 2, 4, 8 โ read, write, read_multi, write_multi, read_region, write_region, set_region, copy_region. every width, every direction. she ate and left no crumbs ๐
๐ฆ bus_dma.9
bus_dma.9, aliases all paired with her:
bus_dmamap_create.9
bus_dmamap_destroy.9
bus_dmamap_load.9
bus_dmamap_load_mbuf.9
bus_dmamap_load_uio.9
bus_dmamap_load_raw.9
bus_dmamap_unload.9
bus_dmamap_sync.9
bus_dmamem_alloc.9
bus_dmamem_free.9
bus_dmamem_map.9
bus_dmamem_unmap.9
bus_dmamem_mmap.9
bus_dmatag_subregion.9
bus_dmatag_destroy.9
map create/destroy, load (plain, mbuf, uio, raw), unload, sync, then mem alloc/free/map/unmap/mmap, then dmatag subregion/destroy. the map girlies and the mem girlies, together at last ๐ซถ
๐ฆ byteorder.9
twenty-seven aliases, every one MLINKS+=byteorder.9 <name>. buckle up:
bswap16.9
bswap32.9
bswap64.9
be16toh.9
be32toh.9
be64toh.9
htobe16.9
htobe32.9
htobe64.9
htole16.9
htole32.9
htole64.9
le16toh.9
le32toh.9
le64toh.9
be16dec.9
be32dec.9
be64dec.9
le16dec.9
le32dec.9
le64dec.9
be16enc.9
be32enc.9
be64enc.9
le16enc.9
le32enc.9
le64enc.9
swap, beโh, hโbe, hโle, leโh, then dec and enc for both endians in all three sizes. this is the most thorough girl in the whole file and she never once raises her voice ๐โจ
๐ฆ callback.9
MLINKS+=callback.9 callback_head_init.9MLINKS+=callback.9 callback_head_destroy.9
init it, destroy it, done. two lines and we're out. ๐
and that's where part 1 cuts off โ mid-callback.9, right on the callback_head_destroy.9 link. there's so much more coming (the bus_space of it all was just a warm-up, believe me) ๐
...and we're still deep in the alias zone, bestie. Same deal as before: one page, a whole squad of names it also answers to. Every single one is written out with its .9 so nothing gets lost. Let's go ๐ซถ
callback.9โ also answers tocallback_register.9andcallback_unregister.9callback.9โ and alsocallback_run_roundrobin.9(same page, third name, she's popular)
โจ the callout family โจ
MLINKS+=callout.9 and honestly she ate:
callout.9โ also known ascallout_init.9,callout_destroy.9,callout_reset.9,callout_schedule.9,callout_setfunc.9,callout_stop.9,callout_pending.9,callout_expired.9,callout_invoking.9,callout_ack.9,timeout.9,untimeout.9,callout_halt.9
๐ cardbus, the whole extended universe ๐
cardbus.9โ alsocardbus_attach_card.9,cardbus_detach_card.9,cardbus_function_enable.9,cardbus_function_disable.9,cardbus_mapreg_map.9,cardbus_mapreg_unmap.9,cardbus_get_capability.9,cardbus_make_tag.9,cardbus_free_tag.9,cardbus_conf_read.9,cardbus_conf_write.9,cardbus_intr_establish.9,cardbus_intr_disestablish.9,CARDBUS_VENDOR.9,CARDBUS_PRODUCT.9- and then the capital-C twins โ
Cardbus_function_enable.9,Cardbus_function_disable.9,Cardbus_mapreg_map.9,Cardbus_mapreg_unmap.9,Cardbus_make_tag.9,Cardbus_free_tag.9,Cardbus_conf_read.9,Cardbus_conf_write.9
yes bestie, the capitalisation matters, they are different names pointing at the same page, do not come for me ๐
๐ธ clocks & consoles & condvars, oh my ๐ธ
clock.9โ alsodays_in_month.9,is_leap_year.9,days_per_year.9cnmagic.9โ alsocn_trap.9,cn_isconsole.9,cn_check_magic.9,cn_init_magic.9,cn_set_magic.9,cn_get_magic.9,cn_destroy_magic.9condvar.9โ alsocv.9,cv_init.9,cv_destroy.9,cv_wait.9,cv_wait_sig.9,cv_timedwait.9,cv_timedwait_sig.9,cv_signal.9,cv_broadcast.9,cv_has_waiters.9cons.9โ alsocnbell.9,cngetc.9,cngetsn.9,cnpollc.9,cnputc.9copy.9โ alsocopyin.9,copyout.9,copystr.9,copyinstr.9,copyoutstr.9,copyin_proc.9,copyout_proc.9,ioctl_copyin.9,ioctl_copyout.9
๐ฆ cpu_* things ๐ฆ
cpu_dumpconf.9โ alsocpu_dump.9,cpu_dumpsize.9,dumpsys.9cpu_lwp_fork.9โ alsochild_return.9,lwp_trampoline.9cpu_rootconf.9โ alsosetroot.9,rootconf.9cpufreq.9โ alsocpufreq_register.9,cpufreq_deregister.9,cpufreq_suspend.9,cpufreq_resume.9,cpufreq_get.9,cpufreq_get_backend.9,cpufreq_get_state.9,cpufreq_get_state_index.9,cpufreq_set.9,cpufreq_set_all.9
๐ conversions & the current-everything trio ๐
ctod.9โ alsodtoc.9,ctob.9,btoc.9,dbtob.9,btodb.9curproc.9โ alsocurcpu.9,curlwp.9delay.9โ alsoDELAY.9
๐ device switch, disks, disklabels ๐
devsw_attach.9โ alsodevsw.9,devsw_detach.9,bdevsw_lookup.9,cdevsw_lookup.9,bdevsw_lookup_major.9,cdevsw_lookup_major.9disk.9โ alsodisk_attach.9,disk_detach.9,disk_busy.9,disk_unbusy.9,disk_find.9,disk_init.9,disk_destroy.9,disk_begindetach.9disklabel.9โ alsoreaddisklabel.9,writedisklabel.9,setdisklabel.9,bounds_check_with_label.9
๐ dofile* / do_setres* ๐
dofileread.9โ alsodofilewrite.9,dofilereadv.9,dofilewritev.9do_setresuid.9โ alsodo_setresgid.9
๐ง ethernet, events, extents ๐ง
ethersubr.9โ alsoether_ifattach.9,ether_addmulti.9,ether_delmulti.9,ETHER_IS_MULTICAST.9,ETHER_FIRST_MULTI.9,ETHER_NEXT_MULTI.9evcnt.9โ alsoevcnt_attach_dynamic.9,evcnt_attach_static.9,evcnt_detach.9extent.9โ alsoextent_create.9,extent_destroy.9,extent_alloc.9,extent_alloc_subregion.9,extent_alloc_region.9,extent_free.9,extent_print.9,extent_alloc1.9,extent_alloc_subregion1.9
๐ฅ files, filedescs, and friends ๐ฅ
file.9โ alsoclosef.9,ffree.9,FILE_IS_USABLE.9,FILE_USE.9,FILE_UNUSE.9,FILE_SET_MATURE.9filedesc.9โ alsofalloc.9,fd_getfile.9,dupfdopen.9,fdalloc.9,fdcheckstd.9,fdclear.9,fdclone.9,fdcloseexec.9,fdcopy.9,fdexpand.9,fdfree.9,fdinit.9,fdrelease.9,fdremove.9,fdshare.9,fdunshare.9
โญ firmware, file ownership, file-system transactions โญ
firmload.9โ alsofirmware_open.9,firmware_close.9,firmware_get_size.9,firmware_read.9,firmware_malloc.9,firmware_free.9fsetown.9โ alsofgetown.9,fownsignal.9fstrans.9โ alsofstrans_done.9,fstrans_is_owner.9,fstrans_getstate.9,fstrans_setstate.9,fstrans_start.9,fstrans_start_lazy.9,fstrans_start_nowait.9,fscow_establish.9,fscow_disestablish.9,fscow_run.9
๐ hashing, humanizing, hz ๐
hash.9โ alsohash32_buf.9,hash32_str.9,hash32_strn.9hashinit.9โ alsohashdone.9humanize_number.9โ alsoformat_bytes.9hz.9โ alsoprofhz.9,stathz.9,tick.9,tickadj.9
๐ wifi (ieee80211), i2c (iic), min/max macros ๐
ieee80211.9โ alsoieee80211_chan2ieee.9,ieee80211_chan2mode.9,ieee80211_ieee2mhz.9,ieee80211_ifattach.9,ieee80211_ifdetach.9,ieee80211_media2rate.9,ieee80211_media_change.9,ieee80211_media_init.9,ieee80211_media_status.9,ieee80211_mhz2ieee.9,ieee80211_rate2media.9,ieee80211_setmode.9,ieee80211_watchdog.9iic.9โ alsoiic_acquire_bus.9,iic_release_bus.9,iic_exec.9,iic_smbus_write_byte.9,iic_smbus_read_byte.9,iic_smbus_receive_byte.9imax.9โ alsoimin.9,lmax.9,lmin.9,uimax.9,uimin.9,ulmax.9,ulmin.9(the whole min/max cinematic universe, no cap)in4_cksum.9โ alsoin_cksum.9,in6_cksum.9
๐ ioasic, isa, isapnp ๐
ioasic.9โ alsoioasic_intr_establish.9,ioasic_intr_disestablish.9,ioasic_intr_evcnt.9,ioasic_attach_devs.9,ioasic_submatch.9isa.9โ alsoisa_intr_alloc.9,isa_intr_establish.9,isa_intr_disestablish.9,isa_intr_evcnt.9,isa_dmamap_create.9,isa_dmamap_destroy.9,isa_dmamem_alloc.9,isa_dmamem_free.9,isa_dmamem_map.9,isa_dmamem_unmap.9,isa_malloc.9,isa_free.9,isa_dmastart.9,isa_dmaabort.9,isa_dmacount.9,isa_dmadone.9,isa_dmamaxsize.9,isa_drq_isfree.9,isa_dmacascade.9,isa_mappage.9isapnp.9โ alsoisapnp_devmatch.9,isapnp_config.9,isapnp_unconfig.9
๐ธ knotes & kcpusets (yes there are like twenty of them) ๐ธ
knote.9โ alsoKNOTE.9,kfilter_register.9,kfilter_unregister.9kcpuset.9โ alsokcpuset_create.9,kcpuset_destroy.9,kcpuset_copy.9,kcpuset_use.9,kcpuset_unuse.9,kcpuset_copyin.9,kcpuset_copyout.9,kcpuset_zero.9,kcpuset_fill.9,kcpuset_set.9,kcpuset_clear.9,kcpuset_isotherset.9,kcpuset_isset.9,kcpuset_iszero.9,kcpuset_countset.9,kcpuset_match.9,kcpuset_merge.9,kcpuset_export_32.9,kcpuset_atomic_set.9,kcpuset_atomic_clear.9
๐ซถ kmem & kpreempt ๐ซถ
kmem.9โ alsokmem_alloc.9,kmem_free.9,kmem_zalloc.9,kmem_intr_alloc.9,kmem_intr_free.9,kmem_intr_zalloc.9,kmem_asprintf.9,kmem_strdupsize.9,kmem_strfree.9,kmem_tmpbuf_alloc.9,kmem_tmpbuf_free.9kpreempt.9โ real page,MAN+= kpreempt.9, and then the aliases:kpreempt_disable.9,kpreempt_disabled.9,kpreempt_enable.9
not a typo bestie, kpreempt.9 is its own page and it collects aliases. two separate facts, both true ๐
๐ proc_find & the entire kprintf multiverse ๐
proc_find.9โ alsopgrp_find.9
And then MLINKS+=kprintf.9 which is, genuinely, the biggest group in this whole chunk:
kprintf.9โ alsoprintf.9,printf_nolog.9,printf_nostamp.9,snprintf.9,vprintf.9,vsnprintf.9,uprintf.9,ttyprintf.9,tprintf.9,tprintf_open.9,tprintf_close.9- the
aprintsquad โaprint_normal.9,aprint_naive.9,aprint_verbose.9,aprint_debug.9,aprint_error.9 - the
_devvariants โaprint_normal_dev.9,aprint_naive_dev.9,aprint_verbose_dev.9,aprint_debug_dev.9,aprint_error_dev.9 - the
_ifnetvariants โaprint_normal_ifnet.9,aprint_naive_ifnet.9,aprint_verbose_ifnet.9,aprint_debug_ifnet.9,aprint_error_ifnet.9 - and the stragglers โ
aprint_get_error_count.9,device_printf.9
โญ kthread, linedisc, and lock (the big one) โญ
kthread.9โ alsokthread_exit.9,kthread_create.9,kthread_join.9linedisc.9โ alsottyldisc_add.9,ttyldisc_lookup.9,ttyldisc_remove.9lock.9โ alsosimple_lock_init.9,simple_lock.9,simple_lock_try.9,simple_unlock.9,simple_lock_freecheck.9,simple_lock_dump.9,lockinit.9,lockmgr.9,lockstatus.9,lockmgr_printinfo.9,transferlockers.9,spinlockinit.9,spinlockmgr.9
๐ฆ ltsleep & malloc ๐ฆ
ltsleep.9โ alsowakeup.9,mtsleep.9,tsleep.9malloc.9โ alsoMALLOC.9,realloc.9,free.9,FREE.9,malloc_type_attach.9,malloc_type_detach.9,MALLOC_DEFINE.9,MALLOC_DECLARE.9
๐ mbuf, aka the longest list known to humankind ๐
mbuf.9โ alsom_align.9,m_get.9,m_gethdr.9,m_devget.9,m_copym.9,m_copypacket.9,m_copydata.9,m_copyback.9,m_cat.9,m_dup.9,m_prepend.9,m_copyback_cow.9,m_makewritable.9,m_pulldown.9,m_pullup.9,m_copyup.9,m_split.9,m_adj.9,m_free.9,m_apply.9,m_freem.9,mtod.9,MGET.9,MGETHDR.9,MEXTMALLOC.9,MEXTADD.9,MCLGET.9,M_LEADINGSPACE.9,M_TRAILINGSPACE.9
Bestie that's twenty-nine aliases on one page. Twenty-nine. She's iconic for that, honestly. ๐
okay so we're STILL in the MLINKS section and honestly? iconic behavior. keep scrolling bestie, the list is long but so is our patience ๐
mbuf.9๐ฆ โ also answers toM_PREPEND.9,MCHTYPE.9,MFREE.9mca.9โ also answers tomca_intr_establish.9,mca_intr_disestablish.9,mca_intr_evcnt.9,mca_conf_read.9,mca_conf_write.9microtime.9โฐ โ also answers tobintime.9,getbintime.9,getmicrotime.9,nanotime.9,getnanotime.9microuptime.9โฑ๏ธ โ also answers tobinuptime.9,getbinuptime.9,getmicrouptime.9,nanouptime.9,getnanouptime.9
notice how half of those start with get? the naming committee was having a DAY and we respect it ๐ซถ
module.9๐ โ also answers tomodule_autoload.9,module_builtin_require_force.9,module_find_section.9,module_getspecific.9,module_hold.9,module_init.9,module_init_class.9,module_kernel.9,module_load.9,module_load_vfs_init.9,module_name.9,module_rele.9,module_setspecific.9,module_source.9,module_specific_key_create.9,module_specific_key_delete.9,module_start_unload_thread.9,module_unload.9,module_register_callbacks.9,module_unregister_callbacks.9
twenty entries, one page. that's mother energy, no cap ๐
mstohz.9โ also answers tohztoms.9mutex.9๐ โ also answers tomutex_init.9,mutex_destroy.9,mutex_enter.9,mutex_exit.9,mutex_tryenter.9,mutex_owned.9,mutex_ownable.9,mutex_spin_enter.9,mutex_spin_exit.9m_tag.9โ also answers tom_tag_copy.9,m_tag_copy_chain.9,m_tag_delete.9,m_tag_delete_chain.9,m_tag_find.9,m_tag_free.9,m_tag_get.9,m_tag_prepend.9,m_tag_unlink.9namecache.9๐ต๏ธ โ also answers tocache_lookup.9,cache_revlookup.9,cache_enter.9,cache_purge.9,cache_purgevfs.9,namecache_print.9namei.9โ also answers tolookup.9,relookup.9,NDINIT.9nullop.9๐ โ also answers tovoidop.9,enodev.9,enxio.9,enoioctl.9,enosys.9,eopnotsupp.9
the stub squad fr fr. five of the six are literally error returns living their best life under an e prefix ๐
opencrypto.9๐ โ also answers tocrypto_get_driverid.9,crypto_register.9,crypto_kregister.9,crypto_unregister.9,crypto_done.9,crypto_kdone.9,crypto_newsession.9,crypto_freesession.9,crypto_dispatch.9,crypto_kdispatch.9,crypto_getreq.9,crypto_freereq.9
it's giving "register, unregister, dispatch, done, repeat" and the k variants are just standing behind their siblings being mysterious โจ
optstr.9โ also answers tooptstr_get.9pci.9๐ โ also answers topci_conf_read.9,pci_conf_write.9,pci_conf_print.9,pci_find_device.9,pci_get_capability.9,pci_get_ht_capability.9,pci_get_ext_capability.9,pci_mapreg_type.9,pci_mapreg_map.9,pci_mapreg_info.9,pci_get_powerstate.9,pci_set_powerstate.9,pci_vpd_read.9,pci_vpd_write.9,pci_make_tag.9,pci_decompose_tag.9,pci_findvendor.9,pci_devinfo.9,PCI_VENDOR.9,PCI_PRODUCT.9,PCI_REVISION.9
a whole buffet, and yes the last three are ALL CAPS because they're macros and macros yell ๐
pci_intr.9โ also answers topci_intr_map.9,pci_intr_string.9,pci_intr_evcnt.9,pci_intr_establish.9,pci_intr_establish_xname.9,pci_intr_disestablish.9,pci_intr_setattr.9pci_msi.9๐ โ also answers topci_msix.9,pci_intr_alloc.9,pci_intr_release.9,pci_intr_type.9,pci_intx_alloc.9,pci_intx_release.9,pci_msi_count.9,pci_msi_alloc.9,pci_msi_alloc_exact.9,pci_msi_release.9,pci_msi_establish.9,pci_msi_disestablish.9,pci_msix_count.9,pci_msix_alloc.9,pci_msix_alloc_exact.9,pci_msix_alloc_map.9,pci_msix_release.9,pci_msix_establish.9,pci_msix_disestablish.9
lowkey the pattern here is chef's kiss: count, alloc, alloc again but _exact, release, establish, disestablish โ for msi, for msix, and an honorary intx cameo ๐ฆ
pci_configure_bus.9โ also answers topci_conf_hook.9,pci_conf_interrupt.9,pciconf_resource_add.9,pciconf_resource_fini.9,pciconf_resource_init.9pckbport.9โจ๏ธ โ also answers topckbport_attach.9,pckbport_attach_slot.9,pckbport_cnattach.9,pckbportintr.9,pckbport_set_inputhandler.9,pckbport_flush.9,pckbport_poll_cmd.9,pckbport_enqueue_cmd.9,pckbport_poll_data.9,pckbport_set_poll.9,pckbport_xt_translation.9,pckbport_slot_enable.9
bestie look at pckbportintr.9 โ no underscore, just vibes ๐ญ everybody else got the underscore treatment and it said "not me"
pcmcia.9โ also answers topcmcia_function_init.9,pcmcia_function_enable.9,pcmcia_function_disable.9,pcmcia_io_alloc.9,pcmcia_io_free.9,pcmcia_io_map.9,pcmcia_io_unmap.9,pcmcia_mem_alloc.9,pcmcia_mem_free.9,pcmcia_mem_map.9,pcmcia_mem_unmap.9,pcmcia_intr_establish.9,pcmcia_intr_disestablish.9,pcmcia_cis_read_1.9,pcmcia_cis_read_2.9,pcmcia_cis_read_3.9,pcmcia_cis_read_4.9,pcmcia_cis_read_n.9,pcmcia_scan_cis.9
_read_1 through _read_4 and then _read_n?? the way they just gave up counting at four ๐
percpu.9โ also answers topercpu_alloc.9,percpu_create.9,percpu_free.9,percpu_getref.9,percpu_putref.9,percpu_foreach.9,percpu_foreach_xcall.9pfil.9โ also answers topfil_hook_get.9,pfil_add_hook.9,pfil_remove_hook.9,pfil_add_ihook.9,pfil_remove_ihook.9,pfil_head_register.9,pfil_head_unregister.9,pfil_head_get.9,pfil_run_hooks.9,pfil_run_addrhooks.9,pfil_run_ifhooks.9pktqueue.9๐ฆ โ also answers topktq_create.9,pktq_destroy.9,pktq_enqueue.9,pktq_dequeue.9,pktq_barrier.9,pktq_ifdetach.9,pktq_flush.9,pktq_set_maxlen.9,pktq_rps_hash.9,pktq_sysctl_setup.9,sysctl_pktq_rps_hash_handler.9
the way the prefix flips from pktqueue_ to pktq_ and then that last one has literally NO prefix at all โ she's the cousin who shows up uninvited and we love her ๐
pmap.9๐๐ฅ โ also answers topmap_init.9,pmap_virtual_space.9,pmap_steal_memory.9,pmap_kernel.9,pmap_create.9,pmap_destroy.9,pmap_reference.9,pmap_fork.9,pmap_resident_count.9,pmap_wired_count.9,pmap_growkernel.9,pmap_enter.9,pmap_remove.9,pmap_remove_all.9,pmap_protect.9,pmap_unwire.9,pmap_extract.9,pmap_kenter_pa.9,pmap_kremove.9,pmap_copy.9,pmap_update.9,pmap_activate.9,pmap_deactivate.9,pmap_zero_page.9,pmap_copy_page.9,pmap_page_protect.9,pmap_clear_modify.9,pmap_clear_reference.9,pmap_is_modified.9,pmap_is_referenced.9,pmap_phys_address.9,PMAP_MAP_POOLPAGE.9,PMAP_UNMAP_POOLPAGE.9,PMAP_PREFER.9
the longest one in this whole stretch and she EARNED it. thirty-four aliases. main character energy only. and yes, the last three are ALL CAPS macros, we already established that macros yell ๐
pcq.9โ also answers topcq_create.9,pcq_destroy.9,pcq_get.9,pcq_peek.9,pcq_maxitems.9,pcq_put.9pcu.9โ also answers topcu_load.9,pcu_save.9,pcu_save_all.9,pcu_discard.9,pcu_used_p.9pmf.9๐ธ โ also answers topmf_device_register.9,pmf_device_register1.9,pmf_device_deregister.9,pmf_device_suspend.9,pmf_device_resume.9,pmf_device_recursive_suspend.9,pmf_device_recursive_resume.9,pmf_device_subtree_resume.9,pmf_class_network_register.9,pmf_class_input_register.9,pmf_class_display_register.9,pmf_system_suspend.9,pmf_system_resume.9,pmf_system_shutdown.9,pmf_event_register.9,pmf_event_deregister.9,pmf_event_inject.9,pmf_set_platform.9,pmf_get_platform.9
pmf_device_register AND pmf_device_register1?? my god they ran out of names and just hit the 1 key ๐ญ slay honestly
pool.9โ also answers topool_create.9,pool_destroy.9,pool_get.9,pool_init.9,pool_put.9,pool_prime.9,pool_sethiwat.9,pool_setlowat.9,pool_sethardlimit.9pool_cache.9โ also answers topool_cache_init.9,pool_cache_destroy.9,pool_cache_get_paddr.9,pool_cache_get.9,pool_cache_put_paddr.9,pool_cache_put.9,pool_cache_destruct_object.9,pool_cache_invalidate.9,pool_cache_sethiwat.9,pool_cache_setlowat.9,pool_cache_sethardlimit.9powerhook_establish.9โ also answers topowerhook_disestablish.9preempt.9โ also answers toyield.9pserialize.9โ also answers topserialize_create.9,pserialize_destroy.9,pserialize_read_enter.9,pserialize_read_exit.9,pserialize_perform.9pslist.9๐ โ also answers toPSLIST_DESTROY.9,PSLIST_ENTRY_DESTROY.9,PSLIST_ENTRY_INIT.9,PSLIST_ENTRY_INITIALIZER.9,PSLIST_INIT.9,PSLIST_INITIALIZER.9,PSLIST_READER_FIRST.9,PSLIST_READER_FOREACH.9,PSLIST_READER_NEXT.9,PSLIST_WRITER_FIRST.9,PSLIST_WRITER_FOREACH.9,PSLIST_WRITER_INSERT_AFTER.9,PSLIST_WRITER_INSERT_BEFORE.9,PSLIST_WRITER_INSERT_HEAD.9,PSLIST_WRITER_NEXT.9,PSLIST_WRITER_REMOVE.9
every single one is SCREAMING in all caps and honestly? same. readers get FIRST / NEXT / FOREACH, writers get that plus the whole INSERT_AFTER / INSERT_BEFORE / INSERT_HEAD / REMOVE situation. it's giving organized โจ
psref.9โ also answers topsref_acquire.9,psref_class_create.9,psref_class_destroy.9,psref_copy.9,psref_held.9,psref_release.9,psref_target_destroy.9,psref_target_init.9ras.9โ also answers toras_lookup.9,ras_fork.9,ras_purgeall.9rasops.9โ also answers torasops_init.9,rasops_reconfig.9rnd.9๐ฒ โ also answers tornd_attach_source.9,rnd_detach_source.9,rnd_add_data.9,rnd_add_uint32.9roundup.9๐งฎ โ also answers tohowmany.9,rounddown.9,rounddown2.9,roundup2.9,powerof2.9
the math girlies are all on ONE page and the page isn't even named after most of them. roundup.9 said "I'll host" and everybody showed up ๐ซถ
rssadapt.9๐ก โ also answers toieee80211_rssadapt_choose.9,ieee80211_rssadapt_input.9,ieee80211_rssadapt_lower_rate.9,ieee80211_rssadapt_raise_rate.9,ieee80211_rssadapt_updatestats.9
every alias has the full ieee80211_ prefix and honestly that's commitment ๐
rt_timer.9โณ โ also answers tort_timer_queue_create.9,rt_timer_queue_change.9,rt_timer_queue_destroy.9,rt_timer_add.9,rt_timer_remove_all.9
ok and that's where this chunk of the MLINKS wall ends โ but bestie we are NOT done, there's more page coming, don't you dare close the terminal ๐
okay bestie, the alias parade continues and it is lowkey organized chaos ๐ซถโจ every line below is the literal MLINKS+= / MAN+= directive โ names exactly as they appear, no cap. don't let the wall of underscores scare you ๐
first up: the rwlock friend group, the STACK crew, and a couple of MAN+= pages that get their own whole moment ๐ธ
MLINKS+=rwlock.9 rw.9 rwlock.9 rw_init.9 rwlock.9 rw_destroy.9 rwlock.9 rw_enter.9 rwlock.9 rw_exit.9 rwlock.9 rw_tryenter.9 rwlock.9 rw_tryupgrade.9 rwlock.9 rw_downgrade.9 rwlock.9 rw_read_held.9 rwlock.9 rw_write_held.9 rwlock.9 rw_lock_held.9 rwlock.9 rw_lock_op.9
MLINKS+=STACK.9 STACK_ALLOC.9 STACK.9 STACK_MAX.9 STACK.9 STACK_ALIGN.9 STACK.9 STACK_GROW.9 STACK.9 STACK_SHRINK.9
MAN+= secmodel.9
MLINKS+=secmodel.9 secmodel_register.9 secmodel.9 secmodel_eval.9 secmodel.9 secmodel_deregister.9
MAN+= select.9
MLINKS+=select.9 selinit.9 select.9 seldestroy.9 select.9 selrecord.9 select.9 selnotify.9
MLINKS+=SET.9 CLR.9 SET.9 ISSET.9
MLINKS+=setbit.9 clrbit.9 setbit.9 isset.9 setbit.9 isclr.9
MLINKS+=setjmp.9 longjmp.9
MLINKS+=shutdownhook_establish.9 shutdownhook_disestablish.9
then the signal block said โiโm the main characterโ and honestly? it ate ๐ฅ every alias is right here, including the little 1.9 girlies โ no skipping ๐
MLINKS+=signal.9 siginit.9 signal.9 sigactsinit.9 signal.9 sigactsunshare.9 signal.9 sigactsfree.9 signal.9 execsigs.9 signal.9 sigaction1.9 signal.9 sigprocmask1.9 signal.9 sigpending1.9 signal.9 sigsuspend1.9 signal.9 sigaltstack1.9 signal.9 pgsignal.9 signal.9 kpgsignal.9 signal.9 trapsignal.9 signal.9 psignal.9 signal.9 kpsignal.9 signal.9 issignal.9 signal.9 postsig.9 signal.9 killproc.9 signal.9 sigexit.9 signal.9 sendsig.9 signal.9 sigcode.9 signal.9 sigtramp.9
next: sockopt, softintr, and specificdata โ the way these names just keep going ๐ญ but theyโre all accounted for, fr fr ๐ฆ
MLINKS+=sockopt.9 sockopt_init.9 sockopt.9 sockopt_destroy.9 sockopt.9 sockopt_get.9 sockopt.9 sockopt_getint.9 sockopt.9 sockopt_set.9 sockopt.9 sockopt_setint.9
MLINKS+=softintr.9 softintr_establish.9 softintr.9 softintr_disestablish.9 softintr.9 softintr_schedule.9 softintr.9 softint.9 softintr.9 softint_establish.9 softintr.9 softint_disestablish.9 softintr.9 softint_schedule.9
MLINKS+=specificdata.9 specificdata_domain_create.9 specificdata.9 specificdata_domain_delete.9 specificdata.9 specificdata_key_create.9 specificdata.9 specificdata_key_delete.9 specificdata.9 specificdata_init.9 specificdata.9 specificdata_fini.9 specificdata.9 specificdata_getspecific.9 specificdata.9 specificdata_getspecific_unlocked.9 specificdata.9 specificdata_setspecific.9 specificdata.9 specificdata_setspecific_nowait.9
spl era + strlist era, because why not have a whole bouquet of interrupt levels and string-list helpers ๐
MLINKS+=spl.9 spl0.9 spl.9 splbio.9 spl.9 splclock.9 spl.9 splhigh.9 spl.9 splimp.9 spl.9 spllowersoftclock.9 spl.9 splnet.9 spl.9 splsched.9 spl.9 splserial.9 spl.9 splsoftclock.9 spl.9 splsoftnet.9 spl.9 splsoftserial.9 spl.9 splstatclock.9 spl.9 spltty.9 spl.9 splvm.9 spl.9 splx.9 spl.9 splsoftbio.9
MLINKS+=strlist.9 strlist_append.9 strlist.9 strlist_count.9 strlist.9 strlist_index.9 strlist.9 strlist_match.9 strlist.9 strlist_next.9 strlist.9 strlist_pmatch.9 strlist.9 strlist_string.9
okay the sysctl line is iconic in the โhow many aliases can one page haveโ sense ๐ itโs all here, bestie:
MLINKS+=sysctl.9 old_sysctl.9 sysctl.9 sysctl_create.9 sysctl.9 sysctl_createv.9 sysctl.9 sysctl_destroy.9 sysctl.9 sysctl_destroyv.9 sysctl.9 sysctl_dispatch.9 sysctl.9 sysctl_free.9 sysctl.9 sysctl_init.9 sysctl.9 sysctl_locate.9 sysctl.9 sysctl_lock.9 sysctl.9 sysctl_lookup.9 sysctl.9 sysctl_needfunc.9 sysctl.9 sysctl_notavail.9 sysctl.9 sysctl_null.9 sysctl.9 sysctl_query.9 sysctl.9 sysctl_teardown.9 sysctl.9 sysctl_unlock.9
sysmon_envsys, sysmon_pswitch, sysmon_taskq, then time stuff and tc โ a whole ecosystem honestly ๐ฑ
MLINKS+=sysmon_envsys.9 sysmon_envsys_create.9 sysmon_envsys.9 sysmon_envsys_destroy.9 sysmon_envsys.9 sysmon_envsys_register.9 sysmon_envsys.9 sysmon_envsys_unregister.9 sysmon_envsys.9 sysmon_envsys_sensor_attach.9 sysmon_envsys.9 sysmon_envsys_sensor_detach.9
MLINKS+=sysmon_pswitch.9 sysmon_pswitch_event.9 sysmon_pswitch.9 sysmon_pswitch_register.9 sysmon_pswitch.9 sysmon_pswitch_unregister.9
MLINKS+=sysmon_taskq.9 sysmon_task_queue_fini.9 sysmon_taskq.9 sysmon_task_queue_init.9 sysmon_taskq.9 sysmon_task_queue_preinit.9 sysmon_taskq.9 sysmon_task_queue_sched.9
MLINKS+=time_second.9 boottime.9 time_second.9 time_uptime.9
MLINKS+=timecounter.9 tc_init.9
MLINKS+=tc.9 tc_intr_establish.9 tc.9 tc_intr_disestablish.9 tc.9 tc_intr_evcnt.9 tc.9 tc_mb.9 tc.9 tc_wmb.9 tc.9 tc_syncbus.9 tc.9 tc_badaddr.9 tc.9 TC_DENSE_TO_SPARSE.9 tc.9 TC_PHYS_TO_UNCACHED.9
threadpool and todr said โweโre not doneโ and they meant it ๐
MLINKS+=threadpool.9 threadpool_get.9 threadpool.9 threadpool_put.9 threadpool.9 threadpool_percpu_get.9 threadpool.9 threadpool_percpu_put.9 threadpool.9 threadpool_percpu_ref.9 threadpool.9 threadpool_percpu_ref_remote.9 threadpool.9 threadpool_job_init.9 threadpool.9 threadpool_job_destroy.9 threadpool.9 threadpool_job_done.9 threadpool.9 threadpool_schedule_job.9 threadpool.9 threadpool_cancel_job.9 threadpool.9 threadpool_cancel_job_async.9
MLINKS+=todr.9 todr_gettime.9 todr.9 todr_settime.9 todr.9 clock_ymdhms_to_secs.9 todr.9 clock_secs_to_ymdhms.9
now weโre in the ubc / ufetch / ustore zone โ tiny names, big energy โจ
MLINKS+=ubc.9 ubc_uiomove.9 ubc.9 ubc_zerorange.9 ubc.9 ubc_purge.9
MLINKS+=ufetch.9 ufetch_8.9 ufetch.9 ufetch_16.9 ufetch.9 ufetch_32.9 ufetch.9 ufetch_64.9 ufetch.9 ufetch_char.9 ufetch.9 ufetch_short.9 ufetch.9 ufetch_int.9 ufetch.9 ufetch_long.9 ufetch.9 ufetch_ptr.9
MLINKS+=ustore.9 ustore_8.9 ustore.9 ustore_16.9 ustore.9 ustore_32.9 ustore.9 ustore_64.9 ustore.9 ustore_char.9 ustore.9 ustore_short.9 ustore.9 ustore_int.9 ustore.9 ustore_long.9 ustore.9 ustore_ptr.9
and then uvm walked in with the longest alias list in the group chat ๐ญ itโs giving โi have 40 cousins and youโre gonna learn all their names.โ every token is below, no cap ๐ซถ
MLINKS+=uvm.9 uvm_init.9 uvm.9 uvm_init_limits.9 uvm.9 uvm_setpagesize.9 uvm.9 uvm_swap_init.9 uvm.9 uvm_fault.9 uvm.9 uvm_vnp_setsize.9 uvm.9 uvm_io.9 uvm.9 uvm_pagealloc.9 uvm.9 uvm_pagerealloc.9 uvm.9 uvm_pagefree.9 uvm.9 uvm_pglistalloc.9 uvm.9 uvm_pglistfree.9 uvm.9 uvm_page_physload.9 uvm.9 uvm_pageout.9 uvm.9 uvm_scheduler.9 uvm.9 uao_create.9 uvm.9 uao_detach.9 uvm.9 uao_reference.9 uvm.9 uvm_chgkprot.9 uvm.9 uvm_kernacc.9 uvm.9 uvm_vslock.9 uvm.9 uvm_vsunlock.9 uvm.9 uvm_meter.9 uvm.9 uvm_fork.9 uvm.9 uvm_grow.9 uvm.9 uvn_findpages.9 uvm.9 uvm_loan.9 uvm.9 uvm_unloan.9 uvm.9 atop.9 uvm.9 ptoa.9 uvm.9 round_page.9 uvm.9 trunc_page.9
MLINKS+=uvm_km.9 uvm_km_alloc.9 uvm_km.9 uvm_km_free.9 uvm_km.9 uvm_km_suballoc.9
MLINKS+=uvm_map.9 uvm_unmap.9 uvm_map.9 uvm_map_pageable.9 uvm_map.9 uvm_map_checkprot.9 uvm_map.9 uvm_map_protect.9 uvm_map.9 uvm_deallocate.9 uvm_map.9 uvmspace_alloc.9 uvm_map.9 uvmspace_exec.9 uvm_map.9 uvmspace_fork.9 uvm_map.9 uvmspace_free.9 uvm_map.9 uvmspace_share.9 uvm_map.9 uvmspace_unshare.9
MLINKS+=uvm_obj_wirepages.9 uvm_obj_unwirepages.9
finally for this part: the vme lineup and one lonely vattr line hanging at the edge like โmy part isnโt done yetโ ๐
MLINKS+=vme.9 vme_probe.9 vme.9 vme_space_map.9 vme.9 vme_space_unmap.9 vme.9 vme_intr_map.9 vme.9 vme_intr_establish.9 vme.9 vme_intr_disestablish.9 vme.9 vme_intr_evcnt.9 vme.9 vme_dmamap_create.9 vme.9 vme_dmamap_destroy.9 vme.9 vme_dmamem_alloc.9 vme.9 vme_dmamem_free.9 vme.9 vme_space_alloc.9 vme.9 vme_space_free.9 vme.9 vme_space_get.9
MLINKS+=vattr.9
and yeah, it literally stops at MLINKS+=vattr.9 โ cliffhanger behavior ๐ญ keep scrolling bestie, the next batch is incoming ๐
okay so we're in the home stretch of the MLINKS+= list and honestly it's giving โจ*final boss of cross references*โจ โ it's literally page name after page name, each one wired up so the same man page answers to more than one name. no cap, every single one is here. ๐
first up, one little leftover from the vattr fam that spilled over:
vattr_null.9โ tail end of thevattrgroup, chilling here all on its own.
vfs_hooks.9โ the header for the VFS hooks situation, withvfs_hooks_unmount.9riding along as its buddy.vfsops.9โ okay this one is stacked, bestie, look at this lineup:VFS_MOUNT.9,VFS_START.9,VFS_UNMOUNT.9,VFS_ROOT.9,VFS_QUOTACTL.9VFS_STATVFS.9,VFS_SYNC.9,VFS_VGET.9,VFS_LOADVNODE.9,VFS_NEWVNODE.9VFS_FHTOVP.9,VFS_VPTOFH.9,VFS_CHECKEXP.9,VFS_SNAPSHOT.9,VFS_SUSPENDCTL.9
vfssubr.9โ the support squad, and there are so many of them:vfs_getnewfsid.9,vfs_getvfs.9,vfs_export.9,vfs_showexport.9,vfs_export_lookup.9vfs_setpublicfs.9,vfs_mountedon.9,vfs_mountroot.9,vfs_unmountall.9vfs_busy.9,vfs_unbusy.9,vfs_mountalloc.9,vfs_rootmountalloc.9vfs_shutdown.9,vfs_attach.9,vfs_detach.9,vfs_reinit.9,vfs_getopsbyname.9vfs_resume.9,vfs_suspend.9,vfs_vnode_iterator_init.9,vfs_vnode_iterator_destroy.9,vfs_vnode_iterator_next.9
vmem.9โ allocator things, all of them living under one roof:vmem_alloc.9,vmem_create.9,vmem_destroy.9,vmem_free.9vmem_xalloc.9,vmem_xalloc_addr.9,vmem_xfree.9,vmem_xfreeall.9
vnode.9โ the big vnode page, and the aliases are chef's kiss:vref.9,vrele.9,vrele_async.9,vput.9,vhold.9,holdrele.9vcache_get.9,vcache_new.9,vcache_rekey_enter.9,vcache_rekey_exit.9vrecycle.9,vgone.9,vgonel.9,vdead_check.9,vflush.9bdevvp.9,cdevvp.9,vfinddev.9,vdevgone.9,vwakeup.9vflushbuf.9,vinvalbuf.9,vtruncbuf.9,vprint.9
vnodeops.9โ literally the entire VOP alphabet, strap in ๐ซ :VOP_LOOKUP.9,VOP_CREATE.9,VOP_MKNOD.9,VOP_OPEN.9,VOP_CLOSE.9VOP_ACCESS.9,VOP_GETATTR.9,VOP_SETATTR.9,VOP_READ.9,VOP_WRITE.9VOP_IOCTL.9,VOP_FCNTL.9,VOP_POLL.9,VOP_REVOKE.9,VOP_MMAP.9VOP_FSYNC.9,VOP_SEEK.9,VOP_REMOVE.9,VOP_LINK.9,VOP_RENAME.9VOP_MKDIR.9,VOP_RMDIR.9,VOP_SYMLINK.9,VOP_READDIR.9,VOP_READLINK.9VOP_ABORTOP.9,VOP_INACTIVE.9,VOP_RECLAIM.9,VOP_LOCK.9,VOP_UNLOCK.9VOP_ISLOCKED.9,VOP_BMAP.9,VOP_PRINT.9,VOP_PATHCONF.9,VOP_ADVLOCK.9VOP_LEASE.9,VOP_WHITEOUT.9,VOP_GETPAGES.9,VOP_PUTPAGES.9,VOP_STRATEGY.9VOP_BWRITE.9,VOP_GETEXTATTR.9,VOP_SETEXTATTR.9,VOP_LISTEXTATTR.9
vnfileops.9โ file-op flavoured vnode stuff:vn_closefile.9,vn_fcntl.9,vn_ioctl.9,vn_read.9,vn_poll.9,vn_statfile.9,vn_write.9
vnsubr.9โ the subroutine squad:vn_bwrite.9,vn_close.9,vn_default_error.9,vn_isunder.9,vn_lock.9vn_markexec.9,vn_marktext.9,vn_rdwr.9,vn_stat.9,vn_open.9,vn_writechk.9
wapbl.9โ the write-ahead journaling crowd, lowkey iconic:wapbl_start.9,wapbl_stop.9,wapbl_begin.9,wapbl_end.9,wapbl_flush.9,wapbl_discard.9wapbl_add_buf.9,wapbl_remove_buf.9,wapbl_resize_buf.9wapbl_register_inode.9,wapbl_unregister_inode.9,wapbl_register_deallocation.9wapbl_jlock_assert.9,wapbl_junlock_assert.9
workqueue.9โ short and sweet, we love to see it:workqueue_create.9,workqueue_enqueue.9,workqueue_destroy.9
wsdisplay.9โ console/display era ๐:wsdisplay_switchtoconsole.9,wsdisplay_cnattach.9,wsdisplaydevprint.9,wsemuldisplaydevprint.9
wsfont.9โ fonts, fonts, fonts:wsfont_init.9,wsfont_matches.9,wsfont_find.9,wsfont_add.9,wsfont_remove.9wsfont_enum.9,wsfont_lock.9,wsfont_unlock.9,wsfont_getflg.9,wsfont_map_unichar.9
wskbd.9โ keyboard bestie โจ๏ธ:wskbd_input.9,wskbd_rawinput.9,wskbd_cnattach.9,wskbd_cndetach.9,wskbddevprint.9
wsmouse.9โ and the mouse to match ๐ฑ๏ธ:wsmouse_input.9,wsmousedevprint.9
xcall.9โ cross-call girlies:xc_broadcast.9,xc_unicast.9,xc_wait.9
panic.9โ and the very last pairing, appropriately dramatic ๐:vpanic.9
๐ the actual last line
then, right at the bottom, there's one more directive that isn't a link at all โ it's where the build goes looking for the arch-specific subdirectories:
SUBDIR= man9.i386 man9.sun3 man9.x86
that's it, that's the whole list โ you made it, bestie ๐ซถ
and that's the page! the footer at the very bottom is the usual source/version-and-date situation (the NetBSD source and version tag plus the date stamp), so consider this your cute lil sign-off: mwah, go read some man pages, ily. ๐๐
๐ฆ where this page comes from
- nixpkgs unstable: netbsd-source 11.0
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms