? boot.patch ? cscope.out ? tooldir.NetBSD-4.99.3-i386 ? lib/libc/LintSysNoerr.c ? lib/libc/LintSysNormal.c ? lib/libc/LintSysPseudoNoerr.c ? lib/libc/____semctl13.S ? lib/libc/____semctl13.po ? lib/libc/___runetype_mb.po ? lib/libc/__clone.po ? lib/libc/__cmsg_alignbytes.po ? lib/libc/__dn_comp.po ? lib/libc/__fhopen40.S ? lib/libc/__fhopen40.po ? lib/libc/__fhstat40.S ? lib/libc/__fhstat40.po ? lib/libc/__fhstatvfs140.S ? lib/libc/__fhstatvfs140.po ? lib/libc/__fstat30.S ? lib/libc/__fstat30.po ? lib/libc/__getcwd.S ? lib/libc/__getcwd.po ? lib/libc/__getdents30.S ? lib/libc/__getdents30.po ? lib/libc/__getfh30.S ? lib/libc/__getfh30.po ? lib/libc/__getlogin.S ? lib/libc/__getlogin.po ? lib/libc/__isthreaded.po ? lib/libc/__lstat30.S ? lib/libc/__lstat30.po ? lib/libc/__mb_cur_max.po ? lib/libc/__msgctl13.S ? lib/libc/__msgctl13.po ? lib/libc/__msync13.S ? lib/libc/__msync13.po ? lib/libc/__ntp_gettime30.S ? lib/libc/__ntp_gettime30.po ? lib/libc/__posix_chown.S ? lib/libc/__posix_chown.po ? lib/libc/__posix_fchown.S ? lib/libc/__posix_fchown.po ? lib/libc/__posix_lchown.S ? lib/libc/__posix_lchown.po ? lib/libc/__posix_rename.S ? lib/libc/__posix_rename.po ? lib/libc/__res_close.po ? lib/libc/__res_send.po ? lib/libc/__rpc_getxid.po ? lib/libc/__semctl13.po ? lib/libc/__setlogin.S ? lib/libc/__setlogin.po ? lib/libc/__shmctl13.S ? lib/libc/__shmctl13.po ? lib/libc/__sigaction14_sigtramp.po ? lib/libc/__sigaction_sigtramp.S ? lib/libc/__sigaction_sigtramp.po ? lib/libc/__sigaltstack14.S ? lib/libc/__sigaltstack14.po ? lib/libc/__sigpending14.S ? lib/libc/__sigpending14.po ? lib/libc/__sigprocmask14.S ? lib/libc/__sigprocmask14.po ? lib/libc/__sigsuspend14.S ? lib/libc/__sigsuspend14.po ? lib/libc/__sigtimedwait.S ? lib/libc/__sigtimedwait.po ? lib/libc/__sigtramp2.po ? lib/libc/__socket30.S ? lib/libc/__socket30.po ? lib/libc/__stat30.S ? lib/libc/__stat30.po ? lib/libc/__strsignal.po ? lib/libc/__syscall.po ? lib/libc/__sysctl.S ? lib/libc/__sysctl.po ? lib/libc/__vfork14.po ? lib/libc/_brk.po ? lib/libc/_catclose.po ? lib/libc/_catgets.po ? lib/libc/_catopen.po ? lib/libc/_daylight.po ? lib/libc/_def_messages.po ? lib/libc/_def_monetary.po ? lib/libc/_def_numeric.po ? lib/libc/_def_time.po ? lib/libc/_err.po ? lib/libc/_errno.po ? lib/libc/_errx.po ? lib/libc/_exit.S ? lib/libc/_exit.po ? lib/libc/_fileno.po ? lib/libc/_fork.po ? lib/libc/_fseeko.po ? lib/libc/_ftello.po ? lib/libc/_getcontext.po ? lib/libc/_inet_aton.po ? lib/libc/_inet_pton.po ? lib/libc/_ksem_close.S ? lib/libc/_ksem_close.po ? lib/libc/_ksem_destroy.S ? lib/libc/_ksem_destroy.po ? lib/libc/_ksem_getvalue.S ? lib/libc/_ksem_getvalue.po ? lib/libc/_ksem_init.S ? lib/libc/_ksem_init.po ? lib/libc/_ksem_open.S ? lib/libc/_ksem_open.po ? lib/libc/_ksem_post.S ? lib/libc/_ksem_post.po ? lib/libc/_ksem_trywait.S ? lib/libc/_ksem_trywait.po ? lib/libc/_ksem_unlink.S ? lib/libc/_ksem_unlink.po ? lib/libc/_ksem_wait.S ? lib/libc/_ksem_wait.po ? lib/libc/_lwp.po ? lib/libc/_lwp_continue.S ? lib/libc/_lwp_continue.po ? lib/libc/_lwp_create.S ? lib/libc/_lwp_create.po ? lib/libc/_lwp_exit.S ? lib/libc/_lwp_exit.po ? lib/libc/_lwp_getprivate.S ? lib/libc/_lwp_getprivate.po ? lib/libc/_lwp_self.S ? lib/libc/_lwp_self.po ? lib/libc/_lwp_setprivate.S ? lib/libc/_lwp_setprivate.po ? lib/libc/_lwp_suspend.S ? lib/libc/_lwp_suspend.po ? lib/libc/_lwp_wait.S ? lib/libc/_lwp_wait.po ? lib/libc/_lwp_wakeup.S ? lib/libc/_lwp_wakeup.po ? lib/libc/_pipe.po ? lib/libc/_rand48.po ? lib/libc/_sbrk.po ? lib/libc/_setjmp.po ? lib/libc/_strerror_r.po ? lib/libc/_strlcat.po ? lib/libc/_strlcpy.po ? lib/libc/_strtof.po ? lib/libc/_strtoimax.po ? lib/libc/_strtold.po ? lib/libc/_strtoll.po ? lib/libc/_strtoull.po ? lib/libc/_strtoumax.po ? lib/libc/_sysconf.po ? lib/libc/_verr.po ? lib/libc/_verrx.po ? lib/libc/_vwarn.po ? lib/libc/_vwarnx.po ? lib/libc/_warn.po ? lib/libc/_warnx.po ? lib/libc/_wctrans.po ? lib/libc/a64l.po ? lib/libc/abort.po ? lib/libc/abs.po ? lib/libc/accept.S ? lib/libc/accept.po ? lib/libc/access.S ? lib/libc/access.po ? lib/libc/acct.S ? lib/libc/acct.po ? lib/libc/adddi3.po ? lib/libc/adjtime.po ? lib/libc/alarm.po ? lib/libc/aliasname.po ? lib/libc/alloca.po ? lib/libc/alphasort.po ? lib/libc/anddi3.po ? lib/libc/arc4random.po ? lib/libc/asctime.po ? lib/libc/ashldi3.po ? lib/libc/ashrdi3.po ? lib/libc/asprintf.po ? lib/libc/assert.po ? lib/libc/assertions.po ? lib/libc/atexit.po ? lib/libc/atof.po ? lib/libc/atoi.po ? lib/libc/atol.po ? lib/libc/atoll.po ? lib/libc/auth_none.po ? lib/libc/auth_unix.po ? lib/libc/authunix_prot.po ? lib/libc/base64.po ? lib/libc/basename.po ? lib/libc/bcmp.po ? lib/libc/bcopy.po ? lib/libc/bind.S ? lib/libc/bind.po ? lib/libc/bindresvport.po ? lib/libc/bm.po ? lib/libc/brk.po ? lib/libc/bsearch.po ? lib/libc/bswap64.po ? lib/libc/bt_close.po ? lib/libc/bt_conv.po ? lib/libc/bt_debug.po ? lib/libc/bt_delete.po ? lib/libc/bt_get.po ? lib/libc/bt_open.po ? lib/libc/bt_overflow.po ? lib/libc/bt_page.po ? lib/libc/bt_put.po ? lib/libc/bt_search.po ? lib/libc/bt_seq.po ? lib/libc/bt_split.po ? lib/libc/bt_utils.po ? lib/libc/byte_swap_2.po ? lib/libc/byte_swap_4.po ? lib/libc/bzero.po ? lib/libc/calloc.po ? lib/libc/catclose.po ? lib/libc/catgets.po ? lib/libc/catopen.po ? lib/libc/cerror.po ? lib/libc/cfgetispeed.po ? lib/libc/cfgetospeed.po ? lib/libc/cfmakeraw.po ? lib/libc/cfsetispeed.po ? lib/libc/cfsetospeed.po ? lib/libc/cfsetspeed.po ? lib/libc/chdir.S ? lib/libc/chdir.po ? lib/libc/chflags.S ? lib/libc/chflags.po ? lib/libc/chmod.S ? lib/libc/chmod.po ? lib/libc/chown.S ? lib/libc/chown.po ? lib/libc/chroot.S ? lib/libc/chroot.po ? lib/libc/citrus_bcs.po ? lib/libc/citrus_csmapper.po ? lib/libc/citrus_ctype.po ? lib/libc/citrus_ctype_fallback.po ? lib/libc/citrus_db.po ? lib/libc/citrus_db_hash.po ? lib/libc/citrus_esdb.po ? lib/libc/citrus_hash.po ? lib/libc/citrus_iconv.po ? lib/libc/citrus_lookup.po ? lib/libc/citrus_mapper.po ? lib/libc/citrus_memstream.po ? lib/libc/citrus_mmap.po ? lib/libc/citrus_module.po ? lib/libc/citrus_none.po ? lib/libc/citrus_stdenc.po ? lib/libc/clnt_bcast.po ? lib/libc/clnt_dg.po ? lib/libc/clnt_generic.po ? lib/libc/clnt_perror.po ? lib/libc/clnt_raw.po ? lib/libc/clnt_simple.po ? lib/libc/clnt_vc.po ? lib/libc/clock.po ? lib/libc/clock_getres.S ? lib/libc/clock_getres.po ? lib/libc/clock_gettime.S ? lib/libc/clock_gettime.po ? lib/libc/clock_settime.po ? lib/libc/close.S ? lib/libc/close.po ? lib/libc/closedir.po ? lib/libc/closefrom.po ? lib/libc/clrerr.po ? lib/libc/cmpdi2.po ? lib/libc/compat_Ovfork.po ? lib/libc/compat___fhstat30.po ? lib/libc/compat___fts13.po ? lib/libc/compat___fts30.po ? lib/libc/compat___fts31.po ? lib/libc/compat___glob13.po ? lib/libc/compat___semctl.po ? lib/libc/compat___sigreturn14.po ? lib/libc/compat___sigtramp1.po ? lib/libc/compat___stat13.po ? lib/libc/compat__sys_errlist.po ? lib/libc/compat__sys_nerr.po ? lib/libc/compat__sys_siglist.po ? lib/libc/compat_errlist.po ? lib/libc/compat_fhopen.po ? lib/libc/compat_fhstatvfs.po ? lib/libc/compat_fhstatvfs1.po ? lib/libc/compat_frexp_ieee754.po ? lib/libc/compat_fts.po ? lib/libc/compat_getdents.po ? lib/libc/compat_getdirentries.po ? lib/libc/compat_getfh.po ? lib/libc/compat_getmntinfo.po ? lib/libc/compat_glob.po ? lib/libc/compat_ldexp_ieee754.po ? lib/libc/compat_modf_ieee754.po ? lib/libc/compat_msgctl.po ? lib/libc/compat_msync.po ? lib/libc/compat_ndbmdatum.po ? lib/libc/compat_ns_addr.po ? lib/libc/compat_ns_ntoa.po ? lib/libc/compat_ntp_gettime.po ? lib/libc/compat_opendir.po ? lib/libc/compat_readdir.po ? lib/libc/compat_scandir.po ? lib/libc/compat_semctl.po ? lib/libc/compat_setjmp.po ? lib/libc/compat_shmctl.po ? lib/libc/compat_sigaction.po ? lib/libc/compat_sigaltstack.po ? lib/libc/compat_siglist.po ? lib/libc/compat_signame.po ? lib/libc/compat_sigpending.po ? lib/libc/compat_sigprocmask.po ? lib/libc/compat_sigreturn.po ? lib/libc/compat_sigsetjmp.po ? lib/libc/compat_sigsetops.po ? lib/libc/compat_sigsuspend.po ? lib/libc/compat_socket.po ? lib/libc/compat_stat.po ? lib/libc/compat_statfs.po ? lib/libc/compat_times.po ? lib/libc/compat_timezone.po ? lib/libc/compat_unsetenv.po ? lib/libc/compat_unvis.po ? lib/libc/compat_utmpx.po ? lib/libc/confstr.po ? lib/libc/connect.S ? lib/libc/connect.po ? lib/libc/creat.po ? lib/libc/ctermid.po ? lib/libc/ctype_.po ? lib/libc/ctypeio.po ? lib/libc/daemon.po ? lib/libc/db.po ? lib/libc/devname.po ? lib/libc/difftime.po ? lib/libc/dirname.po ? lib/libc/disklabel.po ? lib/libc/div.po ? lib/libc/divdi3.po ? lib/libc/divsi3.po ? lib/libc/dlfcn_elf.po ? lib/libc/dmisc.po ? lib/libc/drand48.po ? lib/libc/dtoa.po ? lib/libc/dup.S ? lib/libc/dup.po ? lib/libc/dup2.S ? lib/libc/dup2.po ? lib/libc/erand48_ieee754.po ? lib/libc/err.po ? lib/libc/errlist.po ? lib/libc/errno.po ? lib/libc/errx.po ? lib/libc/ethers.po ? lib/libc/ev_streams.po ? lib/libc/ev_timers.po ? lib/libc/execl.po ? lib/libc/execle.po ? lib/libc/execlp.po ? lib/libc/exect.po ? lib/libc/execv.po ? lib/libc/execve.S ? lib/libc/execve.po ? lib/libc/execvp.po ? lib/libc/exit.po ? lib/libc/extattr.po ? lib/libc/extattr_delete_fd.S ? lib/libc/extattr_delete_fd.po ? lib/libc/extattr_delete_file.S ? lib/libc/extattr_delete_file.po ? lib/libc/extattr_delete_link.S ? lib/libc/extattr_delete_link.po ? lib/libc/extattr_get_fd.S ? lib/libc/extattr_get_fd.po ? lib/libc/extattr_get_file.S ? lib/libc/extattr_get_file.po ? lib/libc/extattr_get_link.S ? lib/libc/extattr_get_link.po ? lib/libc/extattr_list_fd.S ? lib/libc/extattr_list_fd.po ? lib/libc/extattr_list_file.S ? lib/libc/extattr_list_file.po ? lib/libc/extattr_list_link.S ? lib/libc/extattr_list_link.po ? lib/libc/extattr_set_fd.S ? lib/libc/extattr_set_fd.po ? lib/libc/extattr_set_file.S ? lib/libc/extattr_set_file.po ? lib/libc/extattr_set_link.S ? lib/libc/extattr_set_link.po ? lib/libc/extattrctl.S ? lib/libc/extattrctl.po ? lib/libc/fabs.po ? lib/libc/fchdir.S ? lib/libc/fchdir.po ? lib/libc/fchflags.S ? lib/libc/fchflags.po ? lib/libc/fchmod.S ? lib/libc/fchmod.po ? lib/libc/fchown.S ? lib/libc/fchown.po ? lib/libc/fchroot.S ? lib/libc/fchroot.po ? lib/libc/fclose.po ? lib/libc/fcntl.S ? lib/libc/fcntl.po ? lib/libc/fdatasync.S ? lib/libc/fdatasync.po ? lib/libc/fdopen.po ? lib/libc/feof.po ? lib/libc/ferror.po ? lib/libc/fflush.po ? lib/libc/ffs.po ? lib/libc/fgetc.po ? lib/libc/fgetln.po ? lib/libc/fgetpos.po ? lib/libc/fgets.po ? lib/libc/fgetstr.po ? lib/libc/fgetwc.po ? lib/libc/fgetwln.po ? lib/libc/fgetws.po ? lib/libc/fileno.po ? lib/libc/findfp.po ? lib/libc/fixdfdi.po ? lib/libc/fixdfsi.po ? lib/libc/fixsfdi.po ? lib/libc/fixunsdfdi.po ? lib/libc/fixunsdfsi.po ? lib/libc/fixunssfdi.po ? lib/libc/fktrace.S ? lib/libc/fktrace.po ? lib/libc/flags.po ? lib/libc/floatdidf.po ? lib/libc/floatdisf.po ? lib/libc/floatunsdidf.po ? lib/libc/flock.S ? lib/libc/flock.po ? lib/libc/flockfile.po ? lib/libc/flt_rounds.po ? lib/libc/fmtcheck.po ? lib/libc/fmtmsg.po ? lib/libc/fnmatch.po ? lib/libc/fopen.po ? lib/libc/fork.po ? lib/libc/fparseln.po ? lib/libc/fpathconf.S ? lib/libc/fpathconf.po ? lib/libc/fpclassifyd_ieee754.po ? lib/libc/fpclassifyf_ieee754.po ? lib/libc/fpclassifyl.po ? lib/libc/fpgetmask.po ? lib/libc/fpgetround.po ? lib/libc/fpgetsticky.po ? lib/libc/fprintf.po ? lib/libc/fpsetmask.po ? lib/libc/fpsetround.po ? lib/libc/fpsetsticky.po ? lib/libc/fpurge.po ? lib/libc/fputc.po ? lib/libc/fputs.po ? lib/libc/fputwc.po ? lib/libc/fputws.po ? lib/libc/fread.po ? lib/libc/freopen.po ? lib/libc/fscanf.po ? lib/libc/fseek.po ? lib/libc/fseeko.po ? lib/libc/fsetpos.po ? lib/libc/fstab.po ? lib/libc/fstatvfs1.S ? lib/libc/fstatvfs1.po ? lib/libc/fsync.S ? lib/libc/fsync.po ? lib/libc/fsync_range.S ? lib/libc/fsync_range.po ? lib/libc/ftell.po ? lib/libc/ftello.po ? lib/libc/ftok.po ? lib/libc/ftruncate.po ? lib/libc/fts.po ? lib/libc/ftw.po ? lib/libc/funopen.po ? lib/libc/futimes.S ? lib/libc/futimes.po ? lib/libc/fvwrite.po ? lib/libc/fwalk.po ? lib/libc/fwide.po ? lib/libc/fwprintf.po ? lib/libc/fwrite.po ? lib/libc/fwscanf.po ? lib/libc/gdtoa_locks.po ? lib/libc/getegid.S ? lib/libc/geteuid.S ? lib/libc/getgid.S ? lib/libc/getgroups.S ? lib/libc/getitimer.S ? lib/libc/getpeername.S ? lib/libc/getpgid.S ? lib/libc/getpgrp.S ? lib/libc/getpid.S ? lib/libc/getppid.S ? lib/libc/getpriority.S ? lib/libc/getrlimit.S ? lib/libc/getrusage.S ? lib/libc/getsid.S ? lib/libc/getsockname.S ? lib/libc/getsockopt.S ? lib/libc/gettimeofday.S ? lib/libc/getuid.S ? lib/libc/getvfsstat.S ? lib/libc/ioctl.S ? lib/libc/issetugid.S ? lib/libc/kevent.S ? lib/libc/kill.S ? lib/libc/kqueue.S ? lib/libc/ktrace.S ? lib/libc/lchflags.S ? lib/libc/lchmod.S ? lib/libc/lchown.S ? lib/libc/lfs_bmapv.S ? lib/libc/lfs_markv.S ? lib/libc/lfs_segclean.S ? lib/libc/lfs_segwait.S ? lib/libc/link.S ? lib/libc/listen.S ? lib/libc/lutimes.S ? lib/libc/madvise.S ? lib/libc/mincore.S ? lib/libc/minherit.S ? lib/libc/mkdir.S ? lib/libc/mkfifo.S ? lib/libc/mknod.S ? lib/libc/mlock.S ? lib/libc/mlockall.S ? lib/libc/mount.S ? lib/libc/mprotect.S ? lib/libc/msgget.S ? lib/libc/msgrcv.S ? lib/libc/msgsnd.S ? lib/libc/munlock.S ? lib/libc/munlockall.S ? lib/libc/munmap.S ? lib/libc/nanosleep.S ? lib/libc/nfssvc.S ? lib/libc/nslexer.c ? lib/libc/nsparser.c ? lib/libc/nsparser.h ? lib/libc/open.S ? lib/libc/pathconf.S ? lib/libc/pmc_control.S ? lib/libc/pmc_get_info.S ? lib/libc/poll.S ? lib/libc/pollts.S ? lib/libc/posix_fadvise.S ? lib/libc/profil.S ? lib/libc/pselect.S ? lib/libc/quotactl.S ? lib/libc/rasctl.S ? lib/libc/read.S ? lib/libc/readlink.S ? lib/libc/readv.S ? lib/libc/reboot.S ? lib/libc/recvfrom.S ? lib/libc/recvmsg.S ? lib/libc/rename.S ? lib/libc/revoke.S ? lib/libc/rmdir.S ? lib/libc/sa_enable.S ? lib/libc/sa_preempt.S ? lib/libc/sa_register.S ? lib/libc/sa_setconcurrency.S ? lib/libc/sa_stacks.S ? lib/libc/sa_yield.S ? lib/libc/select.S ? lib/libc/semconfig.S ? lib/libc/semget.S ? lib/libc/semop.S ? lib/libc/sendmsg.S ? lib/libc/sendto.S ? lib/libc/setcontext.S ? lib/libc/setegid.S ? lib/libc/seteuid.S ? lib/libc/setgid.S ? lib/libc/setgroups.S ? lib/libc/setitimer.S ? lib/libc/setpgid.S ? lib/libc/setpriority.S ? lib/libc/setregid.S ? lib/libc/setreuid.S ? lib/libc/setrlimit.S ? lib/libc/setsid.S ? lib/libc/setsockopt.S ? lib/libc/setuid.S ? lib/libc/shmdt.S ? lib/libc/shmget.S ? lib/libc/shutdown.S ? lib/libc/socketpair.S ? lib/libc/statvfs1.S ? lib/libc/swapctl.S ? lib/libc/symlink.S ? lib/libc/sync.S ? lib/libc/sysarch.S ? lib/libc/timer_create.S ? lib/libc/timer_delete.S ? lib/libc/timer_getoverrun.S ? lib/libc/timer_gettime.S ? lib/libc/timer_settime.S ? lib/libc/umask.S ? lib/libc/undelete.S ? lib/libc/unlink.S ? lib/libc/unmount.S ? lib/libc/utimes.S ? lib/libc/utrace.S ? lib/libc/uuidgen.S ? lib/libc/vadvise.S ? lib/libc/wait4.S ? lib/libc/write.S ? lib/libc/writev.S ? sys/arch/i386/stand/:w ? sys/arch/i386/stand/boot/lib ? sys/arch/i386/stand/boot/biosboot/.gdbinit ? sys/arch/i386/stand/boot/biosboot/boot ? sys/arch/i386/stand/boot/biosboot/boot.map ? sys/arch/i386/stand/boot/biosboot/vers.c ? sys/arch/i386/stand/bootxx/lib ? sys/arch/i386/stand/bootxx/bootxx_cd9660/.gdbinit ? sys/arch/i386/stand/bootxx/bootxx_cd9660/bootxx_cd9660 ? sys/arch/i386/stand/bootxx/bootxx_ffsv1/.gdbinit ? sys/arch/i386/stand/bootxx/bootxx_ffsv1/bootxx_ffsv1 ? sys/arch/i386/stand/bootxx/bootxx_ffsv1/bootxx_ffsv1.map ? sys/arch/i386/stand/bootxx/bootxx_ffsv1/bootxx_ffsv1.sym ? sys/arch/i386/stand/bootxx/bootxx_ffsv2/.gdbinit ? sys/arch/i386/stand/bootxx/bootxx_ffsv2/bootxx_ffsv2 ? sys/arch/i386/stand/bootxx/bootxx_ffsv2/bootxx_ffsv2.map ? sys/arch/i386/stand/bootxx/bootxx_ffsv2/bootxx_ffsv2.sym ? sys/arch/i386/stand/bootxx/bootxx_lfsv1/.gdbinit ? sys/arch/i386/stand/bootxx/bootxx_lfsv1/bootxx_lfsv1 ? sys/arch/i386/stand/bootxx/bootxx_lfsv1/bootxx_lfsv1.map ? sys/arch/i386/stand/bootxx/bootxx_lfsv1/bootxx_lfsv1.sym ? sys/arch/i386/stand/bootxx/bootxx_lfsv2/.gdbinit ? sys/arch/i386/stand/bootxx/bootxx_lfsv2/bootxx_lfsv2 ? sys/arch/i386/stand/bootxx/bootxx_lfsv2/bootxx_lfsv2.map ? sys/arch/i386/stand/bootxx/bootxx_lfsv2/bootxx_lfsv2.sym ? sys/arch/i386/stand/bootxx/bootxx_msdos/.gdbinit ? sys/arch/i386/stand/bootxx/bootxx_msdos/bootxx_msdos ? sys/arch/i386/stand/bootxx/bootxx_msdos/bootxx_msdos.map ? sys/arch/i386/stand/bootxx/bootxx_msdos/bootxx_msdos.sym ? sys/arch/i386/stand/bootxx/bootxx_ustarfs/.gdbinit ? sys/arch/i386/stand/bootxx/bootxx_ustarfs/bootxx_ustarfs ? sys/arch/i386/stand/bootxx/bootxx_ustarfs/bootxx_ustarfs.map ? sys/arch/i386/stand/bootxx/bootxx_ustarfs/bootxx_ustarfs.sym ? sys/arch/i386/stand/dosboot/.gdbinit ? sys/arch/i386/stand/dosboot/dosboot.com ? sys/arch/i386/stand/dosboot/dosboot.list ? sys/arch/i386/stand/dosboot/dosboot.sym ? sys/arch/i386/stand/dosboot/lib ? sys/arch/i386/stand/dosboot/vers.c ? sys/arch/i386/stand/fatboot/fat16/.gdbinit ? sys/arch/i386/stand/fatboot/fat16/bootxx_fat16 ? sys/arch/i386/stand/genprom/genprom ? sys/arch/i386/stand/genprom/genprom.lo ? sys/arch/i386/stand/mbr/mbr/.gdbinit ? sys/arch/i386/stand/mbr/mbr/mbr ? sys/arch/i386/stand/mbr/mbr_bootsel/.gdbinit ? sys/arch/i386/stand/mbr/mbr_bootsel/mbr_bootsel ? sys/arch/i386/stand/mbr/mbr_ext/.gdbinit ? sys/arch/i386/stand/mbr/mbr_ext/mbr_ext ? sys/arch/i386/stand/misc/pfdisk.doc ? sys/arch/i386/stand/misc/pfdisktc.zip ? sys/arch/i386/stand/misc/rawr32.zip ? sys/arch/i386/stand/misc/rawr32src.zip ? sys/arch/i386/stand/misc/rawrite.doc ? sys/arch/i386/stand/netboot/lib ? sys/arch/i386/stand/netboot/3c509/.gdbinit ? sys/arch/i386/stand/netboot/3c509/netboot_3c509.list ? sys/arch/i386/stand/netboot/3c509/netboot_3c509.rom ? sys/arch/i386/stand/netboot/3c509/netboot_3c509.sym ? sys/arch/i386/stand/netboot/3c509/vers.c ? sys/arch/i386/stand/netboot/3c590/.gdbinit ? sys/arch/i386/stand/netboot/3c590/netboot_3c590.list ? sys/arch/i386/stand/netboot/3c590/netboot_3c590.rom ? sys/arch/i386/stand/netboot/3c590/netboot_3c590.sym ? sys/arch/i386/stand/netboot/3c590/vers.c ? sys/arch/i386/stand/netboot/3c90xb/.gdbinit ? sys/arch/i386/stand/netboot/3c90xb/netboot_3c90xb.list ? sys/arch/i386/stand/netboot/3c90xb/netboot_3c90xb.rom ? sys/arch/i386/stand/netboot/3c90xb/netboot_3c90xb.sym ? sys/arch/i386/stand/netboot/3c90xb/vers.c ? sys/arch/i386/stand/netboot/i82557/.gdbinit ? sys/arch/i386/stand/netboot/i82557/netboot_i82557.list ? sys/arch/i386/stand/netboot/i82557/netboot_i82557.rom ? sys/arch/i386/stand/netboot/i82557/netboot_i82557.sym ? sys/arch/i386/stand/netboot/i82557/vers.c ? sys/arch/i386/stand/netboot/ne2000_isa/.gdbinit ? sys/arch/i386/stand/netboot/ne2000_isa/netboot_ne2000_isa.list ? sys/arch/i386/stand/netboot/ne2000_isa/netboot_ne2000_isa.rom ? sys/arch/i386/stand/netboot/ne2000_isa/netboot_ne2000_isa.sym ? sys/arch/i386/stand/netboot/ne2000_isa/vers.c ? sys/arch/i386/stand/netboot/pcnet_isapnp/.gdbinit ? sys/arch/i386/stand/netboot/pcnet_isapnp/netboot_pcnet_isapnp.list ? sys/arch/i386/stand/netboot/pcnet_isapnp/netboot_pcnet_isapnp.rom ? sys/arch/i386/stand/netboot/pcnet_isapnp/netboot_pcnet_isapnp.sym ? sys/arch/i386/stand/netboot/pcnet_isapnp/vers.c ? sys/arch/i386/stand/netboot/pcnet_pci/.gdbinit ? sys/arch/i386/stand/netboot/pcnet_pci/netboot_pcnet_pci.list ? sys/arch/i386/stand/netboot/pcnet_pci/netboot_pcnet_pci.rom ? sys/arch/i386/stand/netboot/pcnet_pci/netboot_pcnet_pci.sym ? sys/arch/i386/stand/netboot/pcnet_pci/vers.c ? sys/arch/i386/stand/netboot/wd80x3/.gdbinit ? sys/arch/i386/stand/netboot/wd80x3/netboot_wd80x3.list ? sys/arch/i386/stand/netboot/wd80x3/netboot_wd80x3.rom ? sys/arch/i386/stand/netboot/wd80x3/netboot_wd80x3.sym ? sys/arch/i386/stand/netboot/wd80x3/vers.c ? sys/arch/i386/stand/pxeboot/.gdbinit ? sys/arch/i386/stand/pxeboot/lib ? sys/arch/i386/stand/pxeboot/pxeboot_ia32.bin ? sys/arch/i386/stand/pxeboot/pxeboot_ia32.list ? sys/arch/i386/stand/pxeboot/pxeboot_ia32.sym ? sys/arch/i386/stand/pxeboot/vers.c Index: sys/arch/i386/stand/boot/boot2.c =================================================================== RCS file: /cvsroot/src/sys/arch/i386/stand/boot/boot2.c,v retrieving revision 1.12 diff -u -r1.12 boot2.c --- sys/arch/i386/stand/boot/boot2.c 11 Dec 2005 12:17:47 -0000 1.12 +++ sys/arch/i386/stand/boot/boot2.c 9 Jan 2007 18:51:21 -0000 @@ -72,14 +72,36 @@ { "netbsd.old", "netbsd.old.gz" }, }; +static struct conf_opt { + char *name; + int read; /* have we already read this option? */ + int id; +} opts[] = { + {"timeout", 0, 0x1}, + {"consdev", 0, 0x2}, + {"conspeed", 0, 0x3}, + {"password", 0, 0x4}, + {"keymap", 0, 0x5}, + {"consaddr", 0, 0x6}, + {"mode", 0, 0x7}, + {"filename", 0, 0x8}, + {NULL, 0, 0x0} +}; + #define NUMNAMES (sizeof(names)/sizeof(names[0])) #define DEFFILENAME names[0][0] #define MAXDEVNAME 16 +#define CONFIGFILENAME "/boot.cfg" +#define MAXBOOTCONF 1024 + static char *default_devname; static int default_unit, default_partition; static const char *default_filename; +static void read_boot_config(struct x86_boot_params *); +static int parse_cmds(char *, struct x86_boot_params *); +static int get_int(char *); char *sprint_bootsel(const char *); void bootit(const char *, int, int); @@ -246,8 +268,8 @@ bios2dev(biosdev, biossector, &default_devname, &default_unit, &default_partition); - /* if the user types "boot" without filename */ - default_filename = DEFFILENAME; + /* try to read boot options from a config file */ + read_boot_config(&boot_params); printf("Press return to boot now, any other key for boot menu\n"); for (currname = 0; currname < NUMNAMES; currname++) { @@ -378,3 +400,139 @@ } printf("invalid console device.\n"); } + +/* + * Fill in the x86_boot_params from the boot configuration + * file. + */ +void +read_boot_config(struct x86_boot_params *params) +{ + int fd; + int nbytes; + char data[MAXBOOTCONF]; + memset(data, 0, MAXBOOTCONF); + /* + prop_dictionary_t dict; + prop_object_t obj; + */ + + if ((fd = open(CONFIGFILENAME, 0)) < 0) { + printf("Couldnt open %s\n", CONFIGFILENAME); + return; + } + + printf("reading boot configuration file\n"); + if ((nbytes = read(fd, &data, MAXBOOTCONF)) <= 0) + return; + + parse_cmds(data, params); + + /* + dict = prop_dictionary_internalize(data); + KASSERT(dict != NULL); + + if ((obj = prop_dictionary_get(dict, "timeout")) != NULL) + printf("Timeout: %lld\n", prop_number_integer_value(obj)); + + if ((obj = prop_dictionary_get(dict, "consdev")) != NULL) + printf("Consdev: %lld\n", prop_number_integer_value(obj)); + + if ((obj = prop_dictionary_get(dict, "conspeed")) != NULL) + printf("Conspeed: %lld\n", prop_number_integer_value(obj)); + + if ((obj = prop_dictionary_get(dict, "mode")) != NULL) + printf("Mode: %s\n", prop_string_cstring_nocopy(obj)); + + if ((obj = prop_dictionary_get(dict, "filename")) != NULL) + printf("Kernel filename: %s\n",prop_string_cstring_nocopy(obj)); + */ + close(fd); +} + +/* + * Search for commands in buf. If a command is found the length + * of the command is stored in 'len' and the identifier of the + * command is returned. The locations of the characters for the command + * within 'buf' are then replaced by whitespace. + * + * If no command is found, 0 is returned. + */ +int +parse_cmds(char *buf, struct x86_boot_params *params) +{ + int j, k; + char *p = NULL; + struct conf_opt *opt; + + for (opt = opts; opt->name; opt++) { + j = k = 0; + if (opt->read != 0) + continue; + + if ((p = strstr(buf, opt->name)) != NULL) { + /* find the value for this command */ + while (*(p+j) != '=') { + /* command lines shouldn't span lines */ + if (*(p+j) == '\n') + return 0; + j++; + } + + /* we're previously on '=' so move one step */ + j++; + + /* skip whitespace between '=' and value */ + while (isspace(p[j])) j++; + + switch(opt->id) { + case 1: params->bp_timeout = get_int(&p[j]); + printf("FOUND TIMEOUT: %d\n", + params->bp_timeout); + break; + case 2: params->bp_consdev = get_int(&p[j]); + printf("FOUND CONSDEV\n"); + break; + case 3: params->bp_conspeed = get_int(&p[j]); + printf("FOUND CONSPEED\n"); + break; + case 4: + printf("FOUND PASSWORD\n"); + break; + case 5: while (!isspace(p[j]) && k < 64 + && p[j] != '\0') { + params->bp_keymap[k] = p[j+k]; + k++; + } + printf("FOUND KEYMAP\n"); + break; + case 6: params->bp_consaddr = (uint32_t) p[j]; + printf("FOUND CONSADDR\n"); + break; + case 7: strncpy(params->bp_mode, &p[j], 64); + printf("FOUND MODE: %s\n", &p[j]); + break; + case 8: strncpy(params->bp_filename, &p[j], 64); + printf("FOUND FILENAME %s\n", &p[j]); + break; + default: break; + } + + /* mark this command as having been read */ + opt->read = 1; + } + printf("Tested %s\n", opt->name); + } + return 0; +} + +static int +get_int(char *buf) +{ + int i, j = 0; + for (i = 0; buf[i] != '\0' && !isspace(buf[i]); i++) { + j *= 10; + j += buf[i] - 48; + } + return j; +} Index: sys/sys/bootblock.h =================================================================== RCS file: /cvsroot/src/sys/sys/bootblock.h,v retrieving revision 1.41 diff -u -r1.41 bootblock.h --- sys/sys/bootblock.h 1 Jan 2007 22:13:18 -0000 1.41 +++ sys/sys/bootblock.h 9 Jan 2007 18:51:39 -0000 @@ -1061,6 +1061,8 @@ uint8_t bp_password[16]; /* md5 hash of password */ char bp_keymap[64]; /* keyboard traslation map */ uint32_t bp_consaddr; /* ioaddr for console */ + char bp_mode[64]; /* boot mode (debug, single-user,..) */ + char bp_filename[64]; /* filename of kernel image */ }; #endif /* !defined(__ASSEMBLER__) */ /* } */