summaryrefslogtreecommitdiffstats
path: root/arch/sparc/kernel
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2000-03-19 01:28:40 +0000
committerRalf Baechle <ralf@linux-mips.org>2000-03-19 01:28:40 +0000
commit8abb719409c9060a7c0676f76e9182c1e0b8ca46 (patch)
treeb88cc5a6cd513a04a512b7e6215c873c90a1c5dd /arch/sparc/kernel
parentf01bd7aeafd95a08aafc9e3636bb26974df69d82 (diff)
Merge with 2.3.99-pre1.
Diffstat (limited to 'arch/sparc/kernel')
-rw-r--r--arch/sparc/kernel/sys_solaris.c2
-rw-r--r--arch/sparc/kernel/sys_sunos.c53
-rw-r--r--arch/sparc/kernel/systbls.S6
3 files changed, 6 insertions, 55 deletions
diff --git a/arch/sparc/kernel/sys_solaris.c b/arch/sparc/kernel/sys_solaris.c
index 6c46c60f0..8a9d54913 100644
--- a/arch/sparc/kernel/sys_solaris.c
+++ b/arch/sparc/kernel/sys_solaris.c
@@ -15,12 +15,14 @@
#include <linux/smp.h>
#include <linux/smp_lock.h>
+/* CHECKME: this stuff looks rather bogus */
asmlinkage int
do_solaris_syscall (struct pt_regs *regs)
{
int ret;
lock_kernel();
+ put_exec_domain(current->exec_domain);
current->personality = PER_SVR4;
current->exec_domain = lookup_exec_domain(PER_SVR4);
diff --git a/arch/sparc/kernel/sys_sunos.c b/arch/sparc/kernel/sys_sunos.c
index 1d6f208f6..262f6afdd 100644
--- a/arch/sparc/kernel/sys_sunos.c
+++ b/arch/sparc/kernel/sys_sunos.c
@@ -1,4 +1,4 @@
-/* $Id: sys_sunos.c,v 1.114 2000/03/07 22:27:27 davem Exp $
+/* $Id: sys_sunos.c,v 1.115 2000/03/13 21:57:23 davem Exp $
* sys_sunos.c: SunOS specific syscall compatibility support.
*
* Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
@@ -296,57 +296,6 @@ asmlinkage void sunos_madvise(unsigned long address, unsigned long len,
unlock_kernel();
}
-/* Places into character array, the status of all the pages in the passed
- * range from 'addr' to 'addr + len'. -1 on failure, 0 on success...
- * The encoding in each character is:
- * low-bit is zero == Page is not in physical ram right now
- * low-bit is one == Page is currently residing in core
- * All other bits are undefined within the character so there...
- * Also, if you try to get stats on an area outside of the user vm area
- * *or* the passed base address is not aligned on a page boundary you
- * get an error.
- */
-asmlinkage int sunos_mincore(unsigned long addr, unsigned long len, char *array)
-{
- pgd_t *pgdp;
- pmd_t *pmdp;
- pte_t *ptep;
- unsigned long limit;
- int num_pages, pnum, retval = -EINVAL;
-
- lock_kernel();
- if(addr & ~(PAGE_MASK))
- goto out;
-
- num_pages = (len / PAGE_SIZE);
- retval = -EFAULT;
- if(verify_area(VERIFY_WRITE, array, num_pages))
- goto out;
- retval = -ENOMEM;
- if((addr >= PAGE_OFFSET) || ((addr + len) > PAGE_OFFSET))
- goto out; /* I'm sure you're curious about kernel mappings.. */
-
- /* Wheee, go through pte's */
- pnum = 0;
- for(limit = addr + len; addr < limit; addr += PAGE_SIZE, pnum++) {
- pgdp = pgd_offset(current->mm, addr);
- if(pgd_none(*pgdp))
- goto out; /* As per SunOS manpage */
- pmdp = pmd_offset(pgdp, addr);
- if(pmd_none(*pmdp))
- goto out; /* As per SunOS manpage */
- ptep = pte_offset(pmdp, addr);
- if(pte_none(*ptep))
- goto out; /* As per SunOS manpage */
- /* Page in core or Swapped page? */
- __put_user((pte_present(*ptep) ? 1 : 0), &array[pnum]);
- }
- retval = 0; /* Success... I think... */
-out:
- unlock_kernel();
- return retval;
-}
-
/* This just wants the soft limit (ie. rlim_cur element) of the RLIMIT_NOFILE
* resource limit and is for backwards compatibility with older sunos
* revs.
diff --git a/arch/sparc/kernel/systbls.S b/arch/sparc/kernel/systbls.S
index 8746958d7..42c072164 100644
--- a/arch/sparc/kernel/systbls.S
+++ b/arch/sparc/kernel/systbls.S
@@ -1,4 +1,4 @@
-/* $Id: systbls.S,v 1.94 2000/02/16 07:31:30 davem Exp $
+/* $Id: systbls.S,v 1.95 2000/03/13 21:57:23 davem Exp $
* systbls.S: System call entry point tables for OS compatibility.
* The native Linux system call table lives here also.
*
@@ -33,7 +33,7 @@ sys_call_table:
/*60*/ .long sys_umask, sys_chroot, sys_newfstat, sys_fstat64, sys_getpagesize
/*65*/ .long sys_msync, sys_vfork, sys_pread, sys_pwrite, sys_geteuid
/*70*/ .long sys_getegid, sys_mmap, sys_setreuid, sys_munmap, sys_mprotect
-/*75*/ .long sys_nis_syscall, sys_vhangup, sys_truncate64, sys_nis_syscall, sys_getgroups16
+/*75*/ .long sys_nis_syscall, sys_vhangup, sys_truncate64, sys_mincore, sys_getgroups16
/*80*/ .long sys_setgroups16, sys_getpgrp, sys_setgroups, sys_setitimer, sys_ftruncate64
/*85*/ .long sys_swapon, sys_getitimer, sys_setuid, sys_sethostname, sys_setgid
/*90*/ .long sys_dup2, sys_setfsuid, sys_fcntl, sys_select, sys_setfsgid
@@ -104,7 +104,7 @@ sunos_sys_table:
.long sunos_nosys, sunos_sbrk, sunos_sstk
.long sunos_mmap, sunos_vadvise, sys_munmap
.long sys_mprotect, sunos_madvise, sys_vhangup
- .long sunos_nosys, sunos_mincore, sys_getgroups16
+ .long sunos_nosys, sys_mincore, sys_getgroups16
.long sys_setgroups16, sys_getpgrp, sunos_setpgrp
.long sys_setitimer, sunos_nosys, sys_swapon
.long sys_getitimer, sys_gethostname, sys_sethostname