Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/compat/irix More TrustedIRIX stuff (not emulated, but we...



details:   https://anonhg.NetBSD.org/src/rev/a86d337f307f
branches:  trunk
changeset: 519622:a86d337f307f
user:      manu <manu%NetBSD.org@localhost>
date:      Sat Dec 22 09:35:11 2001 +0000

description:
More TrustedIRIX stuff (not emulated, but we don't return EINVAL anymore)

diffstat:

 sys/compat/irix/irix_syssgi.c |  26 ++++++++++++++++++++++----
 1 files changed, 22 insertions(+), 4 deletions(-)

diffs (69 lines):

diff -r 1c4c104946d3 -r a86d337f307f sys/compat/irix/irix_syssgi.c
--- a/sys/compat/irix/irix_syssgi.c     Sat Dec 22 08:45:36 2001 +0000
+++ b/sys/compat/irix/irix_syssgi.c     Sat Dec 22 09:35:11 2001 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: irix_syssgi.c,v 1.7 2001/12/08 19:29:03 manu Exp $ */
+/*     $NetBSD: irix_syssgi.c,v 1.8 2001/12/22 09:35:11 manu Exp $ */
 
 /*-
  * Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -37,7 +37,9 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: irix_syssgi.c,v 1.7 2001/12/08 19:29:03 manu Exp $");
+__KERNEL_RCSID(0, "$NetBSD: irix_syssgi.c,v 1.8 2001/12/22 09:35:11 manu Exp $");
+
+#include "opt_ddb.h"
 
 #ifndef ELFSIZE
 #define ELFSIZE 32
@@ -154,6 +156,11 @@
                return irix_syssgi_sysconf((int)arg1, p, retval);       
                break;
 
+       case IRIX_SGI_RXEV_GET:         /* Trusted IRIX call */
+               /* Undocumented (?) and unimplemented */
+               return EINVAL;
+               break;
+
        default:
                printf("Warning: call to unimplemented syssgi() command %d\n",
                    request);
@@ -269,7 +276,7 @@
                        printf("pht->p_align = 0x%lx\n", (long)pht->p_align);
 #endif
                        NEW_VMCMD2(&vcset, pht->p_align < PAGE_SIZE ?
-                           vmcmd_map_readvn : vmcmd_map_pagedvn, psize, 
+                           vmcmd_map_readvn : vmcmd_map_pagedvn, psize,
                            uaddr, vp, offset, prot, flags);
                }
                if (psize < size) {
@@ -314,8 +321,10 @@
        printf("psize = 0x%lx, rm = 0x%lx, rf = 0x%lx\n",
            psize, rm, rf);
 #endif
+                       /* Sleeping here seems to trigger some bugs */
+                       /* (void)tsleep ((void *)&vcp, 0, NULL, 10); */
+
                        error = (*vcp->ev_proc)(p, vcp);
-
                        if (vcp->ev_flags & VMCMD_BASE)
                        base_vcp = vcp;
                }
@@ -372,6 +381,15 @@
                *retval = 1;
                return 0;
                break;
+       /* Trusted IRIX capabilities are unsupported */
+       case IRIX_SC_ACL:       /* ACcess Lists */
+       case IRIX_SC_AUDIT:     /* Audit */
+       case IRIX_SC_INF:       /* Information labels */
+       case IRIX_SC_MAC:       /* Mandatory Access Control */
+       case IRIX_SC_CAP:       /* Capabilities */
+               *retval = 0;
+               return 0;
+               break;
        case IRIX_SC_PAGESIZE:
                mib[0] = CTL_HW;
                mib[1] = HW_PAGESIZE;



Home | Main Index | Thread Index | Old Index