Index: /trunk/include/kern_head.h
===================================================================
--- /trunk/include/kern_head.h	(revision 8)
+++ /trunk/include/kern_head.h	(revision 9)
@@ -480,52 +480,308 @@
 };
 
-#if 0
-/* i386 sys_call_table for freebsd
+/* i386 sys_call_table for openbsd
  */
-char * callz_fbsd[]={
-  "_sysent",          /*   0 */
-  "sys_exit",
-  "_fork",
-  "_read",
-  "_write",
-  "_open",            /*   5 */
-  "_close",
-  "_link",
-  "_unlink",
-  "_chdir",
-  "_fchdir",          /*  10 */
-  "_mknod",
-  "_chmod",
-  "_chown",
-  "_getpid",       
-  "_mount",           /*  15 */
-  "_unmount",
-  "_setuid",
-  "_getuid",
-  "_geteuid",
-  "_ioctl",           /*  20 */
-  "_fcntl",
-  "_setsockopt",
-  "_getsockopt",
-  "_getdirentries",
-  "_getdents",        /*  25 */
-  "_seteuid",
-  "_setegid",
-  "_modstat",
-  "_fstat",
-  "_modfind",         /*  30 */
-  "_getsid",
-  "_setsid",
-  "_kldload",
-  "_kldunload",
-  "_kldfind",         /*  35 */
-  "_kldnext",
-  "_kldstat",
-  "_kldfirstmod",
-  "_kldsym",
-  "___sysctl",	      /*  40 */
+char * callz_obsd[]={
+  "_nosys",               /*   0 */
+  "_sys_exit",
+  "_sys_fork",
+  "_sys_read",
+  "_sys_write",
+  "_sys_open",            /*   5 */
+  "_sys_close",
+  "_sys_wait4",
+  "_compat_43_sys_creat",
+  "_sys_link",
+  "_sys_unlink",          /*  10 */
+  "_sys_nosys",
+  "_sys_chdir",
+  "_sys_fchdir",
+  "_sys_mknod",
+  "_sys_chmod",           /*  15 */
+  "_sys_chown",
+  "_sys_break",
+  "_nosys",
+  "_compat_43_sys_lseek",
+  "_sys_getpid",          /*  20 */       
+  "_sys_mount",
+  "_sys_unmount",
+  "_sys_setuid",
+  "_sys_getuid",
+  "_sys_geteuid",         /*  25 */
+  "_sys_ptrace",
+  "_sys_recvmsg",  /*	27 */
+  "_sys_sendmsg",  /*	28 */
+  "_sys_recvfrom", /*	29 */
+  "_sys_accept",   /*	30 */
+  "_sys_getpeername", /*	31 */
+  "_sys_getsockname", /*	32 */
+  "_sys_access",   /*	33 */
+  "_sys_chflags",  /*	34 */
+  "_sys_fchflags", /*	35 */
+  "_sys_sync",     /*	36 */
+  "_sys_kill",     /*	37 */
+  "_compat_43_sys_stat",			/* 38 is old stat */
+  "_sys_getppid",  /*	39 */
+  "_compat_43_sys_lstat",		        /* 40 is old lstat */
+  "_sys_dup",      /*	41 */
+  "_sys_opipe",    /*	42 */
+  "_sys_getegid",  /*	43 */
+  "_sys_profil",   /*	44 */
+  "_sys_ktrace",   /*	45 */
+  "_sys_sigaction",/*       46 */
+  "_sys_getgid",   /*	47 */
+  "_sys_sigprocmask",
+  "_sys_getlogin", /*	49 */
+  "_sys_setlogin", /*	50 */
+  "_sys_acct",     /*	51 */
+  "_sys_sigpending",
+  "_sys_osigaltstack", /*	53 */
+  "_sys_ioctl",    /*	54 */
+  "_sys_reboot",   /*	55 */
+  "_sys_revoke",   /*	56 */
+  "_sys_symlink",  /*	57 */
+  "_sys_readlink", /*	58 */
+  "_sys_execve",   /*	59 */
+  "_sys_umask",    /*	60 */
+  "_sys_chroot",   /*	61 */
+  "_compat_43_sys_fstat",			/* 62 is old fstat */
+  "_compat_43_sys_getkerninfo",			/* 63 is old ogetkerninfo */
+  "_compat_43_sys_getpagesize",			/* 64 is old ogetpagesize */
+  "_nosys",                     /* 65 is omsync */
+  "_sys_vfork",    /*	66 */
+  "_nosys",			/* 67 is obsolete vread */
+  "_nosys",			/* 68 is obsolete vwrite */
+  "_sys_sbrk",     /*	69 */
+  "_sys_sstk",     /*	70 */
+  "_compat_43_sys_mmap",			/* 71 is ommap */
+  "_sys_ovadvise",  /*	72 */
+  "_sys_munmap",   /*	73 */
+  "_sys_mprotect", /*	74 */
+  "_sys_madvise",  /*	75 */
+  "_nosys",			/* 76 is obsolete vhangup */
+  "_nosys",			/* 77 is obsolete vlimit */
+  "_sys_mincore",  /*	78 */
+  "_sys_getgroups",/*	79 */
+  "_sys_setgroups",/*	80 */
+  "_sys_getpgrp",  /*	81 */
+  "_sys_setpgid",  /*	82 */
+  "_sys_setitimer",/*	83 */
+  "_compat_43_sys_wait",			/* 84 is owait */
+  "_nosys",                      /* 85 is swapon */
+  "_sys_getitimer",/*	86 */
+  "_compat_43_sys_gethostname",			/* 87 is ogethostname */
+  "_compat_43_sys_sethostname",			/* 88 is osethostname */
+  "_compat_43_sys_getdtablesize",               /* 89 os ogetdtablesize */
+  "_sys_dup2",     /*	90 */
+  "_nosys",			/* 91 is ??? */
+  "_sys_fcntl",    /*	92 */
+  "_sys_select",   /*	93 */
+  "_nosys",			/* 94 is ??? */
+  "_sys_fsync",    /*	95 */
+  "_sys_setpriority", /*	96 */
+  "_sys_socket",   /*	97 */
+  "_sys_connect",  /*	98 */
+  "_compat_43_sys_accept",			/* 99 is oaccept */
+  "_sys_getpriority", /*	100 */
+  "_compat_43_sys_send",			/* 101 is osend */
+  "_compat_43_sys_recv",			/* 102 is orecv */
+  "_sys_sigreturn",
+  "_sys_bind",     /*	104 */
+  "_sys_setsockopt", /*	105 */
+  "_sys_listen",   /*	106 */
+  "_nosys",			/* 107 is obsolete vtimes */
+  "_compat_43_sys_sigvec",			/* 108 is osigvec */
+  "_compat_43_sys_sigblock",			/* 109 is osigblock */
+  "_compat_43_sys_sigsetmask",			/* 110 is osigsetmask */
+  "_sys_sigsuspend",
+  "_compat_43_sys_sigstack",			/* 112 is osigstack */
+  "_compat_43_sys_recvmsg",			/* 113 is orecvmsg */
+  "_compat_43_sys_sendmsg",			/* 114 is osendmsg */
+  "_nosys",			/* 115 is obsolete vtrace */
+  "_sys_gettimeofday", /*	116 */ 
+  "_sys_getrusage",    /*	117 */
+  "_sys_getsockopt",   /*	118 */
+  "_nosys",			/* 119 is obsolete resuba */
+  "_sys_readv",        /*	120 */
+  "_sys_writev",       /*	121 */
+  "_sys_settimeofday", /*	122 */
+  "_sys_fchown",       /*	123 */
+  "_sys_fchmod",       /*	124 */
+  "_compat_43_sys_recvfrom",			/* 125 is orecvfrom */
+  "_sys_setreuid",     /*	126 */
+  "_sys_setregid",     /*	127 */
+  "_sys_rename",       /*	128 */
+  "_compat_43_sys_truncate",			/* 129 is old truncate */
+  "_compat_43_sys_ftruncate",			/* 130 is old ftruncate */
+  "_sys_flock",        /*	131 */
+  "_sys_mkfifo",       /*	132 */
+  "_sys_sendto",       /*	133 */
+  "_sys_shutdown",     /*	134 */
+  "_sys_socketpair",   /*	135 */
+  "_sys_mkdir",        /*	136 */
+  "_sys_rmdir",        /*	137 */
+  "_sys_utimes",       /*	138 */
+  "_nosys",			/* 139 is obsolete 4.2 sigreturn */
+  "_sys_adjtime",      /*	140 */
+  "_compat_43_sys_getpeername",			/* 141 is ogetpeername */
+  "_compat_43_sys_gethostid",			/* 142 is ogethostid */
+  "_compat_43_sys_sethostid",			/* 143 is osethostid */
+  "_compat_43_sys_getrlimit",			/* 144 is ogetrlimit */
+  "_compat_43_sys_setrlimit",			/* 145 is osetrlimit */
+  "_compat_43_sys_killpg",			/* 146 is okillpg */
+  "_sys_setsid",       /*	147 */
+  "_sys_quotactl",     /*	148 */
+  "_compat_43_sys_quota",			/* 149 is oquota */
+  "_compat_43_sys_getsockname",			/* 150 is ogetsockname */
+  "_nosys",			/* 151 is ??? */
+  "_nosys",			/* 152 is ??? */
+  "_nosys",			/* 153 is ??? */
+  "_nosys",			/* 154 is ??? */
+  "_sys_nfssvc",       /*	155 */
+  "_compat_43_sys_getdirentries",	        /* 156 is ogetdirentries */
+  "_nosys",                      /* 157 is ostatfs */
+  "_nosys",                     /* 158 is ofstatfs */
+  "_nosys",			/* 159 is ??? */
+  "_nosys",			/* 160 is ??? */
+  "_sys_getfh",        /*	161 */
+  "_nosys",               /* 162 is ogetdomainname */
+  "_nosys",               /* 163 is osetdomainname */
+  "_nosys",                       /* 164 is ouname */
+  "_sys_sysarch",      /*	165 */
+  "_nosys",
+  "_nosys",			/* 167 is ??? */
+  "_nosys",			/* 168 is ??? */
+  "_nosys",       /*	169 is compat_10 osemsys */
+  "_nosys",       /*	170 is compat_10 omsgsys */
+  "_nosys",       /*	171 is compat_10 oshmsys */
+  "_nosys",			/* 172 is ??? */
+  "_sys_pread",        /*	173 */
+  "_sys_pwrite",       /*	174 */
+  "_nosys",			/* 175 is ??? */
+  "_nosys",                     /* 176 is ??? */
+  "_nosys",			/* 177 is ??? */
+  "_nosys",			/* 178 is ??? */
+  "_nosys",			/* 179 is ??? */
+  "_nosys",			/* 180 is ??? */
+  "_sys_setgid",       /*	181 */
+  "_sys_setegid",      /*	182 */
+  "_sys_seteuid",      /*	183 */
+  "_sys_bmapv",	   /*   184 */
+  "_sys_markv",	   /*   185 */
+  "_sys_segclean",	   /*   186 */
+  "_sys_segwait",	   /*   187 */
+  "_compat_35_sys_stat",        /*	188 is compat_35 stat35 */
+  "_compat_35_sys_fstat",       /*	189 is compat_35 fstat35 */
+  "_compat_35_sys_lstat",       /*	190 is compat_35 lstat35 */
+  "_sys_pathconf",     /*	191 */
+  "_sys_fpathconf",    /*	192 */
+  "_sys_swapctl",	   /*   193 */
+  "_sys_getrlimit",    /*	194 */
+  "_sys_setrlimit",    /*	195 */
+  "_sys_getdirentries", /*	196 */
+  "_sys_mmap",         /*	197 */
+  "_sys___syscall",    /*	198 */
+  "_sys_lseek",        /*	199 */
+  "_sys_truncate",     /*	200 */
+  "_sys_ftruncate",    /*	201 */
+  "_sys___sysctl",     /*	202 */
+  "_sys_mlock",        /*	203 */
+  "_sys_munlock",      /*	204 */
+  "_sys_undelete",     /*	205 */
+  "_sys_futimes",      /*	206 */
+  "_sys_getpgid",      /*	207 */
+  "_sys_xfspioctl",    /*   208 */
+  "_nosys",                     /* 209 is ??? */
+  "_nosys",			/* 210 is ??? */
+  "_nosys",			/* 211 is ??? */
+  "_nosys",			/* 212 is ??? */
+  "_nosys",			/* 213 is ??? */
+  "_nosys",			/* 214 is ??? */
+  "_nosys",			/* 215 is ??? */
+  "_nosys",			/* 216 is ??? */
+  "_nosys",			/* 217 is ??? */
+  "_nosys",			/* 218 is ??? */
+  "_nosys",			/* 219 is ??? */
+  "_nosys",                     /* 220 is ??? */
+  "_sys_semget",       /*	221 */
+  "_compat_35_sys_semop",       /* 222 is compat_35 semop */
+  "_nosys",			/* 223 is obsolete sys_semconfig */
+  "_nosys",                     /* 224 is compat_23 msgctl23 */
+  "_sys_msgget",       /*	225 */
+  "_sys_msgsnd",       /*	226 */
+  "_sys_msgrcv",       /*	227 */
+  "_sys_shmat",        /*	228 */
+  "_nosys",                     /* 229 is compat_23 shmctl23 */
+  "_sys_shmdt",        /*	230 */
+  "_compat_35_sys_shmget",      /* 231 is compat_35 shmget */
+  "_sys_clock_gettime", /*	232 */
+  "_sys_clock_settime", /*	233 */
+  "_sys_clock_getres", /*	234 */
+  "_nosys",			/* 235 is ??? */
+  "_nosys",			/* 236 is ??? */
+  "_nosys",			/* 237 is ??? */
+  "_nosys",			/* 238 is ??? */
+  "_nosys",			/* 239 is ??? */
+  "_sys_nanosleep",    /*	240 */
+  "_nosys",			/* 241 is ??? */
+  "_nosys",			/* 242 is ??? */
+  "_nosys",			/* 243 is ??? */
+  "_nosys",			/* 244 is ??? */
+  "_nosys",			/* 245 is ??? */
+  "_nosys",			/* 246 is ??? */
+  "_nosys",			/* 247 is ??? */
+  "_nosys",			/* 248 is ??? */
+  "_nosys",			/* 249 is ??? */
+  "_sys_minherit",     /*	250 */
+  "_sys_rfork",        /*	251 */
+  "_sys_poll",         /*	252 */
+  "_sys_issetugid",    /*	253 */
+  "_sys_lchown",       /*	254 */
+  "_sys_getsid",	   /*   255 */
+  "_sys_msync",	   /*   256 */
+  "_compat_35_sys___semctl",		/* 257 is compat_35 semctl35 */
+  "_compat_35_sys_shmctl",		/* 258 is is compat_35 shmctl35 */
+  "_compat_35_sys_msgctl",		/* 259 is is compat_35 msgctl35 */
+  "_sys_getfsstat",	   /* 260  */
+  "_sys_statfs",	   /* 261  */
+  "_sys_fstatfs",	   /* 262  */
+  "_sys_pipe",	   /* 263  */
+  "_sys_fhopen",	   /* 264  */
+  "_compat_35_sys_fhstat",	        /* 265 is compat_35 fhstat */
+  "_sys_fhstatfs",	   /* 266  */
+  "_sys_preadv",	   /* 267  */
+  "_sys_pwritev",	   /* 268  */
+  "_sys_kqueue",	   /* 269  */
+  "_sys_kevent",	   /* 270  */
+  "_sys_mlockall",	   /* 271  */
+  "_sys_munlockall",   /* 272  */
+  "_sys_getpeereid",   /* 273  */
+  "_nosys",                     /*	274 */
+  "_nosys",                     /*	275 */
+  "_nosys",                     /*	276 */
+  "_nosys",                     /*	277 */
+  "_nosys",                     /*	278 */
+  "_nosys",                     /*	279 */
+  "_nosys",                     /*	280 */
+  "_sys_getresuid",	   /* 281  */
+  "_sys_setresuid",	   /* 282  */
+  "_sys_getresgid",	   /* 283  */
+  "_sys_setresgid",	   /* 284  */
+  "_nosys",			/* 285 is ??? */
+  "_sys_mquery",       /* 286  */
+  "_sys_closefrom",	   /* 287  */
+  "_sys_sigaltstack",  /* 288  */
+  "_sys_shmget",	   /* 289  */
+  "_sys_semop",	   /* 290  */
+  "_sys_stat",	   /* 291  */
+  "_sys_fstat",	   /* 292  */
+  "_sys_lstat",	   /* 293  */
+  "_sys_fhstat",	   /* 294  */
+  "_sys___semctl",	   /* 295  */
+  "_sys_shmctl",	   /* 296  */
+  "_sys_msgctl",       /*	297 */
   NULL
 };
-#endif
+
 
 
Index: /trunk/src/kern_head.c
===================================================================
--- /trunk/src/kern_head.c	(revision 8)
+++ /trunk/src/kern_head.c	(revision 9)
@@ -713,8 +713,15 @@
     }
 
