From: Paul M. <le...@us...> - 2001-11-06 00:31:15
|
Update of /cvsroot/linux-mips/linux/include/asm-mips64 In directory usw-pr-cvs1:/tmp/cvs-serv388/include/asm-mips64 Modified Files: processor.h smp.h unistd.h Log Message: Sync with OSS 2.4.11. Index: processor.h =================================================================== RCS file: /cvsroot/linux-mips/linux/include/asm-mips64/processor.h,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- processor.h 2001/10/31 18:26:52 1.5 +++ processor.h 2001/11/06 00:30:47 1.6 @@ -299,6 +299,8 @@ #define init_task (init_task_union.task) #define init_stack (init_task_union.stack) +#define cpu_relax() do { } while (0) + #endif /* !defined (_LANGUAGE_ASSEMBLY) */ #endif /* __KERNEL__ */ Index: smp.h =================================================================== RCS file: /cvsroot/linux-mips/linux/include/asm-mips64/smp.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- smp.h 2001/10/09 21:54:37 1.3 +++ smp.h 2001/11/06 00:30:47 1.4 @@ -68,4 +68,6 @@ #error cpumask macros only defined for 128p kernels #endif +extern cpumask_t cpu_online_map; + #endif /* __ASM_SMP_H */ Index: unistd.h =================================================================== RCS file: /cvsroot/linux-mips/linux/include/asm-mips64/unistd.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- unistd.h 2001/11/05 19:19:01 1.2 +++ unistd.h 2001/11/06 00:30:47 1.3 @@ -4,11 +4,251 @@ * for more details. * * Copyright (C) 1995, 96, 97, 98, 99, 2000 by Ralf Baechle + * Copyright (C) 1999, 2000 Silicon Graphics, Inc. + * + * Changed system calls macros _syscall5 - _syscall7 to push args 5 to 7 onto + * the stack. Robin Farine for ACN S.A, Copyright (C) 1996 by ACN S.A */ #ifndef _ASM_UNISTD_H #define _ASM_UNISTD_H -#define __NR_Linux 4000 +/* + * Linux o32 style syscalls are in the range from 4000 to 4999. + */ +#define __NR_Linux32 4000 +#define __NR_Linux32_syscall (__NR_Linux32 + 0) +#define __NR_Linux32_exit (__NR_Linux32 + 1) +#define __NR_Linux32_fork (__NR_Linux32 + 2) +#define __NR_Linux32_read (__NR_Linux32 + 3) +#define __NR_Linux32_write (__NR_Linux32 + 4) +#define __NR_Linux32_open (__NR_Linux32 + 5) +#define __NR_Linux32_close (__NR_Linux32 + 6) +#define __NR_Linux32_waitpid (__NR_Linux32 + 7) +#define __NR_Linux32_creat (__NR_Linux32 + 8) +#define __NR_Linux32_link (__NR_Linux32 + 9) +#define __NR_Linux32_unlink (__NR_Linux32 + 10) +#define __NR_Linux32_execve (__NR_Linux32 + 11) +#define __NR_Linux32_chdir (__NR_Linux32 + 12) +#define __NR_Linux32_time (__NR_Linux32 + 13) +#define __NR_Linux32_mknod (__NR_Linux32 + 14) +#define __NR_Linux32_chmod (__NR_Linux32 + 15) +#define __NR_Linux32_lchown (__NR_Linux32 + 16) +#define __NR_Linux32_break (__NR_Linux32 + 17) +#define __NR_Linux32_oldstat (__NR_Linux32 + 18) +#define __NR_Linux32_lseek (__NR_Linux32 + 19) +#define __NR_Linux32_getpid (__NR_Linux32 + 20) +#define __NR_Linux32_mount (__NR_Linux32 + 21) +#define __NR_Linux32_umount (__NR_Linux32 + 22) +#define __NR_Linux32_setuid (__NR_Linux32 + 23) +#define __NR_Linux32_getuid (__NR_Linux32 + 24) +#define __NR_Linux32_stime (__NR_Linux32 + 25) +#define __NR_Linux32_ptrace (__NR_Linux32 + 26) +#define __NR_Linux32_alarm (__NR_Linux32 + 27) +#define __NR_Linux32_oldfstat (__NR_Linux32 + 28) +#define __NR_Linux32_pause (__NR_Linux32 + 29) +#define __NR_Linux32_utime (__NR_Linux32 + 30) +#define __NR_Linux32_stty (__NR_Linux32 + 31) +#define __NR_Linux32_gtty (__NR_Linux32 + 32) +#define __NR_Linux32_access (__NR_Linux32 + 33) +#define __NR_Linux32_nice (__NR_Linux32 + 34) +#define __NR_Linux32_ftime (__NR_Linux32 + 35) +#define __NR_Linux32_sync (__NR_Linux32 + 36) +#define __NR_Linux32_kill (__NR_Linux32 + 37) +#define __NR_Linux32_rename (__NR_Linux32 + 38) +#define __NR_Linux32_mkdir (__NR_Linux32 + 39) +#define __NR_Linux32_rmdir (__NR_Linux32 + 40) +#define __NR_Linux32_dup (__NR_Linux32 + 41) +#define __NR_Linux32_pipe (__NR_Linux32 + 42) +#define __NR_Linux32_times (__NR_Linux32 + 43) +#define __NR_Linux32_prof (__NR_Linux32 + 44) +#define __NR_Linux32_brk (__NR_Linux32 + 45) +#define __NR_Linux32_setgid (__NR_Linux32 + 46) +#define __NR_Linux32_getgid (__NR_Linux32 + 47) +#define __NR_Linux32_signal (__NR_Linux32 + 48) +#define __NR_Linux32_geteuid (__NR_Linux32 + 49) +#define __NR_Linux32_getegid (__NR_Linux32 + 50) +#define __NR_Linux32_acct (__NR_Linux32 + 51) +#define __NR_Linux32_umount2 (__NR_Linux32 + 52) +#define __NR_Linux32_lock (__NR_Linux32 + 53) +#define __NR_Linux32_ioctl (__NR_Linux32 + 54) +#define __NR_Linux32_fcntl (__NR_Linux32 + 55) +#define __NR_Linux32_mpx (__NR_Linux32 + 56) +#define __NR_Linux32_setpgid (__NR_Linux32 + 57) +#define __NR_Linux32_ulimit (__NR_Linux32 + 58) +#define __NR_Linux32_unused59 (__NR_Linux32 + 59) +#define __NR_Linux32_umask (__NR_Linux32 + 60) +#define __NR_Linux32_chroot (__NR_Linux32 + 61) +#define __NR_Linux32_ustat (__NR_Linux32 + 62) +#define __NR_Linux32_dup2 (__NR_Linux32 + 63) +#define __NR_Linux32_getppid (__NR_Linux32 + 64) +#define __NR_Linux32_getpgrp (__NR_Linux32 + 65) +#define __NR_Linux32_setsid (__NR_Linux32 + 66) +#define __NR_Linux32_sigaction (__NR_Linux32 + 67) +#define __NR_Linux32_sgetmask (__NR_Linux32 + 68) +#define __NR_Linux32_ssetmask (__NR_Linux32 + 69) +#define __NR_Linux32_setreuid (__NR_Linux32 + 70) +#define __NR_Linux32_setregid (__NR_Linux32 + 71) +#define __NR_Linux32_sigsuspend (__NR_Linux32 + 72) +#define __NR_Linux32_sigpending (__NR_Linux32 + 73) +#define __NR_Linux32_sethostname (__NR_Linux32 + 74) +#define __NR_Linux32_setrlimit (__NR_Linux32 + 75) +#define __NR_Linux32_getrlimit (__NR_Linux32 + 76) +#define __NR_Linux32_getrusage (__NR_Linux32 + 77) +#define __NR_Linux32_gettimeofday (__NR_Linux32 + 78) +#define __NR_Linux32_settimeofday (__NR_Linux32 + 79) +#define __NR_Linux32_getgroups (__NR_Linux32 + 80) +#define __NR_Linux32_setgroups (__NR_Linux32 + 81) +#define __NR_Linux32_reserved82 (__NR_Linux32 + 82) +#define __NR_Linux32_symlink (__NR_Linux32 + 83) +#define __NR_Linux32_oldlstat (__NR_Linux32 + 84) +#define __NR_Linux32_readlink (__NR_Linux32 + 85) +#define __NR_Linux32_uselib (__NR_Linux32 + 86) +#define __NR_Linux32_swapon (__NR_Linux32 + 87) +#define __NR_Linux32_reboot (__NR_Linux32 + 88) +#define __NR_Linux32_readdir (__NR_Linux32 + 89) +#define __NR_Linux32_mmap (__NR_Linux32 + 90) +#define __NR_Linux32_munmap (__NR_Linux32 + 91) +#define __NR_Linux32_truncate (__NR_Linux32 + 92) +#define __NR_Linux32_ftruncate (__NR_Linux32 + 93) +#define __NR_Linux32_fchmod (__NR_Linux32 + 94) +#define __NR_Linux32_fchown (__NR_Linux32 + 95) +#define __NR_Linux32_getpriority (__NR_Linux32 + 96) +#define __NR_Linux32_setpriority (__NR_Linux32 + 97) +#define __NR_Linux32_profil (__NR_Linux32 + 98) +#define __NR_Linux32_statfs (__NR_Linux32 + 99) +#define __NR_Linux32_fstatfs (__NR_Linux32 + 100) +#define __NR_Linux32_ioperm (__NR_Linux32 + 101) +#define __NR_Linux32_socketcall (__NR_Linux32 + 102) +#define __NR_Linux32_syslog (__NR_Linux32 + 103) +#define __NR_Linux32_setitimer (__NR_Linux32 + 104) +#define __NR_Linux32_getitimer (__NR_Linux32 + 105) +#define __NR_Linux32_stat (__NR_Linux32 + 106) +#define __NR_Linux32_lstat (__NR_Linux32 + 107) +#define __NR_Linux32_fstat (__NR_Linux32 + 108) +#define __NR_Linux32_unused109 (__NR_Linux32 + 109) +#define __NR_Linux32_iopl (__NR_Linux32 + 110) +#define __NR_Linux32_vhangup (__NR_Linux32 + 111) +#define __NR_Linux32_idle (__NR_Linux32 + 112) +#define __NR_Linux32_vm86 (__NR_Linux32 + 113) +#define __NR_Linux32_wait4 (__NR_Linux32 + 114) +#define __NR_Linux32_swapoff (__NR_Linux32 + 115) +#define __NR_Linux32_sysinfo (__NR_Linux32 + 116) +#define __NR_Linux32_ipc (__NR_Linux32 + 117) +#define __NR_Linux32_fsync (__NR_Linux32 + 118) +#define __NR_Linux32_sigreturn (__NR_Linux32 + 119) +#define __NR_Linux32_clone (__NR_Linux32 + 120) +#define __NR_Linux32_setdomainname (__NR_Linux32 + 121) +#define __NR_Linux32_uname (__NR_Linux32 + 122) +#define __NR_Linux32_modify_ldt (__NR_Linux32 + 123) +#define __NR_Linux32_adjtimex (__NR_Linux32 + 124) +#define __NR_Linux32_mprotect (__NR_Linux32 + 125) +#define __NR_Linux32_sigprocmask (__NR_Linux32 + 126) +#define __NR_Linux32_create_module (__NR_Linux32 + 127) +#define __NR_Linux32_init_module (__NR_Linux32 + 128) +#define __NR_Linux32_delete_module (__NR_Linux32 + 129) +#define __NR_Linux32_get_kernel_syms (__NR_Linux32 + 130) +#define __NR_Linux32_quotactl (__NR_Linux32 + 131) +#define __NR_Linux32_getpgid (__NR_Linux32 + 132) +#define __NR_Linux32_fchdir (__NR_Linux32 + 133) +#define __NR_Linux32_bdflush (__NR_Linux32 + 134) +#define __NR_Linux32_sysfs (__NR_Linux32 + 135) +#define __NR_Linux32_personality (__NR_Linux32 + 136) +#define __NR_Linux32_afs_syscall (__NR_Linux32 + 137) /* Syscall for Andrew File System */ +#define __NR_Linux32_setfsuid (__NR_Linux32 + 138) +#define __NR_Linux32_setfsgid (__NR_Linux32 + 139) +#define __NR_Linux32__llseek (__NR_Linux32 + 140) +#define __NR_Linux32_getdents (__NR_Linux32 + 141) +#define __NR_Linux32__newselect (__NR_Linux32 + 142) +#define __NR_Linux32_flock (__NR_Linux32 + 143) +#define __NR_Linux32_msync (__NR_Linux32 + 144) +#define __NR_Linux32_readv (__NR_Linux32 + 145) +#define __NR_Linux32_writev (__NR_Linux32 + 146) +#define __NR_Linux32_cacheflush (__NR_Linux32 + 147) +#define __NR_Linux32_cachectl (__NR_Linux32 + 148) +#define __NR_Linux32_sysmips (__NR_Linux32 + 149) +#define __NR_Linux32_unused150 (__NR_Linux32 + 150) +#define __NR_Linux32_getsid (__NR_Linux32 + 151) +#define __NR_Linux32_fdatasync (__NR_Linux32 + 152) +#define __NR_Linux32__sysctl (__NR_Linux32 + 153) +#define __NR_Linux32_mlock (__NR_Linux32 + 154) +#define __NR_Linux32_munlock (__NR_Linux32 + 155) +#define __NR_Linux32_mlockall (__NR_Linux32 + 156) +#define __NR_Linux32_munlockall (__NR_Linux32 + 157) +#define __NR_Linux32_sched_setparam (__NR_Linux32 + 158) +#define __NR_Linux32_sched_getparam (__NR_Linux32 + 159) +#define __NR_Linux32_sched_setscheduler (__NR_Linux32 + 160) +#define __NR_Linux32_sched_getscheduler (__NR_Linux32 + 161) +#define __NR_Linux32_sched_yield (__NR_Linux32 + 162) +#define __NR_Linux32_sched_get_priority_max (__NR_Linux32 + 163) +#define __NR_Linux32_sched_get_priority_min (__NR_Linux32 + 164) +#define __NR_Linux32_sched_rr_get_interval (__NR_Linux32 + 165) +#define __NR_Linux32_nanosleep (__NR_Linux32 + 166) +#define __NR_Linux32_mremap (__NR_Linux32 + 167) +#define __NR_Linux32_accept (__NR_Linux32 + 168) +#define __NR_Linux32_bind (__NR_Linux32 + 169) +#define __NR_Linux32_connect (__NR_Linux32 + 170) +#define __NR_Linux32_getpeername (__NR_Linux32 + 171) +#define __NR_Linux32_getsockname (__NR_Linux32 + 172) +#define __NR_Linux32_getsockopt (__NR_Linux32 + 173) +#define __NR_Linux32_listen (__NR_Linux32 + 174) +#define __NR_Linux32_recv (__NR_Linux32 + 175) +#define __NR_Linux32_recvfrom (__NR_Linux32 + 176) +#define __NR_Linux32_recvmsg (__NR_Linux32 + 177) +#define __NR_Linux32_send (__NR_Linux32 + 178) +#define __NR_Linux32_sendmsg (__NR_Linux32 + 179) +#define __NR_Linux32_sendto (__NR_Linux32 + 180) +#define __NR_Linux32_setsockopt (__NR_Linux32 + 181) +#define __NR_Linux32_shutdown (__NR_Linux32 + 182) +#define __NR_Linux32_socket (__NR_Linux32 + 183) +#define __NR_Linux32_socketpair (__NR_Linux32 + 184) +#define __NR_Linux32_setresuid (__NR_Linux32 + 185) +#define __NR_Linux32_getresuid (__NR_Linux32 + 186) +#define __NR_Linux32_query_module (__NR_Linux32 + 187) +#define __NR_Linux32_poll (__NR_Linux32 + 188) +#define __NR_Linux32_nfsservctl (__NR_Linux32 + 189) +#define __NR_Linux32_setresgid (__NR_Linux32 + 190) +#define __NR_Linux32_getresgid (__NR_Linux32 + 191) +#define __NR_Linux32_prctl (__NR_Linux32 + 192) +#define __NR_Linux32_rt_sigreturn (__NR_Linux32 + 193) +#define __NR_Linux32_rt_sigaction (__NR_Linux32 + 194) +#define __NR_Linux32_rt_sigprocmask (__NR_Linux32 + 195) +#define __NR_Linux32_rt_sigpending (__NR_Linux32 + 196) +#define __NR_Linux32_rt_sigtimedwait (__NR_Linux32 + 197) +#define __NR_Linux32_rt_sigqueueinfo (__NR_Linux32 + 198) +#define __NR_Linux32_rt_sigsuspend (__NR_Linux32 + 199) +#define __NR_Linux32_pread (__NR_Linux32 + 200) +#define __NR_Linux32_pwrite (__NR_Linux32 + 201) +#define __NR_Linux32_chown (__NR_Linux32 + 202) +#define __NR_Linux32_getcwd (__NR_Linux32 + 203) +#define __NR_Linux32_capget (__NR_Linux32 + 204) +#define __NR_Linux32_capset (__NR_Linux32 + 205) +#define __NR_Linux32_sigaltstack (__NR_Linux32 + 206) +#define __NR_Linux32_sendfile (__NR_Linux32 + 207) +#define __NR_Linux32_getpmsg (__NR_Linux32 + 208) +#define __NR_Linux32_putpmsg (__NR_Linux32 + 209) +#define __NR_Linux32_mmap2 (__NR_Linux32 + 210) +#define __NR_Linux32_truncate64 (__NR_Linux32 + 211) +#define __NR_Linux32_ftruncate64 (__NR_Linux32 + 212) +#define __NR_Linux32_stat64 (__NR_Linux32 + 213) +#define __NR_Linux32_lstat64 (__NR_Linux32 + 214) +#define __NR_Linux32_fstat64 (__NR_Linux32 + 215) +#define __NR_Linux32_root_pivot (__NR_Linux32 + 216) +#define __NR_Linux32_mincore (__NR_Linux32 + 217) +#define __NR_Linux32_madvise (__NR_Linux32 + 218) +#define __NR_Linux32_getdents64 (__NR_Linux32 + 219) +#define __NR_Linux32_fcntl64 (__NR_Linux32 + 220) +#define __NR_Linux32_security (__NR_Linux32 + 221) +#define __NR_Linux32_gettid (__NR_Linux32 + 222) + +/* + * Offset of the last Linux o32 flavoured syscall + */ +#define __NR_Linux32_syscalls 222 + +/* + * Linux 64-bit syscalls are in the range from 5000 to 5999. + */ +#define __NR_Linux 5000 #define __NR_syscall (__NR_Linux + 0) #define __NR_exit (__NR_Linux + 1) #define __NR_fork (__NR_Linux + 2) @@ -219,22 +459,17 @@ #define __NR_sendfile (__NR_Linux + 207) #define __NR_getpmsg (__NR_Linux + 208) #define __NR_putpmsg (__NR_Linux + 209) -#define __NR_mmap2 (__NR_Linux + 210) -#define __NR_truncate64 (__NR_Linux + 211) -#define __NR_ftruncate64 (__NR_Linux + 212) -#define __NR_stat64 (__NR_Linux + 213) -#define __NR_lstat64 (__NR_Linux + 214) -#define __NR_fstat64 (__NR_Linux + 215) -#define __NR_pivot_root (__NR_Linux + 216) -#define __NR_mincore (__NR_Linux + 217) -#define __NR_madvise (__NR_Linux + 218) -#define __NR_getdents64 (__NR_Linux + 219) -#define __NR_fcntl64 (__NR_Linux + 220) +#define __NR_root_pivot (__NR_Linux + 210) +#define __NR_mincore (__NR_Linux + 211) +#define __NR_madvise (__NR_Linux + 212) +#define __NR_getdents64 (__NR_Linux + 213) +#define __NR__security (__NR_Linux + 214) +#define __NR__gettid (__NR_Linux + 215) /* * Offset of the last Linux flavoured syscall */ -#define __NR_Linux_syscalls 220 +#define __NR_Linux_syscalls 215 #ifndef _LANGUAGE_ASSEMBLY @@ -357,6 +592,98 @@ return -1; \ } +#if (_MIPS_SIM == _ABIN32) || (_MIPS_SIM == _ABI64) + +#define _syscall5(type,name,atype,a,btype,b,ctype,c,dtype,d,etype,e) \ +type name (atype a,btype b,ctype c,dtype d,etype e) \ +{ \ + register unsigned long __v0 asm("$2") = __NR_##name; \ + register unsigned long __a0 asm("$4") = (unsigned long) a; \ + register unsigned long __a1 asm("$5") = (unsigned long) b; \ + register unsigned long __a2 asm("$6") = (unsigned long) c; \ + register unsigned long __a3 asm("$7") = (unsigned long) d; \ + register unsigned long __a4 asm("$8") = (unsigned long) e; \ + \ + __asm__ volatile ( \ + ".set\tnoreorder\n\t" \ + "li\t$2, %6\t\t\t# " #name "\n\t" \ + "syscall\n\t" \ + ".set\treorder" \ + : "=&r" (__v0), "+r" (__a3), "+r" (__a4) \ + : "r" (__a0), "r" (__a1), "r" (__a2), "i" (__NR_##name) \ + : "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24"); \ + \ + if (__a3 == 0) \ + return (type) __v0; \ + errno = __v0; \ + return -1; \ +} + +#define _syscall6(type,name,atype,a,btype,b,ctype,c,dtype,d,etype,e,ftype,f) \ +type name (atype a,btype b,ctype c,dtype d,etype e,ftype f) \ +{ \ + register unsigned long __v0 asm("$2") = __NR_##name; \ + register unsigned long __a0 asm("$4") = (unsigned long) a; \ + register unsigned long __a1 asm("$5") = (unsigned long) b; \ + register unsigned long __a2 asm("$6") = (unsigned long) c; \ + register unsigned long __a3 asm("$7") = (unsigned long) d; \ + register unsigned long __a4 asm("$8") = (unsigned long) e; \ + register unsigned long __a5 asm("$9") = (unsigned long) f; \ + \ + __asm__ volatile ( "" \ + : "+r" (__a5) \ + : \ + : "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24"); \ + \ + __asm__ volatile ( \ + ".set\tnoreorder\n\t" \ + "li\t$2, %6\t\t\t# " #name "\n\t" \ + "syscall\n\t" \ + ".set\treorder" \ + : "=&r" (__v0), "+r" (__a3), "+r" (__a4) \ + : "r" (__a0), "r" (__a1), "r" (__a2), "i" (__NR_##name) \ + : "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24"); \ + \ + if (__a3 == 0) \ + return (type) __v0; \ + errno = __v0; \ + return -1; \ +} + +#define _syscall7(type,name,atype,a,btype,b,ctype,c,dtype,d,etype,e,ftype,f,gtype,g) \ +type name (atype a,btype b,ctype c,dtype d,etype e,ftype f,gtype g) \ +{ \ + register unsigned long __v0 asm("$2") = __NR_##name; \ + register unsigned long __a0 asm("$4") = (unsigned long) a; \ + register unsigned long __a1 asm("$5") = (unsigned long) b; \ + register unsigned long __a2 asm("$6") = (unsigned long) c; \ + register unsigned long __a3 asm("$7") = (unsigned long) d; \ + register unsigned long __a4 asm("$8") = (unsigned long) e; \ + register unsigned long __a5 asm("$9") = (unsigned long) f; \ + register unsigned long __a6 asm("$10") = (unsigned long) g; \ + \ + __asm__ volatile ( "" \ + : "+r" (__a5), "+r" (__a6) \ + : \ + : "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24"); \ + \ + __asm__ volatile ( \ + ".set\tnoreorder\n\t" \ + "li\t$2, %6\t\t\t# " #name "\n\t" \ + "syscall\n\t" \ + ".set\treorder" \ + : "=&r" (__v0), "+r" (__a3), "+r" (__a4) \ + : "r" (__a0), "r" (__a1), "r" (__a2), "i" (__NR_##name) \ + : "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24"); \ + \ + if (__a3 == 0) \ + return (type) __v0; \ + errno = __v0; \ + return -1; \ +} + +#else /* not N32 or 64 ABI */ + /* * Using those means your brain needs more than an oil change ;-) */ @@ -455,6 +782,7 @@ return -1; \ } +#endif #ifdef __KERNEL_SYSCALLS__ |