patch-2.3.9 linux/include/asm-mips/unistd.h
Next file: linux/include/asm-mips/vga.h
Previous file: linux/include/asm-mips/umap.h
Back to the patch index
Back to the overall index
- Lines: 67
- Date:
Fri Jun 25 17:37:53 1999
- Orig file:
v2.3.8/linux/include/asm-mips/unistd.h
- Orig date:
Tue Oct 20 13:52:54 1998
diff -u --recursive --new-file v2.3.8/linux/include/asm-mips/unistd.h linux/include/asm-mips/unistd.h
@@ -1300,7 +1300,7 @@
"r" ((long)(b)), \
"r" ((long)(c)), \
"r" ((long)(d)) \
- : "$4","$5","$6""$8","$9","$10","$11","$12","$13","$14", \
+ : "$4","$5","$6","$8","$9","$10","$11","$12","$13","$14", \
"$15","$24"); \
if (__err == 0) \
return (type) __res; \
@@ -1424,6 +1424,8 @@
static inline _syscall0(int,sync)
static inline _syscall0(pid_t,setsid)
static inline _syscall3(int,write,int,fd,const char *,buf,off_t,count)
+static inline _syscall3(int,read,int,fd,char *,buf,off_t,count)
+static inline _syscall3(off_t,lseek,int,fd,off_t,offset,int,count)
static inline _syscall1(int,dup,int,fd)
static inline _syscall3(int,execve,const char *,file,char **,argv,char **,envp)
static inline _syscall3(int,open,const char *,file,int,flag,int,mode)
@@ -1435,48 +1437,6 @@
static inline pid_t wait(int * wait_stat)
{
return waitpid(-1,wait_stat,0);
-}
-
-/*
- * This is the mechanism for creating a new kernel thread.
- *
- * NOTE! Only a kernel-only process(ie the swapper or direct descendants
- * who haven't done an "execve()") should use this: it will work within
- * a system call from a "real" process, but the process memory space will
- * not be free'd until both the parent and the child have exited.
- */
-static inline pid_t kernel_thread(int (*fn)(void *), void * arg, unsigned long flags)
-{
- long retval;
-
- __asm__ __volatile__(
- ".set\tnoreorder\n\t"
- "move\t$6,$sp\n\t"
- "move\t$4,%5\n\t"
- "li\t$2,%1\n\t"
- "syscall\n\t"
- "beq\t$6,$sp,1f\n\t"
- "subu\t$sp,32\n\t" /* delay slot */
- "jalr\t%4\n\t"
- "move\t$4,%3\n\t" /* delay slot */
- "move\t$4,$2\n\t"
- "li\t$2,%2\n\t"
- "syscall\n"
- "1:\taddiu\t$sp,32\n\t"
- "move\t%0,$2\n\t"
- ".set\treorder"
- :"=r" (retval)
- :"i" (__NR_clone), "i" (__NR_exit),
- "r" (arg), "r" (fn),
- "r" (flags | CLONE_VM)
- /*
- * The called subroutine might have destroyed any of the
- * at, result, argument or temporary registers ...
- */
- :"$1", "$2", "$3", "$4", "$5", "$6", "$7", "$8",
- "$9","$10","$11","$12","$13","$14","$15","$24","$25");
-
- return retval;
}
#endif /* !defined (__KERNEL_SYSCALLS__) */
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)