+#ifdef __OpenBSD__
+  if      (utbuf.release[0] == '3')
+    which = 38;
+#else
   if      (utbuf.release[0] == '4')
     which = 4;
   else if (utbuf.release[0] == '5')
     which = 5;
+  else if (utbuf.release[0] == '6')
+    which = 5;
+#endif
   else
     {
@@ -757,11 +764,25 @@
       exit(EXIT_FAILURE);
     }
+  else if (i == 1)
+    {
+      fprintf(stderr, "check_sysent: kvm_nlist: _sysent not found\n");
+      exit(EXIT_FAILURE);
+    }
+  else if (list[0].n_value == 0)
+    {
+      fprintf(stderr, "check_sysent: kvm_nlist: zero address for _sysent\n");
+      exit(EXIT_FAILURE);
+    }
 
   if (which == 4)
     printf("\n/* Kernel %s, machine %s -- use table %s */\n\n", 
         	 utbuf.release, utbuf.machine, "callz_fbsd");
-  if (which == 5)
+  else if (which == 5 || which == 6)
     printf("\n/* Kernel %s, machine %s -- use table %s */\n\n",
                  utbuf.release, utbuf.machine, "callz_fbsd5");
+  else if (which == 38)
+    printf("\n/* Kernel %s, machine %s -- use table %s */\n\n",
+                 utbuf.release, utbuf.machine, "callz_obsd");
+      
       
   i = 0;
@@ -776,7 +797,7 @@
 	(utbuf.release[3] == '0'))
       {
-	sys_list[336].n_name = callz_fbsd[290]; /* sendfile -> nosys */
+	sys_list[336].n_name = callz_fbsd[151]; /* sendfile -> nosys */
       }
-  } else {
+  } else if (which == 5 || which == 6) {
     while ((callz_fbsd5[i] != NULL) && (i < SYS_MAXSYSCALL))
       {
@@ -786,4 +807,13 @@
       }
   }
+  else if (which == 38) {
+    while ((callz_obsd[i] != NULL) && (i < SYS_MAXSYSCALL))
+      {
+	sys_list[i].n_name = callz_obsd[i];
+	/* fprintf(stderr, "sys_list[%d] = %s\n", i, sys_list[i].n_name); */
+	++i;
+      }
+  }
+  
   count = i;
   sys_list[i].n_name = NULL;
@@ -799,5 +829,5 @@
 	fprintf(stderr, "check_sysent: kvm_nlist: %d out of %d invalid.\n",
 		i, count);
-	fprintf(stderr, "              Probably callz_fbsd in kern_head.c\n");
+	fprintf(stderr, "              Probably the table in kern_head.h\n");
 	fprintf(stderr, "              is not for your kernel version.\n");
 	fprintf(stderr, "              (No reason to worry, kcheck will "\
@@ -832,5 +862,5 @@
 	 sys_list[i].n_value != 0 &&
 	 0 != strcmp(sys_list[i].n_name, "_nosys") &&
-	 (unsigned long)sy.sy_call != sys_list[290].n_value)  
+	 (unsigned long)sy.sy_call != sys_list[151].n_value)  
 	{
           fprintf(stderr,
