Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next
Pull sparc updates from David Miller: - Automatic system call table generation, from Firoz Khan. - Clean up accesses to the OF device names by using full_name instead of path_component_name. * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next: ALSA: sparc: Use of_node_name_eq for node name comparisons sbus: Use of_node_name_eq for node name comparisons sparc: generate uapi header and system call table files sparc: add system call table generation support sparc: add __NR_syscalls along with NR_syscalls sparc: move __IGNORE* entries to non uapi header sparc: Use DT node full_name instead of name for resources sparc: Remove unused leon_trans_init sparc: Use device_type helpers to access the node type sparc: Use of_node_name_eq for node name comparisons sparc: Convert to using %pOFn instead of device_node.name sparc: prom: use property "name" directly to construct node names of: Drop full path from full_name for PDT systems sparc: Convert to using %pOF instead of full_name fs/openpromfs: Use of_node_name_eq for node name comparisons fs/openpromfs: use full_name instead of path_component_name
This commit is contained in:
commit
c2f1f3e0e1
|
@ -81,6 +81,9 @@ install:
|
||||||
archclean:
|
archclean:
|
||||||
$(Q)$(MAKE) $(clean)=$(boot)
|
$(Q)$(MAKE) $(clean)=$(boot)
|
||||||
|
|
||||||
|
archheaders:
|
||||||
|
$(Q)$(MAKE) $(build)=arch/sparc/kernel/syscalls all
|
||||||
|
|
||||||
PHONY += vdso_install
|
PHONY += vdso_install
|
||||||
vdso_install:
|
vdso_install:
|
||||||
$(Q)$(MAKE) $(build)=arch/sparc/vdso $@
|
$(Q)$(MAKE) $(build)=arch/sparc/vdso $@
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
# User exported sparc header files
|
# User exported sparc header files
|
||||||
|
|
||||||
|
generated-y += syscall_table_32.h
|
||||||
|
generated-y += syscall_table_64.h
|
||||||
|
generated-y += syscall_table_c32.h
|
||||||
generic-y += div64.h
|
generic-y += div64.h
|
||||||
generic-y += emergency-restart.h
|
generic-y += emergency-restart.h
|
||||||
generic-y += exec.h
|
generic-y += exec.h
|
||||||
|
|
|
@ -528,9 +528,9 @@ static int sun_pci_fd_test_drive(unsigned long port, int drive)
|
||||||
|
|
||||||
static int __init ebus_fdthree_p(struct device_node *dp)
|
static int __init ebus_fdthree_p(struct device_node *dp)
|
||||||
{
|
{
|
||||||
if (!strcmp(dp->name, "fdthree"))
|
if (of_node_name_eq(dp, "fdthree"))
|
||||||
return 1;
|
return 1;
|
||||||
if (!strcmp(dp->name, "floppy")) {
|
if (of_node_name_eq(dp, "floppy")) {
|
||||||
const char *compat;
|
const char *compat;
|
||||||
|
|
||||||
compat = of_get_property(dp, "compatible", NULL);
|
compat = of_get_property(dp, "compatible", NULL);
|
||||||
|
@ -555,7 +555,7 @@ static unsigned long __init sun_floppy_init(void)
|
||||||
op = NULL;
|
op = NULL;
|
||||||
|
|
||||||
for_each_node_by_name(dp, "SUNW,fdtwo") {
|
for_each_node_by_name(dp, "SUNW,fdtwo") {
|
||||||
if (strcmp(dp->parent->name, "sbus"))
|
if (!of_node_name_eq(dp->parent, "sbus"))
|
||||||
continue;
|
continue;
|
||||||
op = of_find_device_by_node(dp);
|
op = of_find_device_by_node(dp);
|
||||||
if (op)
|
if (op)
|
||||||
|
@ -656,7 +656,7 @@ static unsigned long __init sun_floppy_init(void)
|
||||||
*/
|
*/
|
||||||
config = 0;
|
config = 0;
|
||||||
for (dp = ebus_dp->child; dp; dp = dp->sibling) {
|
for (dp = ebus_dp->child; dp; dp = dp->sibling) {
|
||||||
if (!strcmp(dp->name, "ecpp")) {
|
if (of_node_name_eq(dp, "ecpp")) {
|
||||||
struct platform_device *ecpp_op;
|
struct platform_device *ecpp_op;
|
||||||
|
|
||||||
ecpp_op = of_find_device_by_node(dp);
|
ecpp_op = of_find_device_by_node(dp);
|
||||||
|
|
|
@ -225,7 +225,6 @@ void leon_update_virq_handling(unsigned int virq,
|
||||||
irq_flow_handler_t flow_handler,
|
irq_flow_handler_t flow_handler,
|
||||||
const char *name, int do_ack);
|
const char *name, int do_ack);
|
||||||
void leon_init_timers(void);
|
void leon_init_timers(void);
|
||||||
void leon_trans_init(struct device_node *dp);
|
|
||||||
void leon_node_init(struct device_node *dp, struct device_node ***nextp);
|
void leon_node_init(struct device_node *dp, struct device_node ***nextp);
|
||||||
void init_leon(void);
|
void init_leon(void);
|
||||||
void poke_leonsparc(void);
|
void poke_leonsparc(void);
|
||||||
|
|
|
@ -117,7 +117,7 @@ static int ecpp_probe(struct platform_device *op)
|
||||||
int slot, err;
|
int slot, err;
|
||||||
|
|
||||||
parent = op->dev.of_node->parent;
|
parent = op->dev.of_node->parent;
|
||||||
if (!strcmp(parent->name, "dma")) {
|
if (of_node_name_eq(parent, "dma")) {
|
||||||
p = parport_pc_probe_port(base, base + 0x400,
|
p = parport_pc_probe_port(base, base + 0x400,
|
||||||
op->archdata.irqs[0], PARPORT_DMA_NOFIFO,
|
op->archdata.irqs[0], PARPORT_DMA_NOFIFO,
|
||||||
op->dev.parent->parent, 0);
|
op->dev.parent->parent, 0);
|
||||||
|
|
|
@ -17,6 +17,8 @@
|
||||||
|
|
||||||
#include <uapi/asm/unistd.h>
|
#include <uapi/asm/unistd.h>
|
||||||
|
|
||||||
|
#define NR_syscalls __NR_syscalls
|
||||||
|
|
||||||
#ifdef __32bit_syscall_numbers__
|
#ifdef __32bit_syscall_numbers__
|
||||||
#else
|
#else
|
||||||
#define __NR_time 231 /* Linux sparc32 */
|
#define __NR_time 231 /* Linux sparc32 */
|
||||||
|
@ -46,4 +48,20 @@
|
||||||
#define __ARCH_WANT_COMPAT_SYS_SENDFILE
|
#define __ARCH_WANT_COMPAT_SYS_SENDFILE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef __32bit_syscall_numbers__
|
||||||
|
/* Sparc 32-bit only has the "setresuid32", "getresuid32" variants,
|
||||||
|
* it never had the plain ones and there is no value to adding those
|
||||||
|
* old versions into the syscall table.
|
||||||
|
*/
|
||||||
|
#define __IGNORE_setresuid
|
||||||
|
#define __IGNORE_getresuid
|
||||||
|
#define __IGNORE_setresgid
|
||||||
|
#define __IGNORE_getresgid
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Sparc doesn't have protection keys. */
|
||||||
|
#define __IGNORE_pkey_mprotect
|
||||||
|
#define __IGNORE_pkey_alloc
|
||||||
|
#define __IGNORE_pkey_free
|
||||||
|
|
||||||
#endif /* _SPARC_UNISTD_H */
|
#endif /* _SPARC_UNISTD_H */
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
# UAPI Header export list
|
# UAPI Header export list
|
||||||
include include/uapi/asm-generic/Kbuild.asm
|
include include/uapi/asm-generic/Kbuild.asm
|
||||||
|
|
||||||
|
generated-y += unistd_32.h
|
||||||
|
generated-y += unistd_64.h
|
||||||
generic-y += bpf_perf_event.h
|
generic-y += bpf_perf_event.h
|
||||||
generic-y += types.h
|
generic-y += types.h
|
||||||
|
|
|
@ -21,433 +21,13 @@
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define __NR_restart_syscall 0 /* Linux Specific */
|
#ifdef __arch64__
|
||||||
#define __NR_exit 1 /* Common */
|
#include <asm/unistd_64.h>
|
||||||
#define __NR_fork 2 /* Common */
|
|
||||||
#define __NR_read 3 /* Common */
|
|
||||||
#define __NR_write 4 /* Common */
|
|
||||||
#define __NR_open 5 /* Common */
|
|
||||||
#define __NR_close 6 /* Common */
|
|
||||||
#define __NR_wait4 7 /* Common */
|
|
||||||
#define __NR_creat 8 /* Common */
|
|
||||||
#define __NR_link 9 /* Common */
|
|
||||||
#define __NR_unlink 10 /* Common */
|
|
||||||
#define __NR_execv 11 /* SunOS Specific */
|
|
||||||
#define __NR_chdir 12 /* Common */
|
|
||||||
#define __NR_chown 13 /* Common */
|
|
||||||
#define __NR_mknod 14 /* Common */
|
|
||||||
#define __NR_chmod 15 /* Common */
|
|
||||||
#define __NR_lchown 16 /* Common */
|
|
||||||
#define __NR_brk 17 /* Common */
|
|
||||||
#define __NR_perfctr 18 /* Performance counter operations */
|
|
||||||
#define __NR_lseek 19 /* Common */
|
|
||||||
#define __NR_getpid 20 /* Common */
|
|
||||||
#define __NR_capget 21 /* Linux Specific */
|
|
||||||
#define __NR_capset 22 /* Linux Specific */
|
|
||||||
#define __NR_setuid 23 /* Implemented via setreuid in SunOS */
|
|
||||||
#define __NR_getuid 24 /* Common */
|
|
||||||
#define __NR_vmsplice 25 /* ENOSYS under SunOS */
|
|
||||||
#define __NR_ptrace 26 /* Common */
|
|
||||||
#define __NR_alarm 27 /* Implemented via setitimer in SunOS */
|
|
||||||
#define __NR_sigaltstack 28 /* Common */
|
|
||||||
#define __NR_pause 29 /* Is sigblock(0)->sigpause() in SunOS */
|
|
||||||
#define __NR_utime 30 /* Implemented via utimes() under SunOS */
|
|
||||||
#ifdef __32bit_syscall_numbers__
|
|
||||||
#define __NR_lchown32 31 /* Linux sparc32 specific */
|
|
||||||
#define __NR_fchown32 32 /* Linux sparc32 specific */
|
|
||||||
#endif
|
|
||||||
#define __NR_access 33 /* Common */
|
|
||||||
#define __NR_nice 34 /* Implemented via get/setpriority() in SunOS */
|
|
||||||
#ifdef __32bit_syscall_numbers__
|
|
||||||
#define __NR_chown32 35 /* Linux sparc32 specific */
|
|
||||||
#endif
|
|
||||||
#define __NR_sync 36 /* Common */
|
|
||||||
#define __NR_kill 37 /* Common */
|
|
||||||
#define __NR_stat 38 /* Common */
|
|
||||||
#define __NR_sendfile 39 /* Linux Specific */
|
|
||||||
#define __NR_lstat 40 /* Common */
|
|
||||||
#define __NR_dup 41 /* Common */
|
|
||||||
#define __NR_pipe 42 /* Common */
|
|
||||||
#define __NR_times 43 /* Implemented via getrusage() in SunOS */
|
|
||||||
#ifdef __32bit_syscall_numbers__
|
|
||||||
#define __NR_getuid32 44 /* Linux sparc32 specific */
|
|
||||||
#endif
|
|
||||||
#define __NR_umount2 45 /* Linux Specific */
|
|
||||||
#define __NR_setgid 46 /* Implemented via setregid() in SunOS */
|
|
||||||
#define __NR_getgid 47 /* Common */
|
|
||||||
#define __NR_signal 48 /* Implemented via sigvec() in SunOS */
|
|
||||||
#define __NR_geteuid 49 /* SunOS calls getuid() */
|
|
||||||
#define __NR_getegid 50 /* SunOS calls getgid() */
|
|
||||||
#define __NR_acct 51 /* Common */
|
|
||||||
#ifdef __32bit_syscall_numbers__
|
|
||||||
#define __NR_getgid32 53 /* Linux sparc32 specific */
|
|
||||||
#else
|
#else
|
||||||
#define __NR_memory_ordering 52 /* Linux Specific */
|
#include <asm/unistd_32.h>
|
||||||
#endif
|
#endif
|
||||||
#define __NR_ioctl 54 /* Common */
|
|
||||||
#define __NR_reboot 55 /* Common */
|
|
||||||
#ifdef __32bit_syscall_numbers__
|
|
||||||
#define __NR_mmap2 56 /* Linux sparc32 Specific */
|
|
||||||
#endif
|
|
||||||
#define __NR_symlink 57 /* Common */
|
|
||||||
#define __NR_readlink 58 /* Common */
|
|
||||||
#define __NR_execve 59 /* Common */
|
|
||||||
#define __NR_umask 60 /* Common */
|
|
||||||
#define __NR_chroot 61 /* Common */
|
|
||||||
#define __NR_fstat 62 /* Common */
|
|
||||||
#define __NR_fstat64 63 /* Linux Specific */
|
|
||||||
#define __NR_getpagesize 64 /* Common */
|
|
||||||
#define __NR_msync 65 /* Common in newer 1.3.x revs... */
|
|
||||||
#define __NR_vfork 66 /* Common */
|
|
||||||
#define __NR_pread64 67 /* Linux Specific */
|
|
||||||
#define __NR_pwrite64 68 /* Linux Specific */
|
|
||||||
#ifdef __32bit_syscall_numbers__
|
|
||||||
#define __NR_geteuid32 69 /* Linux sparc32, sbrk under SunOS */
|
|
||||||
#define __NR_getegid32 70 /* Linux sparc32, sstk under SunOS */
|
|
||||||
#endif
|
|
||||||
#define __NR_mmap 71 /* Common */
|
|
||||||
#ifdef __32bit_syscall_numbers__
|
|
||||||
#define __NR_setreuid32 72 /* Linux sparc32, vadvise under SunOS */
|
|
||||||
#endif
|
|
||||||
#define __NR_munmap 73 /* Common */
|
|
||||||
#define __NR_mprotect 74 /* Common */
|
|
||||||
#define __NR_madvise 75 /* Common */
|
|
||||||
#define __NR_vhangup 76 /* Common */
|
|
||||||
#ifdef __32bit_syscall_numbers__
|
|
||||||
#define __NR_truncate64 77 /* Linux sparc32 Specific */
|
|
||||||
#endif
|
|
||||||
#define __NR_mincore 78 /* Common */
|
|
||||||
#define __NR_getgroups 79 /* Common */
|
|
||||||
#define __NR_setgroups 80 /* Common */
|
|
||||||
#define __NR_getpgrp 81 /* Common */
|
|
||||||
#ifdef __32bit_syscall_numbers__
|
|
||||||
#define __NR_setgroups32 82 /* Linux sparc32, setpgrp under SunOS */
|
|
||||||
#endif
|
|
||||||
#define __NR_setitimer 83 /* Common */
|
|
||||||
#ifdef __32bit_syscall_numbers__
|
|
||||||
#define __NR_ftruncate64 84 /* Linux sparc32 Specific */
|
|
||||||
#endif
|
|
||||||
#define __NR_swapon 85 /* Common */
|
|
||||||
#define __NR_getitimer 86 /* Common */
|
|
||||||
#ifdef __32bit_syscall_numbers__
|
|
||||||
#define __NR_setuid32 87 /* Linux sparc32, gethostname under SunOS */
|
|
||||||
#endif
|
|
||||||
#define __NR_sethostname 88 /* Common */
|
|
||||||
#ifdef __32bit_syscall_numbers__
|
|
||||||
#define __NR_setgid32 89 /* Linux sparc32, getdtablesize under SunOS */
|
|
||||||
#endif
|
|
||||||
#define __NR_dup2 90 /* Common */
|
|
||||||
#ifdef __32bit_syscall_numbers__
|
|
||||||
#define __NR_setfsuid32 91 /* Linux sparc32, getdopt under SunOS */
|
|
||||||
#endif
|
|
||||||
#define __NR_fcntl 92 /* Common */
|
|
||||||
#define __NR_select 93 /* Common */
|
|
||||||
#ifdef __32bit_syscall_numbers__
|
|
||||||
#define __NR_setfsgid32 94 /* Linux sparc32, setdopt under SunOS */
|
|
||||||
#endif
|
|
||||||
#define __NR_fsync 95 /* Common */
|
|
||||||
#define __NR_setpriority 96 /* Common */
|
|
||||||
#define __NR_socket 97 /* Common */
|
|
||||||
#define __NR_connect 98 /* Common */
|
|
||||||
#define __NR_accept 99 /* Common */
|
|
||||||
#define __NR_getpriority 100 /* Common */
|
|
||||||
#define __NR_rt_sigreturn 101 /* Linux Specific */
|
|
||||||
#define __NR_rt_sigaction 102 /* Linux Specific */
|
|
||||||
#define __NR_rt_sigprocmask 103 /* Linux Specific */
|
|
||||||
#define __NR_rt_sigpending 104 /* Linux Specific */
|
|
||||||
#define __NR_rt_sigtimedwait 105 /* Linux Specific */
|
|
||||||
#define __NR_rt_sigqueueinfo 106 /* Linux Specific */
|
|
||||||
#define __NR_rt_sigsuspend 107 /* Linux Specific */
|
|
||||||
#ifdef __32bit_syscall_numbers__
|
|
||||||
#define __NR_setresuid32 108 /* Linux Specific, sigvec under SunOS */
|
|
||||||
#define __NR_getresuid32 109 /* Linux Specific, sigblock under SunOS */
|
|
||||||
#define __NR_setresgid32 110 /* Linux Specific, sigsetmask under SunOS */
|
|
||||||
#define __NR_getresgid32 111 /* Linux Specific, sigpause under SunOS */
|
|
||||||
#define __NR_setregid32 112 /* Linux sparc32, sigstack under SunOS */
|
|
||||||
#else
|
|
||||||
#define __NR_setresuid 108 /* Linux Specific, sigvec under SunOS */
|
|
||||||
#define __NR_getresuid 109 /* Linux Specific, sigblock under SunOS */
|
|
||||||
#define __NR_setresgid 110 /* Linux Specific, sigsetmask under SunOS */
|
|
||||||
#define __NR_getresgid 111 /* Linux Specific, sigpause under SunOS */
|
|
||||||
#endif
|
|
||||||
#define __NR_recvmsg 113 /* Common */
|
|
||||||
#define __NR_sendmsg 114 /* Common */
|
|
||||||
#ifdef __32bit_syscall_numbers__
|
|
||||||
#define __NR_getgroups32 115 /* Linux sparc32, vtrace under SunOS */
|
|
||||||
#endif
|
|
||||||
#define __NR_gettimeofday 116 /* Common */
|
|
||||||
#define __NR_getrusage 117 /* Common */
|
|
||||||
#define __NR_getsockopt 118 /* Common */
|
|
||||||
#define __NR_getcwd 119 /* Linux Specific */
|
|
||||||
#define __NR_readv 120 /* Common */
|
|
||||||
#define __NR_writev 121 /* Common */
|
|
||||||
#define __NR_settimeofday 122 /* Common */
|
|
||||||
#define __NR_fchown 123 /* Common */
|
|
||||||
#define __NR_fchmod 124 /* Common */
|
|
||||||
#define __NR_recvfrom 125 /* Common */
|
|
||||||
#define __NR_setreuid 126 /* Common */
|
|
||||||
#define __NR_setregid 127 /* Common */
|
|
||||||
#define __NR_rename 128 /* Common */
|
|
||||||
#define __NR_truncate 129 /* Common */
|
|
||||||
#define __NR_ftruncate 130 /* Common */
|
|
||||||
#define __NR_flock 131 /* Common */
|
|
||||||
#define __NR_lstat64 132 /* Linux Specific */
|
|
||||||
#define __NR_sendto 133 /* Common */
|
|
||||||
#define __NR_shutdown 134 /* Common */
|
|
||||||
#define __NR_socketpair 135 /* Common */
|
|
||||||
#define __NR_mkdir 136 /* Common */
|
|
||||||
#define __NR_rmdir 137 /* Common */
|
|
||||||
#define __NR_utimes 138 /* SunOS Specific */
|
|
||||||
#define __NR_stat64 139 /* Linux Specific */
|
|
||||||
#define __NR_sendfile64 140 /* adjtime under SunOS */
|
|
||||||
#define __NR_getpeername 141 /* Common */
|
|
||||||
#define __NR_futex 142 /* gethostid under SunOS */
|
|
||||||
#define __NR_gettid 143 /* ENOSYS under SunOS */
|
|
||||||
#define __NR_getrlimit 144 /* Common */
|
|
||||||
#define __NR_setrlimit 145 /* Common */
|
|
||||||
#define __NR_pivot_root 146 /* Linux Specific, killpg under SunOS */
|
|
||||||
#define __NR_prctl 147 /* ENOSYS under SunOS */
|
|
||||||
#define __NR_pciconfig_read 148 /* ENOSYS under SunOS */
|
|
||||||
#define __NR_pciconfig_write 149 /* ENOSYS under SunOS */
|
|
||||||
#define __NR_getsockname 150 /* Common */
|
|
||||||
#define __NR_inotify_init 151 /* Linux specific */
|
|
||||||
#define __NR_inotify_add_watch 152 /* Linux specific */
|
|
||||||
#define __NR_poll 153 /* Common */
|
|
||||||
#define __NR_getdents64 154 /* Linux specific */
|
|
||||||
#ifdef __32bit_syscall_numbers__
|
|
||||||
#define __NR_fcntl64 155 /* Linux sparc32 Specific */
|
|
||||||
#endif
|
|
||||||
#define __NR_inotify_rm_watch 156 /* Linux specific */
|
|
||||||
#define __NR_statfs 157 /* Common */
|
|
||||||
#define __NR_fstatfs 158 /* Common */
|
|
||||||
#define __NR_umount 159 /* Common */
|
|
||||||
#define __NR_sched_set_affinity 160 /* Linux specific, async_daemon under SunOS */
|
|
||||||
#define __NR_sched_get_affinity 161 /* Linux specific, getfh under SunOS */
|
|
||||||
#define __NR_getdomainname 162 /* SunOS Specific */
|
|
||||||
#define __NR_setdomainname 163 /* Common */
|
|
||||||
#ifndef __32bit_syscall_numbers__
|
|
||||||
#define __NR_utrap_install 164 /* SYSV ABI/v9 required */
|
|
||||||
#endif
|
|
||||||
#define __NR_quotactl 165 /* Common */
|
|
||||||
#define __NR_set_tid_address 166 /* Linux specific, exportfs under SunOS */
|
|
||||||
#define __NR_mount 167 /* Common */
|
|
||||||
#define __NR_ustat 168 /* Common */
|
|
||||||
#define __NR_setxattr 169 /* SunOS: semsys */
|
|
||||||
#define __NR_lsetxattr 170 /* SunOS: msgsys */
|
|
||||||
#define __NR_fsetxattr 171 /* SunOS: shmsys */
|
|
||||||
#define __NR_getxattr 172 /* SunOS: auditsys */
|
|
||||||
#define __NR_lgetxattr 173 /* SunOS: rfssys */
|
|
||||||
#define __NR_getdents 174 /* Common */
|
|
||||||
#define __NR_setsid 175 /* Common */
|
|
||||||
#define __NR_fchdir 176 /* Common */
|
|
||||||
#define __NR_fgetxattr 177 /* SunOS: fchroot */
|
|
||||||
#define __NR_listxattr 178 /* SunOS: vpixsys */
|
|
||||||
#define __NR_llistxattr 179 /* SunOS: aioread */
|
|
||||||
#define __NR_flistxattr 180 /* SunOS: aiowrite */
|
|
||||||
#define __NR_removexattr 181 /* SunOS: aiowait */
|
|
||||||
#define __NR_lremovexattr 182 /* SunOS: aiocancel */
|
|
||||||
#define __NR_sigpending 183 /* Common */
|
|
||||||
#define __NR_query_module 184 /* Linux Specific */
|
|
||||||
#define __NR_setpgid 185 /* Common */
|
|
||||||
#define __NR_fremovexattr 186 /* SunOS: pathconf */
|
|
||||||
#define __NR_tkill 187 /* SunOS: fpathconf */
|
|
||||||
#define __NR_exit_group 188 /* Linux specific, sysconf undef SunOS */
|
|
||||||
#define __NR_uname 189 /* Linux Specific */
|
|
||||||
#define __NR_init_module 190 /* Linux Specific */
|
|
||||||
#define __NR_personality 191 /* Linux Specific */
|
|
||||||
#define __NR_remap_file_pages 192 /* Linux Specific */
|
|
||||||
#define __NR_epoll_create 193 /* Linux Specific */
|
|
||||||
#define __NR_epoll_ctl 194 /* Linux Specific */
|
|
||||||
#define __NR_epoll_wait 195 /* Linux Specific */
|
|
||||||
#define __NR_ioprio_set 196 /* Linux Specific */
|
|
||||||
#define __NR_getppid 197 /* Linux Specific */
|
|
||||||
#define __NR_sigaction 198 /* Linux Specific */
|
|
||||||
#define __NR_sgetmask 199 /* Linux Specific */
|
|
||||||
#define __NR_ssetmask 200 /* Linux Specific */
|
|
||||||
#define __NR_sigsuspend 201 /* Linux Specific */
|
|
||||||
#define __NR_oldlstat 202 /* Linux Specific */
|
|
||||||
#define __NR_uselib 203 /* Linux Specific */
|
|
||||||
#define __NR_readdir 204 /* Linux Specific */
|
|
||||||
#define __NR_readahead 205 /* Linux Specific */
|
|
||||||
#define __NR_socketcall 206 /* Linux Specific */
|
|
||||||
#define __NR_syslog 207 /* Linux Specific */
|
|
||||||
#define __NR_lookup_dcookie 208 /* Linux Specific */
|
|
||||||
#define __NR_fadvise64 209 /* Linux Specific */
|
|
||||||
#define __NR_fadvise64_64 210 /* Linux Specific */
|
|
||||||
#define __NR_tgkill 211 /* Linux Specific */
|
|
||||||
#define __NR_waitpid 212 /* Linux Specific */
|
|
||||||
#define __NR_swapoff 213 /* Linux Specific */
|
|
||||||
#define __NR_sysinfo 214 /* Linux Specific */
|
|
||||||
#define __NR_ipc 215 /* Linux Specific */
|
|
||||||
#define __NR_sigreturn 216 /* Linux Specific */
|
|
||||||
#define __NR_clone 217 /* Linux Specific */
|
|
||||||
#define __NR_ioprio_get 218 /* Linux Specific */
|
|
||||||
#define __NR_adjtimex 219 /* Linux Specific */
|
|
||||||
#define __NR_sigprocmask 220 /* Linux Specific */
|
|
||||||
#define __NR_create_module 221 /* Linux Specific */
|
|
||||||
#define __NR_delete_module 222 /* Linux Specific */
|
|
||||||
#define __NR_get_kernel_syms 223 /* Linux Specific */
|
|
||||||
#define __NR_getpgid 224 /* Linux Specific */
|
|
||||||
#define __NR_bdflush 225 /* Linux Specific */
|
|
||||||
#define __NR_sysfs 226 /* Linux Specific */
|
|
||||||
#define __NR_afs_syscall 227 /* Linux Specific */
|
|
||||||
#define __NR_setfsuid 228 /* Linux Specific */
|
|
||||||
#define __NR_setfsgid 229 /* Linux Specific */
|
|
||||||
#define __NR__newselect 230 /* Linux Specific */
|
|
||||||
#ifdef __32bit_syscall_numbers__
|
|
||||||
#define __NR_time 231 /* Linux Specific */
|
|
||||||
#else
|
|
||||||
#endif
|
|
||||||
#define __NR_splice 232 /* Linux Specific */
|
|
||||||
#define __NR_stime 233 /* Linux Specific */
|
|
||||||
#define __NR_statfs64 234 /* Linux Specific */
|
|
||||||
#define __NR_fstatfs64 235 /* Linux Specific */
|
|
||||||
#define __NR__llseek 236 /* Linux Specific */
|
|
||||||
#define __NR_mlock 237
|
|
||||||
#define __NR_munlock 238
|
|
||||||
#define __NR_mlockall 239
|
|
||||||
#define __NR_munlockall 240
|
|
||||||
#define __NR_sched_setparam 241
|
|
||||||
#define __NR_sched_getparam 242
|
|
||||||
#define __NR_sched_setscheduler 243
|
|
||||||
#define __NR_sched_getscheduler 244
|
|
||||||
#define __NR_sched_yield 245
|
|
||||||
#define __NR_sched_get_priority_max 246
|
|
||||||
#define __NR_sched_get_priority_min 247
|
|
||||||
#define __NR_sched_rr_get_interval 248
|
|
||||||
#define __NR_nanosleep 249
|
|
||||||
#define __NR_mremap 250
|
|
||||||
#define __NR__sysctl 251
|
|
||||||
#define __NR_getsid 252
|
|
||||||
#define __NR_fdatasync 253
|
|
||||||
#define __NR_nfsservctl 254
|
|
||||||
#define __NR_sync_file_range 255
|
|
||||||
#define __NR_clock_settime 256
|
|
||||||
#define __NR_clock_gettime 257
|
|
||||||
#define __NR_clock_getres 258
|
|
||||||
#define __NR_clock_nanosleep 259
|
|
||||||
#define __NR_sched_getaffinity 260
|
|
||||||
#define __NR_sched_setaffinity 261
|
|
||||||
#define __NR_timer_settime 262
|
|
||||||
#define __NR_timer_gettime 263
|
|
||||||
#define __NR_timer_getoverrun 264
|
|
||||||
#define __NR_timer_delete 265
|
|
||||||
#define __NR_timer_create 266
|
|
||||||
/* #define __NR_vserver 267 Reserved for VSERVER */
|
|
||||||
#define __NR_io_setup 268
|
|
||||||
#define __NR_io_destroy 269
|
|
||||||
#define __NR_io_submit 270
|
|
||||||
#define __NR_io_cancel 271
|
|
||||||
#define __NR_io_getevents 272
|
|
||||||
#define __NR_mq_open 273
|
|
||||||
#define __NR_mq_unlink 274
|
|
||||||
#define __NR_mq_timedsend 275
|
|
||||||
#define __NR_mq_timedreceive 276
|
|
||||||
#define __NR_mq_notify 277
|
|
||||||
#define __NR_mq_getsetattr 278
|
|
||||||
#define __NR_waitid 279
|
|
||||||
#define __NR_tee 280
|
|
||||||
#define __NR_add_key 281
|
|
||||||
#define __NR_request_key 282
|
|
||||||
#define __NR_keyctl 283
|
|
||||||
#define __NR_openat 284
|
|
||||||
#define __NR_mkdirat 285
|
|
||||||
#define __NR_mknodat 286
|
|
||||||
#define __NR_fchownat 287
|
|
||||||
#define __NR_futimesat 288
|
|
||||||
#define __NR_fstatat64 289
|
|
||||||
#define __NR_unlinkat 290
|
|
||||||
#define __NR_renameat 291
|
|
||||||
#define __NR_linkat 292
|
|
||||||
#define __NR_symlinkat 293
|
|
||||||
#define __NR_readlinkat 294
|
|
||||||
#define __NR_fchmodat 295
|
|
||||||
#define __NR_faccessat 296
|
|
||||||
#define __NR_pselect6 297
|
|
||||||
#define __NR_ppoll 298
|
|
||||||
#define __NR_unshare 299
|
|
||||||
#define __NR_set_robust_list 300
|
|
||||||
#define __NR_get_robust_list 301
|
|
||||||
#define __NR_migrate_pages 302
|
|
||||||
#define __NR_mbind 303
|
|
||||||
#define __NR_get_mempolicy 304
|
|
||||||
#define __NR_set_mempolicy 305
|
|
||||||
#define __NR_kexec_load 306
|
|
||||||
#define __NR_move_pages 307
|
|
||||||
#define __NR_getcpu 308
|
|
||||||
#define __NR_epoll_pwait 309
|
|
||||||
#define __NR_utimensat 310
|
|
||||||
#define __NR_signalfd 311
|
|
||||||
#define __NR_timerfd_create 312
|
|
||||||
#define __NR_eventfd 313
|
|
||||||
#define __NR_fallocate 314
|
|
||||||
#define __NR_timerfd_settime 315
|
|
||||||
#define __NR_timerfd_gettime 316
|
|
||||||
#define __NR_signalfd4 317
|
|
||||||
#define __NR_eventfd2 318
|
|
||||||
#define __NR_epoll_create1 319
|
|
||||||
#define __NR_dup3 320
|
|
||||||
#define __NR_pipe2 321
|
|
||||||
#define __NR_inotify_init1 322
|
|
||||||
#define __NR_accept4 323
|
|
||||||
#define __NR_preadv 324
|
|
||||||
#define __NR_pwritev 325
|
|
||||||
#define __NR_rt_tgsigqueueinfo 326
|
|
||||||
#define __NR_perf_event_open 327
|
|
||||||
#define __NR_recvmmsg 328
|
|
||||||
#define __NR_fanotify_init 329
|
|
||||||
#define __NR_fanotify_mark 330
|
|
||||||
#define __NR_prlimit64 331
|
|
||||||
#define __NR_name_to_handle_at 332
|
|
||||||
#define __NR_open_by_handle_at 333
|
|
||||||
#define __NR_clock_adjtime 334
|
|
||||||
#define __NR_syncfs 335
|
|
||||||
#define __NR_sendmmsg 336
|
|
||||||
#define __NR_setns 337
|
|
||||||
#define __NR_process_vm_readv 338
|
|
||||||
#define __NR_process_vm_writev 339
|
|
||||||
#define __NR_kern_features 340
|
|
||||||
#define __NR_kcmp 341
|
|
||||||
#define __NR_finit_module 342
|
|
||||||
#define __NR_sched_setattr 343
|
|
||||||
#define __NR_sched_getattr 344
|
|
||||||
#define __NR_renameat2 345
|
|
||||||
#define __NR_seccomp 346
|
|
||||||
#define __NR_getrandom 347
|
|
||||||
#define __NR_memfd_create 348
|
|
||||||
#define __NR_bpf 349
|
|
||||||
#define __NR_execveat 350
|
|
||||||
#define __NR_membarrier 351
|
|
||||||
#define __NR_userfaultfd 352
|
|
||||||
#define __NR_bind 353
|
|
||||||
#define __NR_listen 354
|
|
||||||
#define __NR_setsockopt 355
|
|
||||||
#define __NR_mlock2 356
|
|
||||||
#define __NR_copy_file_range 357
|
|
||||||
#define __NR_preadv2 358
|
|
||||||
#define __NR_pwritev2 359
|
|
||||||
#define __NR_statx 360
|
|
||||||
#define __NR_io_pgetevents 361
|
|
||||||
|
|
||||||
#define NR_syscalls 362
|
|
||||||
|
|
||||||
/* Bitmask values returned from kern_features system call. */
|
/* Bitmask values returned from kern_features system call. */
|
||||||
#define KERN_FEATURE_MIXED_MODE_STACK 0x00000001
|
#define KERN_FEATURE_MIXED_MODE_STACK 0x00000001
|
||||||
|
|
||||||
#ifdef __32bit_syscall_numbers__
|
|
||||||
/* Sparc 32-bit only has the "setresuid32", "getresuid32" variants,
|
|
||||||
* it never had the plain ones and there is no value to adding those
|
|
||||||
* old versions into the syscall table.
|
|
||||||
*/
|
|
||||||
#define __IGNORE_setresuid
|
|
||||||
#define __IGNORE_getresuid
|
|
||||||
#define __IGNORE_setresgid
|
|
||||||
#define __IGNORE_getresgid
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Sparc doesn't have protection keys. */
|
|
||||||
#define __IGNORE_pkey_mprotect
|
|
||||||
#define __IGNORE_pkey_alloc
|
|
||||||
#define __IGNORE_pkey_free
|
|
||||||
|
|
||||||
#endif /* _UAPI_SPARC_UNISTD_H */
|
#endif /* _UAPI_SPARC_UNISTD_H */
|
||||||
|
|
|
@ -108,23 +108,22 @@ static int auxio_probe(struct platform_device *dev)
|
||||||
struct device_node *dp = dev->dev.of_node;
|
struct device_node *dp = dev->dev.of_node;
|
||||||
unsigned long size;
|
unsigned long size;
|
||||||
|
|
||||||
if (!strcmp(dp->parent->name, "ebus")) {
|
if (of_node_name_eq(dp->parent, "ebus")) {
|
||||||
auxio_devtype = AUXIO_TYPE_EBUS;
|
auxio_devtype = AUXIO_TYPE_EBUS;
|
||||||
size = sizeof(u32);
|
size = sizeof(u32);
|
||||||
} else if (!strcmp(dp->parent->name, "sbus")) {
|
} else if (of_node_name_eq(dp->parent, "sbus")) {
|
||||||
auxio_devtype = AUXIO_TYPE_SBUS;
|
auxio_devtype = AUXIO_TYPE_SBUS;
|
||||||
size = 1;
|
size = 1;
|
||||||
} else {
|
} else {
|
||||||
printk("auxio: Unknown parent bus type [%s]\n",
|
printk("auxio: Unknown parent bus type [%pOFn]\n",
|
||||||
dp->parent->name);
|
dp->parent);
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
}
|
}
|
||||||
auxio_register = of_ioremap(&dev->resource[0], 0, size, "auxio");
|
auxio_register = of_ioremap(&dev->resource[0], 0, size, "auxio");
|
||||||
if (!auxio_register)
|
if (!auxio_register)
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
|
||||||
printk(KERN_INFO "AUXIO: Found device at %s\n",
|
printk(KERN_INFO "AUXIO: Found device at %pOF\n", dp);
|
||||||
dp->full_name);
|
|
||||||
|
|
||||||
if (auxio_devtype == AUXIO_TYPE_EBUS)
|
if (auxio_devtype == AUXIO_TYPE_EBUS)
|
||||||
auxio_set_led(AUXIO_LED_ON);
|
auxio_set_led(AUXIO_LED_ON);
|
||||||
|
|
|
@ -168,7 +168,7 @@ static int fhc_probe(struct platform_device *op)
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!strcmp(op->dev.of_node->parent->name, "central"))
|
if (of_node_name_eq(op->dev.of_node->parent, "central"))
|
||||||
p->central = true;
|
p->central = true;
|
||||||
|
|
||||||
p->pregs = of_ioremap(&op->resource[0], 0,
|
p->pregs = of_ioremap(&op->resource[0], 0,
|
||||||
|
|
|
@ -464,8 +464,8 @@ static int jbusmc_probe(struct platform_device *op)
|
||||||
|
|
||||||
mc_list_add(&p->list);
|
mc_list_add(&p->list);
|
||||||
|
|
||||||
printk(KERN_INFO PFX "UltraSPARC-IIIi memory controller at %s\n",
|
printk(KERN_INFO PFX "UltraSPARC-IIIi memory controller at %pOF\n",
|
||||||
op->dev.of_node->full_name);
|
op->dev.of_node);
|
||||||
|
|
||||||
dev_set_drvdata(&op->dev, p);
|
dev_set_drvdata(&op->dev, p);
|
||||||
|
|
||||||
|
@ -747,8 +747,8 @@ static int chmc_probe(struct platform_device *op)
|
||||||
|
|
||||||
mc_list_add(&p->list);
|
mc_list_add(&p->list);
|
||||||
|
|
||||||
printk(KERN_INFO PFX "UltraSPARC-III memory controller at %s [%s]\n",
|
printk(KERN_INFO PFX "UltraSPARC-III memory controller at %pOF [%s]\n",
|
||||||
dp->full_name,
|
dp,
|
||||||
(p->layout_size ? "ACTIVE" : "INACTIVE"));
|
(p->layout_size ? "ACTIVE" : "INACTIVE"));
|
||||||
|
|
||||||
dev_set_drvdata(&op->dev, p);
|
dev_set_drvdata(&op->dev, p);
|
||||||
|
|
|
@ -302,7 +302,7 @@ static void *sbus_alloc_coherent(struct device *dev, size_t len,
|
||||||
if (sbus_map_dma_area(dev, dma_addrp, va, res->start, len_total) != 0)
|
if (sbus_map_dma_area(dev, dma_addrp, va, res->start, len_total) != 0)
|
||||||
goto err_noiommu;
|
goto err_noiommu;
|
||||||
|
|
||||||
res->name = op->dev.of_node->name;
|
res->name = op->dev.of_node->full_name;
|
||||||
|
|
||||||
return (void *)(unsigned long)res->start;
|
return (void *)(unsigned long)res->start;
|
||||||
|
|
||||||
|
|
|
@ -915,7 +915,7 @@ static void map_prom_timers(void)
|
||||||
dp = of_find_node_by_path("/");
|
dp = of_find_node_by_path("/");
|
||||||
dp = dp->child;
|
dp = dp->child;
|
||||||
while (dp) {
|
while (dp) {
|
||||||
if (!strcmp(dp->name, "counter-timer"))
|
if (of_node_name_eq(dp, "counter-timer"))
|
||||||
break;
|
break;
|
||||||
dp = dp->sibling;
|
dp = dp->sibling;
|
||||||
}
|
}
|
||||||
|
|
|
@ -484,20 +484,6 @@ static void leon_load_profile_irq(int cpu, unsigned int limit)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void __init leon_trans_init(struct device_node *dp)
|
|
||||||
{
|
|
||||||
if (strcmp(dp->type, "cpu") == 0 && strcmp(dp->name, "<NULL>") == 0) {
|
|
||||||
struct property *p;
|
|
||||||
p = of_find_property(dp, "mid", (void *)0);
|
|
||||||
if (p) {
|
|
||||||
int mid;
|
|
||||||
dp->name = prom_early_alloc(5 + 1);
|
|
||||||
memcpy(&mid, p->value, p->length);
|
|
||||||
sprintf((char *)dp->name, "cpu%.2d", mid);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef CONFIG_SMP
|
#ifdef CONFIG_SMP
|
||||||
void leon_clear_profile_irq(int cpu)
|
void leon_clear_profile_irq(int cpu)
|
||||||
{
|
{
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
|
|
||||||
static int of_bus_pci_match(struct device_node *np)
|
static int of_bus_pci_match(struct device_node *np)
|
||||||
{
|
{
|
||||||
if (!strcmp(np->type, "pci") || !strcmp(np->type, "pciex")) {
|
if (of_node_is_type(np, "pci") || of_node_is_type(np, "pciex")) {
|
||||||
/* Do not do PCI specific frobbing if the
|
/* Do not do PCI specific frobbing if the
|
||||||
* PCI bridge lacks a ranges property. We
|
* PCI bridge lacks a ranges property. We
|
||||||
* want to pass it through up to the next
|
* want to pass it through up to the next
|
||||||
|
@ -107,7 +107,7 @@ static unsigned long of_bus_sbus_get_flags(const u32 *addr, unsigned long flags)
|
||||||
|
|
||||||
static int of_bus_ambapp_match(struct device_node *np)
|
static int of_bus_ambapp_match(struct device_node *np)
|
||||||
{
|
{
|
||||||
return !strcmp(np->type, "ambapp");
|
return of_node_is_type(np, "ambapp");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void of_bus_ambapp_count_cells(struct device_node *child,
|
static void of_bus_ambapp_count_cells(struct device_node *child,
|
||||||
|
@ -232,10 +232,10 @@ static int __init use_1to1_mapping(struct device_node *pp)
|
||||||
* But, we should still pass the translation work up
|
* But, we should still pass the translation work up
|
||||||
* to the SBUS itself.
|
* to the SBUS itself.
|
||||||
*/
|
*/
|
||||||
if (!strcmp(pp->name, "dma") ||
|
if (of_node_name_eq(pp, "dma") ||
|
||||||
!strcmp(pp->name, "espdma") ||
|
of_node_name_eq(pp, "espdma") ||
|
||||||
!strcmp(pp->name, "ledma") ||
|
of_node_name_eq(pp, "ledma") ||
|
||||||
!strcmp(pp->name, "lebuffer"))
|
of_node_name_eq(pp, "lebuffer"))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -324,8 +324,8 @@ static void __init build_device_resources(struct platform_device *op,
|
||||||
memset(r, 0, sizeof(*r));
|
memset(r, 0, sizeof(*r));
|
||||||
|
|
||||||
if (of_resource_verbose)
|
if (of_resource_verbose)
|
||||||
printk("%s reg[%d] -> %llx\n",
|
printk("%pOF reg[%d] -> %llx\n",
|
||||||
op->dev.of_node->full_name, index,
|
op->dev.of_node, index,
|
||||||
result);
|
result);
|
||||||
|
|
||||||
if (result != OF_BAD_ADDR) {
|
if (result != OF_BAD_ADDR) {
|
||||||
|
@ -333,7 +333,7 @@ static void __init build_device_resources(struct platform_device *op,
|
||||||
r->end = result + size - 1;
|
r->end = result + size - 1;
|
||||||
r->flags = flags | ((result >> 32ULL) & 0xffUL);
|
r->flags = flags | ((result >> 32ULL) & 0xffUL);
|
||||||
}
|
}
|
||||||
r->name = op->dev.of_node->name;
|
r->name = op->dev.of_node->full_name;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -386,8 +386,7 @@ static struct platform_device * __init scan_one_device(struct device_node *dp,
|
||||||
op->dev.dma_mask = &op->dev.coherent_dma_mask;
|
op->dev.dma_mask = &op->dev.coherent_dma_mask;
|
||||||
|
|
||||||
if (of_device_register(op)) {
|
if (of_device_register(op)) {
|
||||||
printk("%s: Could not register of device.\n",
|
printk("%pOF: Could not register of device.\n", dp);
|
||||||
dp->full_name);
|
|
||||||
kfree(op);
|
kfree(op);
|
||||||
op = NULL;
|
op = NULL;
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,7 +46,7 @@ EXPORT_SYMBOL(of_iounmap);
|
||||||
|
|
||||||
static int of_bus_pci_match(struct device_node *np)
|
static int of_bus_pci_match(struct device_node *np)
|
||||||
{
|
{
|
||||||
if (!strcmp(np->name, "pci")) {
|
if (of_node_name_eq(np, "pci")) {
|
||||||
const char *model = of_get_property(np, "model", NULL);
|
const char *model = of_get_property(np, "model", NULL);
|
||||||
|
|
||||||
if (model && !strcmp(model, "SUNW,simba"))
|
if (model && !strcmp(model, "SUNW,simba"))
|
||||||
|
@ -77,7 +77,7 @@ static int of_bus_simba_match(struct device_node *np)
|
||||||
/* Treat PCI busses lacking ranges property just like
|
/* Treat PCI busses lacking ranges property just like
|
||||||
* simba.
|
* simba.
|
||||||
*/
|
*/
|
||||||
if (!strcmp(np->name, "pci")) {
|
if (of_node_name_eq(np, "pci")) {
|
||||||
if (!of_find_property(np, "ranges", NULL))
|
if (!of_find_property(np, "ranges", NULL))
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -170,8 +170,8 @@ static unsigned long of_bus_pci_get_flags(const u32 *addr, unsigned long flags)
|
||||||
*/
|
*/
|
||||||
static int of_bus_fhc_match(struct device_node *np)
|
static int of_bus_fhc_match(struct device_node *np)
|
||||||
{
|
{
|
||||||
return !strcmp(np->name, "fhc") ||
|
return of_node_name_eq(np, "fhc") ||
|
||||||
!strcmp(np->name, "central");
|
of_node_name_eq(np, "central");
|
||||||
}
|
}
|
||||||
|
|
||||||
#define of_bus_fhc_count_cells of_bus_sbus_count_cells
|
#define of_bus_fhc_count_cells of_bus_sbus_count_cells
|
||||||
|
@ -295,17 +295,17 @@ static int __init use_1to1_mapping(struct device_node *pp)
|
||||||
* But, we should still pass the translation work up
|
* But, we should still pass the translation work up
|
||||||
* to the SBUS itself.
|
* to the SBUS itself.
|
||||||
*/
|
*/
|
||||||
if (!strcmp(pp->name, "dma") ||
|
if (of_node_name_eq(pp, "dma") ||
|
||||||
!strcmp(pp->name, "espdma") ||
|
of_node_name_eq(pp, "espdma") ||
|
||||||
!strcmp(pp->name, "ledma") ||
|
of_node_name_eq(pp, "ledma") ||
|
||||||
!strcmp(pp->name, "lebuffer"))
|
of_node_name_eq(pp, "lebuffer"))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
/* Similarly for all PCI bridges, if we get this far
|
/* Similarly for all PCI bridges, if we get this far
|
||||||
* it lacks a ranges property, and this will include
|
* it lacks a ranges property, and this will include
|
||||||
* cases like Simba.
|
* cases like Simba.
|
||||||
*/
|
*/
|
||||||
if (!strcmp(pp->name, "pci"))
|
if (of_node_name_eq(pp, "pci"))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -341,9 +341,9 @@ static void __init build_device_resources(struct platform_device *op,
|
||||||
|
|
||||||
/* Prevent overrunning the op->resources[] array. */
|
/* Prevent overrunning the op->resources[] array. */
|
||||||
if (num_reg > PROMREG_MAX) {
|
if (num_reg > PROMREG_MAX) {
|
||||||
printk(KERN_WARNING "%s: Too many regs (%d), "
|
printk(KERN_WARNING "%pOF: Too many regs (%d), "
|
||||||
"limiting to %d.\n",
|
"limiting to %d.\n",
|
||||||
op->dev.of_node->full_name, num_reg, PROMREG_MAX);
|
op->dev.of_node, num_reg, PROMREG_MAX);
|
||||||
num_reg = PROMREG_MAX;
|
num_reg = PROMREG_MAX;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -401,8 +401,8 @@ static void __init build_device_resources(struct platform_device *op,
|
||||||
memset(r, 0, sizeof(*r));
|
memset(r, 0, sizeof(*r));
|
||||||
|
|
||||||
if (of_resource_verbose)
|
if (of_resource_verbose)
|
||||||
printk("%s reg[%d] -> %llx\n",
|
printk("%pOF reg[%d] -> %llx\n",
|
||||||
op->dev.of_node->full_name, index,
|
op->dev.of_node, index,
|
||||||
result);
|
result);
|
||||||
|
|
||||||
if (result != OF_BAD_ADDR) {
|
if (result != OF_BAD_ADDR) {
|
||||||
|
@ -413,7 +413,7 @@ static void __init build_device_resources(struct platform_device *op,
|
||||||
r->end = result + size - 1;
|
r->end = result + size - 1;
|
||||||
r->flags = flags;
|
r->flags = flags;
|
||||||
}
|
}
|
||||||
r->name = op->dev.of_node->name;
|
r->name = op->dev.of_node->full_name;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -548,8 +548,8 @@ static unsigned int __init build_one_device_irq(struct platform_device *op,
|
||||||
dp->irq_trans->data);
|
dp->irq_trans->data);
|
||||||
|
|
||||||
if (of_irq_verbose)
|
if (of_irq_verbose)
|
||||||
printk("%s: direct translate %x --> %x\n",
|
printk("%pOF: direct translate %x --> %x\n",
|
||||||
dp->full_name, orig_irq, irq);
|
dp, orig_irq, irq);
|
||||||
|
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
@ -579,10 +579,9 @@ static unsigned int __init build_one_device_irq(struct platform_device *op,
|
||||||
&irq);
|
&irq);
|
||||||
|
|
||||||
if (of_irq_verbose)
|
if (of_irq_verbose)
|
||||||
printk("%s: Apply [%s:%x] imap --> [%s:%x]\n",
|
printk("%pOF: Apply [%pOF:%x] imap --> [%pOF:%x]\n",
|
||||||
op->dev.of_node->full_name,
|
op->dev.of_node,
|
||||||
pp->full_name, this_orig_irq,
|
pp, this_orig_irq, iret, irq);
|
||||||
of_node_full_name(iret), irq);
|
|
||||||
|
|
||||||
if (!iret)
|
if (!iret)
|
||||||
break;
|
break;
|
||||||
|
@ -592,15 +591,15 @@ static unsigned int __init build_one_device_irq(struct platform_device *op,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (!strcmp(pp->name, "pci")) {
|
if (of_node_name_eq(pp, "pci")) {
|
||||||
unsigned int this_orig_irq = irq;
|
unsigned int this_orig_irq = irq;
|
||||||
|
|
||||||
irq = pci_irq_swizzle(dp, pp, irq);
|
irq = pci_irq_swizzle(dp, pp, irq);
|
||||||
if (of_irq_verbose)
|
if (of_irq_verbose)
|
||||||
printk("%s: PCI swizzle [%s] "
|
printk("%pOF: PCI swizzle [%pOF] "
|
||||||
"%x --> %x\n",
|
"%x --> %x\n",
|
||||||
op->dev.of_node->full_name,
|
op->dev.of_node,
|
||||||
pp->full_name, this_orig_irq,
|
pp, this_orig_irq,
|
||||||
irq);
|
irq);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -619,8 +618,8 @@ static unsigned int __init build_one_device_irq(struct platform_device *op,
|
||||||
irq = ip->irq_trans->irq_build(op->dev.of_node, irq,
|
irq = ip->irq_trans->irq_build(op->dev.of_node, irq,
|
||||||
ip->irq_trans->data);
|
ip->irq_trans->data);
|
||||||
if (of_irq_verbose)
|
if (of_irq_verbose)
|
||||||
printk("%s: Apply IRQ trans [%s] %x --> %x\n",
|
printk("%pOF: Apply IRQ trans [%pOF] %x --> %x\n",
|
||||||
op->dev.of_node->full_name, ip->full_name, orig_irq, irq);
|
op->dev.of_node, ip, orig_irq, irq);
|
||||||
|
|
||||||
out:
|
out:
|
||||||
nid = of_node_to_nid(dp);
|
nid = of_node_to_nid(dp);
|
||||||
|
@ -656,9 +655,9 @@ static struct platform_device * __init scan_one_device(struct device_node *dp,
|
||||||
|
|
||||||
/* Prevent overrunning the op->irqs[] array. */
|
/* Prevent overrunning the op->irqs[] array. */
|
||||||
if (op->archdata.num_irqs > PROMINTR_MAX) {
|
if (op->archdata.num_irqs > PROMINTR_MAX) {
|
||||||
printk(KERN_WARNING "%s: Too many irqs (%d), "
|
printk(KERN_WARNING "%pOF: Too many irqs (%d), "
|
||||||
"limiting to %d.\n",
|
"limiting to %d.\n",
|
||||||
dp->full_name, op->archdata.num_irqs, PROMINTR_MAX);
|
dp, op->archdata.num_irqs, PROMINTR_MAX);
|
||||||
op->archdata.num_irqs = PROMINTR_MAX;
|
op->archdata.num_irqs = PROMINTR_MAX;
|
||||||
}
|
}
|
||||||
memcpy(op->archdata.irqs, irq, op->archdata.num_irqs * 4);
|
memcpy(op->archdata.irqs, irq, op->archdata.num_irqs * 4);
|
||||||
|
@ -680,8 +679,7 @@ static struct platform_device * __init scan_one_device(struct device_node *dp,
|
||||||
op->dev.dma_mask = &op->dev.coherent_dma_mask;
|
op->dev.dma_mask = &op->dev.coherent_dma_mask;
|
||||||
|
|
||||||
if (of_device_register(op)) {
|
if (of_device_register(op)) {
|
||||||
printk("%s: Could not register of device.\n",
|
printk("%pOF: Could not register of device.\n", dp);
|
||||||
dp->full_name);
|
|
||||||
kfree(op);
|
kfree(op);
|
||||||
op = NULL;
|
op = NULL;
|
||||||
}
|
}
|
||||||
|
|
|
@ -151,8 +151,8 @@ int of_bus_sbus_match(struct device_node *np)
|
||||||
struct device_node *dp = np;
|
struct device_node *dp = np;
|
||||||
|
|
||||||
while (dp) {
|
while (dp) {
|
||||||
if (!strcmp(dp->name, "sbus") ||
|
if (of_node_name_eq(dp, "sbus") ||
|
||||||
!strcmp(dp->name, "sbi"))
|
of_node_name_eq(dp, "sbi"))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
/* Have a look at use_1to1_mapping(). We're trying
|
/* Have a look at use_1to1_mapping(). We're trying
|
||||||
|
|
|
@ -267,7 +267,6 @@ static struct pci_dev *of_create_pci_dev(struct pci_pbm_info *pbm,
|
||||||
struct dev_archdata *sd;
|
struct dev_archdata *sd;
|
||||||
struct platform_device *op;
|
struct platform_device *op;
|
||||||
struct pci_dev *dev;
|
struct pci_dev *dev;
|
||||||
const char *type;
|
|
||||||
u32 class;
|
u32 class;
|
||||||
|
|
||||||
dev = pci_alloc_dev(bus);
|
dev = pci_alloc_dev(bus);
|
||||||
|
@ -283,16 +282,12 @@ static struct pci_dev *of_create_pci_dev(struct pci_pbm_info *pbm,
|
||||||
sd->stc = &pbm->stc;
|
sd->stc = &pbm->stc;
|
||||||
sd->numa_node = pbm->numa_node;
|
sd->numa_node = pbm->numa_node;
|
||||||
|
|
||||||
if (!strcmp(node->name, "ebus"))
|
if (of_node_name_eq(node, "ebus"))
|
||||||
of_propagate_archdata(op);
|
of_propagate_archdata(op);
|
||||||
|
|
||||||
type = of_get_property(node, "device_type", NULL);
|
|
||||||
if (type == NULL)
|
|
||||||
type = "";
|
|
||||||
|
|
||||||
if (ofpci_verbose)
|
if (ofpci_verbose)
|
||||||
pci_info(bus," create device, devfn: %x, type: %s\n",
|
pci_info(bus," create device, devfn: %x, type: %s\n",
|
||||||
devfn, type);
|
devfn, of_node_get_device_type(node));
|
||||||
|
|
||||||
dev->sysdata = node;
|
dev->sysdata = node;
|
||||||
dev->dev.parent = bus->bridge;
|
dev->dev.parent = bus->bridge;
|
||||||
|
@ -336,11 +331,11 @@ static struct pci_dev *of_create_pci_dev(struct pci_pbm_info *pbm,
|
||||||
dev->error_state = pci_channel_io_normal;
|
dev->error_state = pci_channel_io_normal;
|
||||||
dev->dma_mask = 0xffffffff;
|
dev->dma_mask = 0xffffffff;
|
||||||
|
|
||||||
if (!strcmp(node->name, "pci")) {
|
if (of_node_name_eq(node, "pci")) {
|
||||||
/* a PCI-PCI bridge */
|
/* a PCI-PCI bridge */
|
||||||
dev->hdr_type = PCI_HEADER_TYPE_BRIDGE;
|
dev->hdr_type = PCI_HEADER_TYPE_BRIDGE;
|
||||||
dev->rom_base_reg = PCI_ROM_ADDRESS1;
|
dev->rom_base_reg = PCI_ROM_ADDRESS1;
|
||||||
} else if (!strcmp(type, "cardbus")) {
|
} else if (of_node_is_type(node, "cardbus")) {
|
||||||
dev->hdr_type = PCI_HEADER_TYPE_CARDBUS;
|
dev->hdr_type = PCI_HEADER_TYPE_CARDBUS;
|
||||||
} else {
|
} else {
|
||||||
dev->hdr_type = PCI_HEADER_TYPE_NORMAL;
|
dev->hdr_type = PCI_HEADER_TYPE_NORMAL;
|
||||||
|
@ -431,13 +426,13 @@ static void of_scan_pci_bridge(struct pci_pbm_info *pbm,
|
||||||
u64 size;
|
u64 size;
|
||||||
|
|
||||||
if (ofpci_verbose)
|
if (ofpci_verbose)
|
||||||
pci_info(dev, "of_scan_pci_bridge(%s)\n", node->full_name);
|
pci_info(dev, "of_scan_pci_bridge(%pOF)\n", node);
|
||||||
|
|
||||||
/* parse bus-range property */
|
/* parse bus-range property */
|
||||||
busrange = of_get_property(node, "bus-range", &len);
|
busrange = of_get_property(node, "bus-range", &len);
|
||||||
if (busrange == NULL || len != 8) {
|
if (busrange == NULL || len != 8) {
|
||||||
pci_info(dev, "Can't get bus-range for PCI-PCI bridge %s\n",
|
pci_info(dev, "Can't get bus-range for PCI-PCI bridge %pOF\n",
|
||||||
node->full_name);
|
node);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -455,8 +450,8 @@ static void of_scan_pci_bridge(struct pci_pbm_info *pbm,
|
||||||
|
|
||||||
bus = pci_add_new_bus(dev->bus, dev, busrange[0]);
|
bus = pci_add_new_bus(dev->bus, dev, busrange[0]);
|
||||||
if (!bus) {
|
if (!bus) {
|
||||||
pci_err(dev, "Failed to create pci bus for %s\n",
|
pci_err(dev, "Failed to create pci bus for %pOF\n",
|
||||||
node->full_name);
|
node);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -512,13 +507,13 @@ static void of_scan_pci_bridge(struct pci_pbm_info *pbm,
|
||||||
res = bus->resource[0];
|
res = bus->resource[0];
|
||||||
if (res->flags) {
|
if (res->flags) {
|
||||||
pci_err(dev, "ignoring extra I/O range"
|
pci_err(dev, "ignoring extra I/O range"
|
||||||
" for bridge %s\n", node->full_name);
|
" for bridge %pOF\n", node);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (i >= PCI_NUM_RESOURCES - PCI_BRIDGE_RESOURCES) {
|
if (i >= PCI_NUM_RESOURCES - PCI_BRIDGE_RESOURCES) {
|
||||||
pci_err(dev, "too many memory ranges"
|
pci_err(dev, "too many memory ranges"
|
||||||
" for bridge %s\n", node->full_name);
|
" for bridge %pOF\n", node);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
res = bus->resource[i];
|
res = bus->resource[i];
|
||||||
|
@ -554,14 +549,14 @@ static void pci_of_scan_bus(struct pci_pbm_info *pbm,
|
||||||
struct pci_dev *dev;
|
struct pci_dev *dev;
|
||||||
|
|
||||||
if (ofpci_verbose)
|
if (ofpci_verbose)
|
||||||
pci_info(bus, "scan_bus[%s] bus no %d\n",
|
pci_info(bus, "scan_bus[%pOF] bus no %d\n",
|
||||||
node->full_name, bus->number);
|
node, bus->number);
|
||||||
|
|
||||||
child = NULL;
|
child = NULL;
|
||||||
prev_devfn = -1;
|
prev_devfn = -1;
|
||||||
while ((child = of_get_next_child(node, child)) != NULL) {
|
while ((child = of_get_next_child(node, child)) != NULL) {
|
||||||
if (ofpci_verbose)
|
if (ofpci_verbose)
|
||||||
pci_info(bus, " * %s\n", child->full_name);
|
pci_info(bus, " * %pOF\n", child);
|
||||||
reg = of_get_property(child, "reg", ®len);
|
reg = of_get_property(child, "reg", ®len);
|
||||||
if (reg == NULL || reglen < 20)
|
if (reg == NULL || reglen < 20)
|
||||||
continue;
|
continue;
|
||||||
|
@ -598,7 +593,7 @@ show_pciobppath_attr(struct device * dev, struct device_attribute * attr, char *
|
||||||
pdev = to_pci_dev(dev);
|
pdev = to_pci_dev(dev);
|
||||||
dp = pdev->dev.of_node;
|
dp = pdev->dev.of_node;
|
||||||
|
|
||||||
return snprintf (buf, PAGE_SIZE, "%s\n", dp->full_name);
|
return snprintf (buf, PAGE_SIZE, "%pOF\n", dp);
|
||||||
}
|
}
|
||||||
|
|
||||||
static DEVICE_ATTR(obppath, S_IRUSR | S_IRGRP | S_IROTH, show_pciobppath_attr, NULL);
|
static DEVICE_ATTR(obppath, S_IRUSR | S_IRGRP | S_IROTH, show_pciobppath_attr, NULL);
|
||||||
|
@ -698,7 +693,7 @@ struct pci_bus *pci_scan_one_pbm(struct pci_pbm_info *pbm,
|
||||||
struct device_node *node = pbm->op->dev.of_node;
|
struct device_node *node = pbm->op->dev.of_node;
|
||||||
struct pci_bus *bus;
|
struct pci_bus *bus;
|
||||||
|
|
||||||
printk("PCI: Scanning PBM %s\n", node->full_name);
|
printk("PCI: Scanning PBM %pOF\n", node);
|
||||||
|
|
||||||
pci_add_resource_offset(&resources, &pbm->io_space,
|
pci_add_resource_offset(&resources, &pbm->io_space,
|
||||||
pbm->io_offset);
|
pbm->io_offset);
|
||||||
|
@ -714,8 +709,7 @@ struct pci_bus *pci_scan_one_pbm(struct pci_pbm_info *pbm,
|
||||||
bus = pci_create_root_bus(parent, pbm->pci_first_busno, pbm->pci_ops,
|
bus = pci_create_root_bus(parent, pbm->pci_first_busno, pbm->pci_ops,
|
||||||
pbm, &resources);
|
pbm, &resources);
|
||||||
if (!bus) {
|
if (!bus) {
|
||||||
printk(KERN_ERR "Failed to create bus for %s\n",
|
printk(KERN_ERR "Failed to create bus for %pOF\n", node);
|
||||||
node->full_name);
|
|
||||||
pci_free_resource_list(&resources);
|
pci_free_resource_list(&resources);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -1111,8 +1105,8 @@ static void pci_bus_slot_names(struct device_node *node, struct pci_bus *bus)
|
||||||
sp = prop->names;
|
sp = prop->names;
|
||||||
|
|
||||||
if (ofpci_verbose)
|
if (ofpci_verbose)
|
||||||
pci_info(bus, "Making slots for [%s] mask[0x%02x]\n",
|
pci_info(bus, "Making slots for [%pOF] mask[0x%02x]\n",
|
||||||
node->full_name, mask);
|
node, mask);
|
||||||
|
|
||||||
i = 0;
|
i = 0;
|
||||||
while (mask) {
|
while (mask) {
|
||||||
|
|
|
@ -475,7 +475,7 @@ static int sabre_probe(struct platform_device *op)
|
||||||
* different ways, inconsistently.
|
* different ways, inconsistently.
|
||||||
*/
|
*/
|
||||||
for_each_node_by_type(cpu_dp, "cpu") {
|
for_each_node_by_type(cpu_dp, "cpu") {
|
||||||
if (!strcmp(cpu_dp->name, "SUNW,UltraSPARC-IIe"))
|
if (of_node_name_eq(cpu_dp, "SUNW,UltraSPARC-IIe"))
|
||||||
hummingbird_p = 1;
|
hummingbird_p = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,8 +41,8 @@ static int power_probe(struct platform_device *op)
|
||||||
|
|
||||||
power_reg = of_ioremap(res, 0, 0x4, "power");
|
power_reg = of_ioremap(res, 0, 0x4, "power");
|
||||||
|
|
||||||
printk(KERN_INFO "%s: Control reg at %llx\n",
|
printk(KERN_INFO "%pOFn: Control reg at %llx\n",
|
||||||
op->dev.of_node->name, res->start);
|
op->dev.of_node, res->start);
|
||||||
|
|
||||||
if (has_button_interrupt(irq, op->dev.of_node)) {
|
if (has_button_interrupt(irq, op->dev.of_node)) {
|
||||||
if (request_irq(irq,
|
if (request_irq(irq,
|
||||||
|
|
|
@ -110,7 +110,7 @@ void machine_restart(char * cmd)
|
||||||
void machine_power_off(void)
|
void machine_power_off(void)
|
||||||
{
|
{
|
||||||
if (auxio_power_register &&
|
if (auxio_power_register &&
|
||||||
(strcmp(of_console_device->type, "serial") || scons_pwroff)) {
|
(!of_node_is_type(of_console_device, "serial") || scons_pwroff)) {
|
||||||
u8 power_register = sbus_readb(auxio_power_register);
|
u8 power_register = sbus_readb(auxio_power_register);
|
||||||
power_register |= AUXIO_POWER_OFF;
|
power_register |= AUXIO_POWER_OFF;
|
||||||
sbus_writeb(power_register, auxio_power_register);
|
sbus_writeb(power_register, auxio_power_register);
|
||||||
|
|
|
@ -60,6 +60,7 @@ void * __init prom_early_alloc(unsigned long size)
|
||||||
*/
|
*/
|
||||||
static void __init sparc32_path_component(struct device_node *dp, char *tmp_buf)
|
static void __init sparc32_path_component(struct device_node *dp, char *tmp_buf)
|
||||||
{
|
{
|
||||||
|
const char *name = of_get_property(dp, "name", NULL);
|
||||||
struct linux_prom_registers *regs;
|
struct linux_prom_registers *regs;
|
||||||
struct property *rprop;
|
struct property *rprop;
|
||||||
|
|
||||||
|
@ -69,13 +70,14 @@ static void __init sparc32_path_component(struct device_node *dp, char *tmp_buf)
|
||||||
|
|
||||||
regs = rprop->value;
|
regs = rprop->value;
|
||||||
sprintf(tmp_buf, "%s@%x,%x",
|
sprintf(tmp_buf, "%s@%x,%x",
|
||||||
dp->name,
|
name,
|
||||||
regs->which_io, regs->phys_addr);
|
regs->which_io, regs->phys_addr);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* "name@slot,offset" */
|
/* "name@slot,offset" */
|
||||||
static void __init sbus_path_component(struct device_node *dp, char *tmp_buf)
|
static void __init sbus_path_component(struct device_node *dp, char *tmp_buf)
|
||||||
{
|
{
|
||||||
|
const char *name = of_get_property(dp, "name", NULL);
|
||||||
struct linux_prom_registers *regs;
|
struct linux_prom_registers *regs;
|
||||||
struct property *prop;
|
struct property *prop;
|
||||||
|
|
||||||
|
@ -85,7 +87,7 @@ static void __init sbus_path_component(struct device_node *dp, char *tmp_buf)
|
||||||
|
|
||||||
regs = prop->value;
|
regs = prop->value;
|
||||||
sprintf(tmp_buf, "%s@%x,%x",
|
sprintf(tmp_buf, "%s@%x,%x",
|
||||||
dp->name,
|
name,
|
||||||
regs->which_io,
|
regs->which_io,
|
||||||
regs->phys_addr);
|
regs->phys_addr);
|
||||||
}
|
}
|
||||||
|
@ -93,6 +95,7 @@ static void __init sbus_path_component(struct device_node *dp, char *tmp_buf)
|
||||||
/* "name@devnum[,func]" */
|
/* "name@devnum[,func]" */
|
||||||
static void __init pci_path_component(struct device_node *dp, char *tmp_buf)
|
static void __init pci_path_component(struct device_node *dp, char *tmp_buf)
|
||||||
{
|
{
|
||||||
|
const char *name = of_get_property(dp, "name", NULL);
|
||||||
struct linux_prom_pci_registers *regs;
|
struct linux_prom_pci_registers *regs;
|
||||||
struct property *prop;
|
struct property *prop;
|
||||||
unsigned int devfn;
|
unsigned int devfn;
|
||||||
|
@ -105,12 +108,12 @@ static void __init pci_path_component(struct device_node *dp, char *tmp_buf)
|
||||||
devfn = (regs->phys_hi >> 8) & 0xff;
|
devfn = (regs->phys_hi >> 8) & 0xff;
|
||||||
if (devfn & 0x07) {
|
if (devfn & 0x07) {
|
||||||
sprintf(tmp_buf, "%s@%x,%x",
|
sprintf(tmp_buf, "%s@%x,%x",
|
||||||
dp->name,
|
name,
|
||||||
devfn >> 3,
|
devfn >> 3,
|
||||||
devfn & 0x07);
|
devfn & 0x07);
|
||||||
} else {
|
} else {
|
||||||
sprintf(tmp_buf, "%s@%x",
|
sprintf(tmp_buf, "%s@%x",
|
||||||
dp->name,
|
name,
|
||||||
devfn >> 3);
|
devfn >> 3);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -118,6 +121,7 @@ static void __init pci_path_component(struct device_node *dp, char *tmp_buf)
|
||||||
/* "name@addrhi,addrlo" */
|
/* "name@addrhi,addrlo" */
|
||||||
static void __init ebus_path_component(struct device_node *dp, char *tmp_buf)
|
static void __init ebus_path_component(struct device_node *dp, char *tmp_buf)
|
||||||
{
|
{
|
||||||
|
const char *name = of_get_property(dp, "name", NULL);
|
||||||
struct linux_prom_registers *regs;
|
struct linux_prom_registers *regs;
|
||||||
struct property *prop;
|
struct property *prop;
|
||||||
|
|
||||||
|
@ -128,13 +132,14 @@ static void __init ebus_path_component(struct device_node *dp, char *tmp_buf)
|
||||||
regs = prop->value;
|
regs = prop->value;
|
||||||
|
|
||||||
sprintf(tmp_buf, "%s@%x,%x",
|
sprintf(tmp_buf, "%s@%x,%x",
|
||||||
dp->name,
|
name,
|
||||||
regs->which_io, regs->phys_addr);
|
regs->which_io, regs->phys_addr);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* "name:vendor:device@irq,addrlo" */
|
/* "name:vendor:device@irq,addrlo" */
|
||||||
static void __init ambapp_path_component(struct device_node *dp, char *tmp_buf)
|
static void __init ambapp_path_component(struct device_node *dp, char *tmp_buf)
|
||||||
{
|
{
|
||||||
|
const char *name = of_get_property(dp, "name", NULL);
|
||||||
struct amba_prom_registers *regs;
|
struct amba_prom_registers *regs;
|
||||||
unsigned int *intr, *device, *vendor, reg0;
|
unsigned int *intr, *device, *vendor, reg0;
|
||||||
struct property *prop;
|
struct property *prop;
|
||||||
|
@ -168,7 +173,7 @@ static void __init ambapp_path_component(struct device_node *dp, char *tmp_buf)
|
||||||
device = prop->value;
|
device = prop->value;
|
||||||
|
|
||||||
sprintf(tmp_buf, "%s:%d:%d@%x,%x",
|
sprintf(tmp_buf, "%s:%d:%d@%x,%x",
|
||||||
dp->name, *vendor, *device,
|
name, *vendor, *device,
|
||||||
*intr, reg0);
|
*intr, reg0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -177,14 +182,14 @@ static void __init __build_path_component(struct device_node *dp, char *tmp_buf)
|
||||||
struct device_node *parent = dp->parent;
|
struct device_node *parent = dp->parent;
|
||||||
|
|
||||||
if (parent != NULL) {
|
if (parent != NULL) {
|
||||||
if (!strcmp(parent->type, "pci") ||
|
if (of_node_is_type(parent, "pci") ||
|
||||||
!strcmp(parent->type, "pciex"))
|
of_node_is_type(parent, "pciex"))
|
||||||
return pci_path_component(dp, tmp_buf);
|
return pci_path_component(dp, tmp_buf);
|
||||||
if (!strcmp(parent->type, "sbus"))
|
if (of_node_is_type(parent, "sbus"))
|
||||||
return sbus_path_component(dp, tmp_buf);
|
return sbus_path_component(dp, tmp_buf);
|
||||||
if (!strcmp(parent->type, "ebus"))
|
if (of_node_is_type(parent, "ebus"))
|
||||||
return ebus_path_component(dp, tmp_buf);
|
return ebus_path_component(dp, tmp_buf);
|
||||||
if (!strcmp(parent->type, "ambapp"))
|
if (of_node_is_type(parent, "ambapp"))
|
||||||
return ambapp_path_component(dp, tmp_buf);
|
return ambapp_path_component(dp, tmp_buf);
|
||||||
|
|
||||||
/* "isa" is handled with platform naming */
|
/* "isa" is handled with platform naming */
|
||||||
|
@ -196,12 +201,13 @@ static void __init __build_path_component(struct device_node *dp, char *tmp_buf)
|
||||||
|
|
||||||
char * __init build_path_component(struct device_node *dp)
|
char * __init build_path_component(struct device_node *dp)
|
||||||
{
|
{
|
||||||
|
const char *name = of_get_property(dp, "name", NULL);
|
||||||
char tmp_buf[64], *n;
|
char tmp_buf[64], *n;
|
||||||
|
|
||||||
tmp_buf[0] = '\0';
|
tmp_buf[0] = '\0';
|
||||||
__build_path_component(dp, tmp_buf);
|
__build_path_component(dp, tmp_buf);
|
||||||
if (tmp_buf[0] == '\0')
|
if (tmp_buf[0] == '\0')
|
||||||
strcpy(tmp_buf, dp->name);
|
strcpy(tmp_buf, name);
|
||||||
|
|
||||||
n = prom_early_alloc(strlen(tmp_buf) + 1);
|
n = prom_early_alloc(strlen(tmp_buf) + 1);
|
||||||
strcpy(n, tmp_buf);
|
strcpy(n, tmp_buf);
|
||||||
|
@ -255,7 +261,7 @@ void __init of_console_init(void)
|
||||||
}
|
}
|
||||||
of_console_device = dp;
|
of_console_device = dp;
|
||||||
|
|
||||||
strcpy(of_console_path, dp->full_name);
|
sprintf(of_console_path, "%pOF", dp);
|
||||||
if (!strcmp(type, "serial")) {
|
if (!strcmp(type, "serial")) {
|
||||||
strcat(of_console_path,
|
strcat(of_console_path,
|
||||||
(skip ? ":b" : ":a"));
|
(skip ? ":b" : ":a"));
|
||||||
|
@ -278,15 +284,9 @@ void __init of_console_init(void)
|
||||||
prom_halt();
|
prom_halt();
|
||||||
}
|
}
|
||||||
dp = of_find_node_by_phandle(node);
|
dp = of_find_node_by_phandle(node);
|
||||||
type = of_get_property(dp, "device_type", NULL);
|
|
||||||
|
|
||||||
if (!type) {
|
if (!of_node_is_type(dp, "display") &&
|
||||||
prom_printf("Console stdout lacks "
|
!of_node_is_type(dp, "serial")) {
|
||||||
"device_type property.\n");
|
|
||||||
prom_halt();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (strcmp(type, "display") && strcmp(type, "serial")) {
|
|
||||||
prom_printf("Console device_type is neither display "
|
prom_printf("Console device_type is neither display "
|
||||||
"nor serial.\n");
|
"nor serial.\n");
|
||||||
prom_halt();
|
prom_halt();
|
||||||
|
@ -295,7 +295,7 @@ void __init of_console_init(void)
|
||||||
of_console_device = dp;
|
of_console_device = dp;
|
||||||
|
|
||||||
if (prom_vers == PROM_V2) {
|
if (prom_vers == PROM_V2) {
|
||||||
strcpy(of_console_path, dp->full_name);
|
sprintf(of_console_path, "%pOF", dp);
|
||||||
switch (*romvec->pv_stdout) {
|
switch (*romvec->pv_stdout) {
|
||||||
case PROMDEV_TTYA:
|
case PROMDEV_TTYA:
|
||||||
strcat(of_console_path, ":a");
|
strcat(of_console_path, ":a");
|
||||||
|
|
|
@ -72,6 +72,7 @@ void * __init prom_early_alloc(unsigned long size)
|
||||||
*/
|
*/
|
||||||
static void __init sun4v_path_component(struct device_node *dp, char *tmp_buf)
|
static void __init sun4v_path_component(struct device_node *dp, char *tmp_buf)
|
||||||
{
|
{
|
||||||
|
const char *name = of_get_property(dp, "name", NULL);
|
||||||
struct linux_prom64_registers *regs;
|
struct linux_prom64_registers *regs;
|
||||||
struct property *rprop;
|
struct property *rprop;
|
||||||
u32 high_bits, low_bits, type;
|
u32 high_bits, low_bits, type;
|
||||||
|
@ -83,7 +84,7 @@ static void __init sun4v_path_component(struct device_node *dp, char *tmp_buf)
|
||||||
regs = rprop->value;
|
regs = rprop->value;
|
||||||
if (!of_node_is_root(dp->parent)) {
|
if (!of_node_is_root(dp->parent)) {
|
||||||
sprintf(tmp_buf, "%s@%x,%x",
|
sprintf(tmp_buf, "%s@%x,%x",
|
||||||
dp->name,
|
name,
|
||||||
(unsigned int) (regs->phys_addr >> 32UL),
|
(unsigned int) (regs->phys_addr >> 32UL),
|
||||||
(unsigned int) (regs->phys_addr & 0xffffffffUL));
|
(unsigned int) (regs->phys_addr & 0xffffffffUL));
|
||||||
return;
|
return;
|
||||||
|
@ -98,21 +99,22 @@ static void __init sun4v_path_component(struct device_node *dp, char *tmp_buf)
|
||||||
|
|
||||||
if (low_bits)
|
if (low_bits)
|
||||||
sprintf(tmp_buf, "%s@%s%x,%x",
|
sprintf(tmp_buf, "%s@%s%x,%x",
|
||||||
dp->name, prefix,
|
name, prefix,
|
||||||
high_bits, low_bits);
|
high_bits, low_bits);
|
||||||
else
|
else
|
||||||
sprintf(tmp_buf, "%s@%s%x",
|
sprintf(tmp_buf, "%s@%s%x",
|
||||||
dp->name,
|
name,
|
||||||
prefix,
|
prefix,
|
||||||
high_bits);
|
high_bits);
|
||||||
} else if (type == 12) {
|
} else if (type == 12) {
|
||||||
sprintf(tmp_buf, "%s@%x",
|
sprintf(tmp_buf, "%s@%x",
|
||||||
dp->name, high_bits);
|
name, high_bits);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void __init sun4u_path_component(struct device_node *dp, char *tmp_buf)
|
static void __init sun4u_path_component(struct device_node *dp, char *tmp_buf)
|
||||||
{
|
{
|
||||||
|
const char *name = of_get_property(dp, "name", NULL);
|
||||||
struct linux_prom64_registers *regs;
|
struct linux_prom64_registers *regs;
|
||||||
struct property *prop;
|
struct property *prop;
|
||||||
|
|
||||||
|
@ -123,7 +125,7 @@ static void __init sun4u_path_component(struct device_node *dp, char *tmp_buf)
|
||||||
regs = prop->value;
|
regs = prop->value;
|
||||||
if (!of_node_is_root(dp->parent)) {
|
if (!of_node_is_root(dp->parent)) {
|
||||||
sprintf(tmp_buf, "%s@%x,%x",
|
sprintf(tmp_buf, "%s@%x,%x",
|
||||||
dp->name,
|
name,
|
||||||
(unsigned int) (regs->phys_addr >> 32UL),
|
(unsigned int) (regs->phys_addr >> 32UL),
|
||||||
(unsigned int) (regs->phys_addr & 0xffffffffUL));
|
(unsigned int) (regs->phys_addr & 0xffffffffUL));
|
||||||
return;
|
return;
|
||||||
|
@ -139,7 +141,7 @@ static void __init sun4u_path_component(struct device_node *dp, char *tmp_buf)
|
||||||
mask = 0x7fffff;
|
mask = 0x7fffff;
|
||||||
|
|
||||||
sprintf(tmp_buf, "%s@%x,%x",
|
sprintf(tmp_buf, "%s@%x,%x",
|
||||||
dp->name,
|
name,
|
||||||
*(u32 *)prop->value,
|
*(u32 *)prop->value,
|
||||||
(unsigned int) (regs->phys_addr & mask));
|
(unsigned int) (regs->phys_addr & mask));
|
||||||
}
|
}
|
||||||
|
@ -148,6 +150,7 @@ static void __init sun4u_path_component(struct device_node *dp, char *tmp_buf)
|
||||||
/* "name@slot,offset" */
|
/* "name@slot,offset" */
|
||||||
static void __init sbus_path_component(struct device_node *dp, char *tmp_buf)
|
static void __init sbus_path_component(struct device_node *dp, char *tmp_buf)
|
||||||
{
|
{
|
||||||
|
const char *name = of_get_property(dp, "name", NULL);
|
||||||
struct linux_prom_registers *regs;
|
struct linux_prom_registers *regs;
|
||||||
struct property *prop;
|
struct property *prop;
|
||||||
|
|
||||||
|
@ -157,7 +160,7 @@ static void __init sbus_path_component(struct device_node *dp, char *tmp_buf)
|
||||||
|
|
||||||
regs = prop->value;
|
regs = prop->value;
|
||||||
sprintf(tmp_buf, "%s@%x,%x",
|
sprintf(tmp_buf, "%s@%x,%x",
|
||||||
dp->name,
|
name,
|
||||||
regs->which_io,
|
regs->which_io,
|
||||||
regs->phys_addr);
|
regs->phys_addr);
|
||||||
}
|
}
|
||||||
|
@ -165,6 +168,7 @@ static void __init sbus_path_component(struct device_node *dp, char *tmp_buf)
|
||||||
/* "name@devnum[,func]" */
|
/* "name@devnum[,func]" */
|
||||||
static void __init pci_path_component(struct device_node *dp, char *tmp_buf)
|
static void __init pci_path_component(struct device_node *dp, char *tmp_buf)
|
||||||
{
|
{
|
||||||
|
const char *name = of_get_property(dp, "name", NULL);
|
||||||
struct linux_prom_pci_registers *regs;
|
struct linux_prom_pci_registers *regs;
|
||||||
struct property *prop;
|
struct property *prop;
|
||||||
unsigned int devfn;
|
unsigned int devfn;
|
||||||
|
@ -177,12 +181,12 @@ static void __init pci_path_component(struct device_node *dp, char *tmp_buf)
|
||||||
devfn = (regs->phys_hi >> 8) & 0xff;
|
devfn = (regs->phys_hi >> 8) & 0xff;
|
||||||
if (devfn & 0x07) {
|
if (devfn & 0x07) {
|
||||||
sprintf(tmp_buf, "%s@%x,%x",
|
sprintf(tmp_buf, "%s@%x,%x",
|
||||||
dp->name,
|
name,
|
||||||
devfn >> 3,
|
devfn >> 3,
|
||||||
devfn & 0x07);
|
devfn & 0x07);
|
||||||
} else {
|
} else {
|
||||||
sprintf(tmp_buf, "%s@%x",
|
sprintf(tmp_buf, "%s@%x",
|
||||||
dp->name,
|
name,
|
||||||
devfn >> 3);
|
devfn >> 3);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -190,6 +194,7 @@ static void __init pci_path_component(struct device_node *dp, char *tmp_buf)
|
||||||
/* "name@UPA_PORTID,offset" */
|
/* "name@UPA_PORTID,offset" */
|
||||||
static void __init upa_path_component(struct device_node *dp, char *tmp_buf)
|
static void __init upa_path_component(struct device_node *dp, char *tmp_buf)
|
||||||
{
|
{
|
||||||
|
const char *name = of_get_property(dp, "name", NULL);
|
||||||
struct linux_prom64_registers *regs;
|
struct linux_prom64_registers *regs;
|
||||||
struct property *prop;
|
struct property *prop;
|
||||||
|
|
||||||
|
@ -204,7 +209,7 @@ static void __init upa_path_component(struct device_node *dp, char *tmp_buf)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
sprintf(tmp_buf, "%s@%x,%x",
|
sprintf(tmp_buf, "%s@%x,%x",
|
||||||
dp->name,
|
name,
|
||||||
*(u32 *) prop->value,
|
*(u32 *) prop->value,
|
||||||
(unsigned int) (regs->phys_addr & 0xffffffffUL));
|
(unsigned int) (regs->phys_addr & 0xffffffffUL));
|
||||||
}
|
}
|
||||||
|
@ -212,6 +217,7 @@ static void __init upa_path_component(struct device_node *dp, char *tmp_buf)
|
||||||
/* "name@reg" */
|
/* "name@reg" */
|
||||||
static void __init vdev_path_component(struct device_node *dp, char *tmp_buf)
|
static void __init vdev_path_component(struct device_node *dp, char *tmp_buf)
|
||||||
{
|
{
|
||||||
|
const char *name = of_get_property(dp, "name", NULL);
|
||||||
struct property *prop;
|
struct property *prop;
|
||||||
u32 *regs;
|
u32 *regs;
|
||||||
|
|
||||||
|
@ -221,12 +227,13 @@ static void __init vdev_path_component(struct device_node *dp, char *tmp_buf)
|
||||||
|
|
||||||
regs = prop->value;
|
regs = prop->value;
|
||||||
|
|
||||||
sprintf(tmp_buf, "%s@%x", dp->name, *regs);
|
sprintf(tmp_buf, "%s@%x", name, *regs);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* "name@addrhi,addrlo" */
|
/* "name@addrhi,addrlo" */
|
||||||
static void __init ebus_path_component(struct device_node *dp, char *tmp_buf)
|
static void __init ebus_path_component(struct device_node *dp, char *tmp_buf)
|
||||||
{
|
{
|
||||||
|
const char *name = of_get_property(dp, "name", NULL);
|
||||||
struct linux_prom64_registers *regs;
|
struct linux_prom64_registers *regs;
|
||||||
struct property *prop;
|
struct property *prop;
|
||||||
|
|
||||||
|
@ -237,7 +244,7 @@ static void __init ebus_path_component(struct device_node *dp, char *tmp_buf)
|
||||||
regs = prop->value;
|
regs = prop->value;
|
||||||
|
|
||||||
sprintf(tmp_buf, "%s@%x,%x",
|
sprintf(tmp_buf, "%s@%x,%x",
|
||||||
dp->name,
|
name,
|
||||||
(unsigned int) (regs->phys_addr >> 32UL),
|
(unsigned int) (regs->phys_addr >> 32UL),
|
||||||
(unsigned int) (regs->phys_addr & 0xffffffffUL));
|
(unsigned int) (regs->phys_addr & 0xffffffffUL));
|
||||||
}
|
}
|
||||||
|
@ -245,6 +252,7 @@ static void __init ebus_path_component(struct device_node *dp, char *tmp_buf)
|
||||||
/* "name@bus,addr" */
|
/* "name@bus,addr" */
|
||||||
static void __init i2c_path_component(struct device_node *dp, char *tmp_buf)
|
static void __init i2c_path_component(struct device_node *dp, char *tmp_buf)
|
||||||
{
|
{
|
||||||
|
const char *name = of_get_property(dp, "name", NULL);
|
||||||
struct property *prop;
|
struct property *prop;
|
||||||
u32 *regs;
|
u32 *regs;
|
||||||
|
|
||||||
|
@ -258,12 +266,13 @@ static void __init i2c_path_component(struct device_node *dp, char *tmp_buf)
|
||||||
* property of the i2c bus node etc. etc.
|
* property of the i2c bus node etc. etc.
|
||||||
*/
|
*/
|
||||||
sprintf(tmp_buf, "%s@%x,%x",
|
sprintf(tmp_buf, "%s@%x,%x",
|
||||||
dp->name, regs[0], regs[1]);
|
name, regs[0], regs[1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* "name@reg0[,reg1]" */
|
/* "name@reg0[,reg1]" */
|
||||||
static void __init usb_path_component(struct device_node *dp, char *tmp_buf)
|
static void __init usb_path_component(struct device_node *dp, char *tmp_buf)
|
||||||
{
|
{
|
||||||
|
const char *name = of_get_property(dp, "name", NULL);
|
||||||
struct property *prop;
|
struct property *prop;
|
||||||
u32 *regs;
|
u32 *regs;
|
||||||
|
|
||||||
|
@ -275,16 +284,17 @@ static void __init usb_path_component(struct device_node *dp, char *tmp_buf)
|
||||||
|
|
||||||
if (prop->length == sizeof(u32) || regs[1] == 1) {
|
if (prop->length == sizeof(u32) || regs[1] == 1) {
|
||||||
sprintf(tmp_buf, "%s@%x",
|
sprintf(tmp_buf, "%s@%x",
|
||||||
dp->name, regs[0]);
|
name, regs[0]);
|
||||||
} else {
|
} else {
|
||||||
sprintf(tmp_buf, "%s@%x,%x",
|
sprintf(tmp_buf, "%s@%x,%x",
|
||||||
dp->name, regs[0], regs[1]);
|
name, regs[0], regs[1]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* "name@reg0reg1[,reg2reg3]" */
|
/* "name@reg0reg1[,reg2reg3]" */
|
||||||
static void __init ieee1394_path_component(struct device_node *dp, char *tmp_buf)
|
static void __init ieee1394_path_component(struct device_node *dp, char *tmp_buf)
|
||||||
{
|
{
|
||||||
|
const char *name = of_get_property(dp, "name", NULL);
|
||||||
struct property *prop;
|
struct property *prop;
|
||||||
u32 *regs;
|
u32 *regs;
|
||||||
|
|
||||||
|
@ -296,10 +306,10 @@ static void __init ieee1394_path_component(struct device_node *dp, char *tmp_buf
|
||||||
|
|
||||||
if (regs[2] || regs[3]) {
|
if (regs[2] || regs[3]) {
|
||||||
sprintf(tmp_buf, "%s@%08x%08x,%04x%08x",
|
sprintf(tmp_buf, "%s@%08x%08x,%04x%08x",
|
||||||
dp->name, regs[0], regs[1], regs[2], regs[3]);
|
name, regs[0], regs[1], regs[2], regs[3]);
|
||||||
} else {
|
} else {
|
||||||
sprintf(tmp_buf, "%s@%08x%08x",
|
sprintf(tmp_buf, "%s@%08x%08x",
|
||||||
dp->name, regs[0], regs[1]);
|
name, regs[0], regs[1]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -308,37 +318,37 @@ static void __init __build_path_component(struct device_node *dp, char *tmp_buf)
|
||||||
struct device_node *parent = dp->parent;
|
struct device_node *parent = dp->parent;
|
||||||
|
|
||||||
if (parent != NULL) {
|
if (parent != NULL) {
|
||||||
if (!strcmp(parent->type, "pci") ||
|
if (of_node_is_type(parent, "pci") ||
|
||||||
!strcmp(parent->type, "pciex")) {
|
of_node_is_type(parent, "pciex")) {
|
||||||
pci_path_component(dp, tmp_buf);
|
pci_path_component(dp, tmp_buf);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!strcmp(parent->type, "sbus")) {
|
if (of_node_is_type(parent, "sbus")) {
|
||||||
sbus_path_component(dp, tmp_buf);
|
sbus_path_component(dp, tmp_buf);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!strcmp(parent->type, "upa")) {
|
if (of_node_is_type(parent, "upa")) {
|
||||||
upa_path_component(dp, tmp_buf);
|
upa_path_component(dp, tmp_buf);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!strcmp(parent->type, "ebus")) {
|
if (of_node_is_type(parent, "ebus")) {
|
||||||
ebus_path_component(dp, tmp_buf);
|
ebus_path_component(dp, tmp_buf);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!strcmp(parent->name, "usb") ||
|
if (of_node_name_eq(parent, "usb") ||
|
||||||
!strcmp(parent->name, "hub")) {
|
of_node_name_eq(parent, "hub")) {
|
||||||
usb_path_component(dp, tmp_buf);
|
usb_path_component(dp, tmp_buf);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!strcmp(parent->type, "i2c")) {
|
if (of_node_is_type(parent, "i2c")) {
|
||||||
i2c_path_component(dp, tmp_buf);
|
i2c_path_component(dp, tmp_buf);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!strcmp(parent->type, "firewire")) {
|
if (of_node_is_type(parent, "firewire")) {
|
||||||
ieee1394_path_component(dp, tmp_buf);
|
ieee1394_path_component(dp, tmp_buf);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!strcmp(parent->type, "virtual-devices")) {
|
if (of_node_is_type(parent, "virtual-devices")) {
|
||||||
vdev_path_component(dp, tmp_buf);
|
vdev_path_component(dp, tmp_buf);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -356,12 +366,13 @@ static void __init __build_path_component(struct device_node *dp, char *tmp_buf)
|
||||||
|
|
||||||
char * __init build_path_component(struct device_node *dp)
|
char * __init build_path_component(struct device_node *dp)
|
||||||
{
|
{
|
||||||
|
const char *name = of_get_property(dp, "name", NULL);
|
||||||
char tmp_buf[64], *n;
|
char tmp_buf[64], *n;
|
||||||
|
|
||||||
tmp_buf[0] = '\0';
|
tmp_buf[0] = '\0';
|
||||||
__build_path_component(dp, tmp_buf);
|
__build_path_component(dp, tmp_buf);
|
||||||
if (tmp_buf[0] == '\0')
|
if (tmp_buf[0] == '\0')
|
||||||
strcpy(tmp_buf, dp->name);
|
strcpy(tmp_buf, name);
|
||||||
|
|
||||||
n = prom_early_alloc(strlen(tmp_buf) + 1);
|
n = prom_early_alloc(strlen(tmp_buf) + 1);
|
||||||
strcpy(n, tmp_buf);
|
strcpy(n, tmp_buf);
|
||||||
|
@ -594,7 +605,6 @@ void __init of_console_init(void)
|
||||||
{
|
{
|
||||||
char *msg = "OF stdout device is: %s\n";
|
char *msg = "OF stdout device is: %s\n";
|
||||||
struct device_node *dp;
|
struct device_node *dp;
|
||||||
const char *type;
|
|
||||||
phandle node;
|
phandle node;
|
||||||
|
|
||||||
of_console_path = prom_early_alloc(256);
|
of_console_path = prom_early_alloc(256);
|
||||||
|
@ -617,13 +627,8 @@ void __init of_console_init(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
dp = of_find_node_by_phandle(node);
|
dp = of_find_node_by_phandle(node);
|
||||||
type = of_get_property(dp, "device_type", NULL);
|
|
||||||
if (!type) {
|
|
||||||
prom_printf("Console stdout lacks device_type property.\n");
|
|
||||||
prom_halt();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (strcmp(type, "display") && strcmp(type, "serial")) {
|
if (!of_node_is_type(dp, "display") && !of_node_is_type(dp, "serial")) {
|
||||||
prom_printf("Console device_type is neither display "
|
prom_printf("Console device_type is neither display "
|
||||||
"nor serial.\n");
|
"nor serial.\n");
|
||||||
prom_halt();
|
prom_halt();
|
||||||
|
|
|
@ -193,7 +193,7 @@ static int sabre_device_needs_wsync(struct device_node *dp)
|
||||||
* the DMA synchronization handling
|
* the DMA synchronization handling
|
||||||
*/
|
*/
|
||||||
while (parent) {
|
while (parent) {
|
||||||
if (!strcmp(parent->type, "pci"))
|
if (of_node_is_type(parent, "pci"))
|
||||||
break;
|
break;
|
||||||
parent = parent->parent;
|
parent = parent->parent;
|
||||||
}
|
}
|
||||||
|
@ -725,11 +725,11 @@ static unsigned int central_build_irq(struct device_node *dp,
|
||||||
unsigned long imap, iclr;
|
unsigned long imap, iclr;
|
||||||
u32 tmp;
|
u32 tmp;
|
||||||
|
|
||||||
if (!strcmp(dp->name, "eeprom")) {
|
if (of_node_name_eq(dp, "eeprom")) {
|
||||||
res = ¢ral_op->resource[5];
|
res = ¢ral_op->resource[5];
|
||||||
} else if (!strcmp(dp->name, "zs")) {
|
} else if (of_node_name_eq(dp, "zs")) {
|
||||||
res = ¢ral_op->resource[4];
|
res = ¢ral_op->resource[4];
|
||||||
} else if (!strcmp(dp->name, "clock-board")) {
|
} else if (of_node_name_eq(dp, "clock-board")) {
|
||||||
res = ¢ral_op->resource[3];
|
res = ¢ral_op->resource[3];
|
||||||
} else {
|
} else {
|
||||||
return ino;
|
return ino;
|
||||||
|
@ -824,19 +824,19 @@ void __init irq_trans_init(struct device_node *dp)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#ifdef CONFIG_SBUS
|
#ifdef CONFIG_SBUS
|
||||||
if (!strcmp(dp->name, "sbus") ||
|
if (of_node_name_eq(dp, "sbus") ||
|
||||||
!strcmp(dp->name, "sbi")) {
|
of_node_name_eq(dp, "sbi")) {
|
||||||
sbus_irq_trans_init(dp);
|
sbus_irq_trans_init(dp);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
if (!strcmp(dp->name, "fhc") &&
|
if (of_node_name_eq(dp, "fhc") &&
|
||||||
!strcmp(dp->parent->name, "central")) {
|
of_node_name_eq(dp->parent, "central")) {
|
||||||
central_irq_trans_init(dp);
|
central_irq_trans_init(dp);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!strcmp(dp->name, "virtual-devices") ||
|
if (of_node_name_eq(dp, "virtual-devices") ||
|
||||||
!strcmp(dp->name, "niu")) {
|
of_node_name_eq(dp, "niu")) {
|
||||||
sun4v_vdev_irq_trans_init(dp);
|
sun4v_vdev_irq_trans_init(dp);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
#include <linux/reboot.h>
|
#include <linux/reboot.h>
|
||||||
#include <linux/export.h>
|
#include <linux/export.h>
|
||||||
#include <linux/pm.h>
|
#include <linux/pm.h>
|
||||||
|
#include <linux/of.h>
|
||||||
|
|
||||||
#include <asm/oplib.h>
|
#include <asm/oplib.h>
|
||||||
#include <asm/prom.h>
|
#include <asm/prom.h>
|
||||||
|
@ -25,7 +26,7 @@ EXPORT_SYMBOL(pm_power_off);
|
||||||
|
|
||||||
void machine_power_off(void)
|
void machine_power_off(void)
|
||||||
{
|
{
|
||||||
if (strcmp(of_console_device->type, "serial") || scons_pwroff)
|
if (!of_node_is_type(of_console_device, "serial") || scons_pwroff)
|
||||||
prom_halt_power_off();
|
prom_halt_power_off();
|
||||||
|
|
||||||
prom_halt();
|
prom_halt();
|
||||||
|
|
|
@ -67,8 +67,8 @@ void sbus_set_sbus64(struct device *dev, int bursts)
|
||||||
|
|
||||||
regs = of_get_property(op->dev.of_node, "reg", NULL);
|
regs = of_get_property(op->dev.of_node, "reg", NULL);
|
||||||
if (!regs) {
|
if (!regs) {
|
||||||
printk(KERN_ERR "sbus_set_sbus64: Cannot find regs for %s\n",
|
printk(KERN_ERR "sbus_set_sbus64: Cannot find regs for %pOF\n",
|
||||||
op->dev.of_node->full_name);
|
op->dev.of_node);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
slot = regs->which_io;
|
slot = regs->which_io;
|
||||||
|
|
|
@ -335,12 +335,12 @@ static unsigned int sun4d_build_device_irq(struct platform_device *op,
|
||||||
|
|
||||||
irq = real_irq;
|
irq = real_irq;
|
||||||
while (bus) {
|
while (bus) {
|
||||||
if (!strcmp(bus->name, "sbi")) {
|
if (of_node_name_eq(bus, "sbi")) {
|
||||||
bus_connection = "io-unit";
|
bus_connection = "io-unit";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!strcmp(bus->name, "bootbus")) {
|
if (of_node_name_eq(bus, "bootbus")) {
|
||||||
bus_connection = "cpu-unit";
|
bus_connection = "cpu-unit";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -360,16 +360,16 @@ static unsigned int sun4d_build_device_irq(struct platform_device *op,
|
||||||
* If Bus nodes parent is not io-unit/cpu-unit or the io-unit/cpu-unit
|
* If Bus nodes parent is not io-unit/cpu-unit or the io-unit/cpu-unit
|
||||||
* lacks a "board#" property, something is very wrong.
|
* lacks a "board#" property, something is very wrong.
|
||||||
*/
|
*/
|
||||||
if (!bus->parent || strcmp(bus->parent->name, bus_connection)) {
|
if (!of_node_name_eq(bus->parent, bus_connection)) {
|
||||||
printk(KERN_ERR "%s: Error, parent is not %s.\n",
|
printk(KERN_ERR "%pOF: Error, parent is not %s.\n",
|
||||||
bus->full_name, bus_connection);
|
bus, bus_connection);
|
||||||
goto err_out;
|
goto err_out;
|
||||||
}
|
}
|
||||||
board_parent = bus->parent;
|
board_parent = bus->parent;
|
||||||
board = of_getintprop_default(board_parent, "board#", -1);
|
board = of_getintprop_default(board_parent, "board#", -1);
|
||||||
if (board == -1) {
|
if (board == -1) {
|
||||||
printk(KERN_ERR "%s: Error, lacks board# property.\n",
|
printk(KERN_ERR "%pOF: Error, lacks board# property.\n",
|
||||||
board_parent->full_name);
|
board_parent);
|
||||||
goto err_out;
|
goto err_out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,55 @@
|
||||||
|
# SPDX-License-Identifier: GPL-2.0
|
||||||
|
kapi := arch/$(SRCARCH)/include/generated/asm
|
||||||
|
uapi := arch/$(SRCARCH)/include/generated/uapi/asm
|
||||||
|
|
||||||
|
_dummy := $(shell [ -d '$(uapi)' ] || mkdir -p '$(uapi)') \
|
||||||
|
$(shell [ -d '$(kapi)' ] || mkdir -p '$(kapi)')
|
||||||
|
|
||||||
|
syscall := $(srctree)/$(src)/syscall.tbl
|
||||||
|
syshdr := $(srctree)/$(src)/syscallhdr.sh
|
||||||
|
systbl := $(srctree)/$(src)/syscalltbl.sh
|
||||||
|
|
||||||
|
quiet_cmd_syshdr = SYSHDR $@
|
||||||
|
cmd_syshdr = $(CONFIG_SHELL) '$(syshdr)' '$<' '$@' \
|
||||||
|
'$(syshdr_abis_$(basetarget))' \
|
||||||
|
'$(syshdr_pfx_$(basetarget))' \
|
||||||
|
'$(syshdr_offset_$(basetarget))'
|
||||||
|
|
||||||
|
quiet_cmd_systbl = SYSTBL $@
|
||||||
|
cmd_systbl = $(CONFIG_SHELL) '$(systbl)' '$<' '$@' \
|
||||||
|
'$(systbl_abis_$(basetarget))' \
|
||||||
|
'$(systbl_abi_$(basetarget))' \
|
||||||
|
'$(systbl_offset_$(basetarget))'
|
||||||
|
|
||||||
|
syshdr_abis_unistd_32 := common,32
|
||||||
|
$(uapi)/unistd_32.h: $(syscall) $(syshdr)
|
||||||
|
$(call if_changed,syshdr)
|
||||||
|
|
||||||
|
syshdr_abis_unistd_64 := common,64
|
||||||
|
$(uapi)/unistd_64.h: $(syscall) $(syshdr)
|
||||||
|
$(call if_changed,syshdr)
|
||||||
|
|
||||||
|
systbl_abis_syscall_table_32 := common,32
|
||||||
|
$(kapi)/syscall_table_32.h: $(syscall) $(systbl)
|
||||||
|
$(call if_changed,systbl)
|
||||||
|
|
||||||
|
systbl_abis_syscall_table_64 := common,64
|
||||||
|
$(kapi)/syscall_table_64.h: $(syscall) $(systbl)
|
||||||
|
$(call if_changed,systbl)
|
||||||
|
|
||||||
|
systbl_abis_syscall_table_c32 := common,32
|
||||||
|
systbl_abi_syscall_table_c32 := c32
|
||||||
|
$(kapi)/syscall_table_c32.h: $(syscall) $(systbl)
|
||||||
|
$(call if_changed,systbl)
|
||||||
|
|
||||||
|
uapisyshdr-y += unistd_32.h unistd_64.h
|
||||||
|
kapisyshdr-y += syscall_table_32.h \
|
||||||
|
syscall_table_64.h \
|
||||||
|
syscall_table_c32.h
|
||||||
|
|
||||||
|
targets += $(uapisyshdr-y) $(kapisyshdr-y)
|
||||||
|
|
||||||
|
PHONY += all
|
||||||
|
all: $(addprefix $(uapi)/,$(uapisyshdr-y))
|
||||||
|
all: $(addprefix $(kapi)/,$(kapisyshdr-y))
|
||||||
|
@:
|
|
@ -0,0 +1,409 @@
|
||||||
|
# SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
|
||||||
|
#
|
||||||
|
# system call numbers and entry vectors for sparc
|
||||||
|
#
|
||||||
|
# The format is:
|
||||||
|
# <number> <abi> <name> <entry point> <compat entry point>
|
||||||
|
#
|
||||||
|
# The <abi> can be common, 64, or 32 for this file.
|
||||||
|
#
|
||||||
|
0 common restart_syscall sys_restart_syscall
|
||||||
|
1 32 exit sys_exit sparc_exit
|
||||||
|
1 64 exit sparc_exit
|
||||||
|
2 common fork sys_fork
|
||||||
|
3 common read sys_read
|
||||||
|
4 common write sys_write
|
||||||
|
5 common open sys_open compat_sys_open
|
||||||
|
6 common close sys_close
|
||||||
|
7 common wait4 sys_wait4 compat_sys_wait4
|
||||||
|
8 common creat sys_creat
|
||||||
|
9 common link sys_link
|
||||||
|
10 common unlink sys_unlink
|
||||||
|
11 32 execv sunos_execv
|
||||||
|
11 64 execv sys_nis_syscall
|
||||||
|
12 common chdir sys_chdir
|
||||||
|
13 32 chown sys_chown16
|
||||||
|
13 64 chown sys_chown
|
||||||
|
14 common mknod sys_mknod
|
||||||
|
15 common chmod sys_chmod
|
||||||
|
16 32 lchown sys_lchown16
|
||||||
|
16 64 lchown sys_lchown
|
||||||
|
17 common brk sys_brk
|
||||||
|
18 common perfctr sys_nis_syscall
|
||||||
|
19 common lseek sys_lseek compat_sys_lseek
|
||||||
|
20 common getpid sys_getpid
|
||||||
|
21 common capget sys_capget
|
||||||
|
22 common capset sys_capset
|
||||||
|
23 32 setuid sys_setuid16
|
||||||
|
23 64 setuid sys_setuid
|
||||||
|
24 32 getuid sys_getuid16
|
||||||
|
24 64 getuid sys_getuid
|
||||||
|
25 common vmsplice sys_vmsplice compat_sys_vmsplice
|
||||||
|
26 common ptrace sys_ptrace compat_sys_ptrace
|
||||||
|
27 common alarm sys_alarm
|
||||||
|
28 common sigaltstack sys_sigaltstack compat_sys_sigaltstack
|
||||||
|
29 32 pause sys_pause
|
||||||
|
29 64 pause sys_nis_syscall
|
||||||
|
30 common utime sys_utime compat_sys_utime
|
||||||
|
31 32 lchown32 sys_lchown
|
||||||
|
32 32 fchown32 sys_fchown
|
||||||
|
33 common access sys_access
|
||||||
|
34 common nice sys_nice
|
||||||
|
35 32 chown32 sys_chown
|
||||||
|
36 common sync sys_sync
|
||||||
|
37 common kill sys_kill
|
||||||
|
38 common stat sys_newstat compat_sys_newstat
|
||||||
|
39 32 sendfile sys_sendfile compat_sys_sendfile
|
||||||
|
39 64 sendfile sys_sendfile64
|
||||||
|
40 common lstat sys_newlstat compat_sys_newlstat
|
||||||
|
41 common dup sys_dup
|
||||||
|
42 common pipe sys_sparc_pipe
|
||||||
|
43 common times sys_times compat_sys_times
|
||||||
|
44 32 getuid32 sys_getuid
|
||||||
|
45 common umount2 sys_umount
|
||||||
|
46 32 setgid sys_setgid16
|
||||||
|
46 64 setgid sys_setgid
|
||||||
|
47 32 getgid sys_getgid16
|
||||||
|
47 64 getgid sys_getgid
|
||||||
|
48 common signal sys_signal
|
||||||
|
49 32 geteuid sys_geteuid16
|
||||||
|
49 64 geteuid sys_geteuid
|
||||||
|
50 32 getegid sys_getegid16
|
||||||
|
50 64 getegid sys_getegid
|
||||||
|
51 common acct sys_acct
|
||||||
|
52 64 memory_ordering sys_memory_ordering
|
||||||
|
53 32 getgid32 sys_getgid
|
||||||
|
54 common ioctl sys_ioctl compat_sys_ioctl
|
||||||
|
55 common reboot sys_reboot
|
||||||
|
56 32 mmap2 sys_mmap2 sys32_mmap2
|
||||||
|
57 common symlink sys_symlink
|
||||||
|
58 common readlink sys_readlink
|
||||||
|
59 32 execve sys_execve sys32_execve
|
||||||
|
59 64 execve sys64_execve
|
||||||
|
60 common umask sys_umask
|
||||||
|
61 common chroot sys_chroot
|
||||||
|
62 common fstat sys_newfstat compat_sys_newfstat
|
||||||
|
63 common fstat64 sys_fstat64 compat_sys_fstat64
|
||||||
|
64 common getpagesize sys_getpagesize
|
||||||
|
65 common msync sys_msync
|
||||||
|
66 common vfork sys_vfork
|
||||||
|
67 common pread64 sys_pread64 compat_sys_pread64
|
||||||
|
68 common pwrite64 sys_pwrite64 compat_sys_pwrite64
|
||||||
|
69 32 geteuid32 sys_geteuid
|
||||||
|
70 32 getegid32 sys_getegid
|
||||||
|
71 common mmap sys_mmap
|
||||||
|
72 32 setreuid32 sys_setreuid
|
||||||
|
73 32 munmap sys_munmap
|
||||||
|
73 64 munmap sys_64_munmap
|
||||||
|
74 common mprotect sys_mprotect
|
||||||
|
75 common madvise sys_madvise
|
||||||
|
76 common vhangup sys_vhangup
|
||||||
|
77 32 truncate64 sys_truncate64 compat_sys_truncate64
|
||||||
|
78 common mincore sys_mincore
|
||||||
|
79 32 getgroups sys_getgroups16
|
||||||
|
79 64 getgroups sys_getgroups
|
||||||
|
80 32 setgroups sys_setgroups16
|
||||||
|
80 64 setgroups sys_setgroups
|
||||||
|
81 common getpgrp sys_getpgrp
|
||||||
|
82 32 setgroups32 sys_setgroups
|
||||||
|
83 common setitimer sys_setitimer compat_sys_setitimer
|
||||||
|
84 32 ftruncate64 sys_ftruncate64 compat_sys_ftruncate64
|
||||||
|
85 common swapon sys_swapon
|
||||||
|
86 common getitimer sys_getitimer compat_sys_getitimer
|
||||||
|
87 32 setuid32 sys_setuid
|
||||||
|
88 common sethostname sys_sethostname
|
||||||
|
89 32 setgid32 sys_setgid
|
||||||
|
90 common dup2 sys_dup2
|
||||||
|
91 32 setfsuid32 sys_setfsuid
|
||||||
|
92 common fcntl sys_fcntl compat_sys_fcntl
|
||||||
|
93 common select sys_select
|
||||||
|
94 32 setfsgid32 sys_setfsgid
|
||||||
|
95 common fsync sys_fsync
|
||||||
|
96 common setpriority sys_setpriority
|
||||||
|
97 common socket sys_socket
|
||||||
|
98 common connect sys_connect
|
||||||
|
99 common accept sys_accept
|
||||||
|
100 common getpriority sys_getpriority
|
||||||
|
101 common rt_sigreturn sys_rt_sigreturn sys32_rt_sigreturn
|
||||||
|
102 common rt_sigaction sys_rt_sigaction compat_sys_rt_sigaction
|
||||||
|
103 common rt_sigprocmask sys_rt_sigprocmask compat_sys_rt_sigprocmask
|
||||||
|
104 common rt_sigpending sys_rt_sigpending compat_sys_rt_sigpending
|
||||||
|
105 common rt_sigtimedwait sys_rt_sigtimedwait compat_sys_rt_sigtimedwait
|
||||||
|
106 common rt_sigqueueinfo sys_rt_sigqueueinfo compat_sys_rt_sigqueueinfo
|
||||||
|
107 common rt_sigsuspend sys_rt_sigsuspend compat_sys_rt_sigsuspend
|
||||||
|
108 32 setresuid32 sys_setresuid
|
||||||
|
108 64 setresuid sys_setresuid
|
||||||
|
109 32 getresuid32 sys_getresuid
|
||||||
|
109 64 getresuid sys_getresuid
|
||||||
|
110 32 setresgid32 sys_setresgid
|
||||||
|
110 64 setresgid sys_setresgid
|
||||||
|
111 32 getresgid32 sys_getresgid
|
||||||
|
111 64 getresgid sys_getresgid
|
||||||
|
112 32 setregid32 sys_setregid
|
||||||
|
113 common recvmsg sys_recvmsg compat_sys_recvmsg
|
||||||
|
114 common sendmsg sys_sendmsg compat_sys_sendmsg
|
||||||
|
115 32 getgroups32 sys_getgroups
|
||||||
|
116 common gettimeofday sys_gettimeofday compat_sys_gettimeofday
|
||||||
|
117 common getrusage sys_getrusage compat_sys_getrusage
|
||||||
|
118 common getsockopt sys_getsockopt compat_sys_getsockopt
|
||||||
|
119 common getcwd sys_getcwd
|
||||||
|
120 common readv sys_readv compat_sys_readv
|
||||||
|
121 common writev sys_writev compat_sys_writev
|
||||||
|
122 common settimeofday sys_settimeofday compat_sys_settimeofday
|
||||||
|
123 32 fchown sys_fchown16
|
||||||
|
123 64 fchown sys_fchown
|
||||||
|
124 common fchmod sys_fchmod
|
||||||
|
125 common recvfrom sys_recvfrom
|
||||||
|
126 32 setreuid sys_setreuid16
|
||||||
|
126 64 setreuid sys_setreuid
|
||||||
|
127 32 setregid sys_setregid16
|
||||||
|
127 64 setregid sys_setregid
|
||||||
|
128 common rename sys_rename
|
||||||
|
129 common truncate sys_truncate compat_sys_truncate
|
||||||
|
130 common ftruncate sys_ftruncate compat_sys_ftruncate
|
||||||
|
131 common flock sys_flock
|
||||||
|
132 common lstat64 sys_lstat64 compat_sys_lstat64
|
||||||
|
133 common sendto sys_sendto
|
||||||
|
134 common shutdown sys_shutdown
|
||||||
|
135 common socketpair sys_socketpair
|
||||||
|
136 common mkdir sys_mkdir
|
||||||
|
137 common rmdir sys_rmdir
|
||||||
|
138 common utimes sys_utimes compat_sys_utimes
|
||||||
|
139 common stat64 sys_stat64 compat_sys_stat64
|
||||||
|
140 common sendfile64 sys_sendfile64
|
||||||
|
141 common getpeername sys_getpeername
|
||||||
|
142 common futex sys_futex compat_sys_futex
|
||||||
|
143 common gettid sys_gettid
|
||||||
|
144 common getrlimit sys_getrlimit compat_sys_getrlimit
|
||||||
|
145 common setrlimit sys_setrlimit compat_sys_setrlimit
|
||||||
|
146 common pivot_root sys_pivot_root
|
||||||
|
147 common prctl sys_prctl
|
||||||
|
148 common pciconfig_read sys_pciconfig_read
|
||||||
|
149 common pciconfig_write sys_pciconfig_write
|
||||||
|
150 common getsockname sys_getsockname
|
||||||
|
151 common inotify_init sys_inotify_init
|
||||||
|
152 common inotify_add_watch sys_inotify_add_watch
|
||||||
|
153 common poll sys_poll
|
||||||
|
154 common getdents64 sys_getdents64
|
||||||
|
155 32 fcntl64 sys_fcntl64 compat_sys_fcntl64
|
||||||
|
156 common inotify_rm_watch sys_inotify_rm_watch
|
||||||
|
157 common statfs sys_statfs compat_sys_statfs
|
||||||
|
158 common fstatfs sys_fstatfs compat_sys_fstatfs
|
||||||
|
159 common umount sys_oldumount
|
||||||
|
160 common sched_set_affinity sys_sched_setaffinity compat_sys_sched_setaffinity
|
||||||
|
161 common sched_get_affinity sys_sched_getaffinity compat_sys_sched_getaffinity
|
||||||
|
162 common getdomainname sys_getdomainname
|
||||||
|
163 common setdomainname sys_setdomainname
|
||||||
|
164 64 utrap_install sys_utrap_install
|
||||||
|
165 common quotactl sys_quotactl
|
||||||
|
166 common set_tid_address sys_set_tid_address
|
||||||
|
167 common mount sys_mount compat_sys_mount
|
||||||
|
168 common ustat sys_ustat compat_sys_ustat
|
||||||
|
169 common setxattr sys_setxattr
|
||||||
|
170 common lsetxattr sys_lsetxattr
|
||||||
|
171 common fsetxattr sys_fsetxattr
|
||||||
|
172 common getxattr sys_getxattr
|
||||||
|
173 common lgetxattr sys_lgetxattr
|
||||||
|
174 common getdents sys_getdents compat_sys_getdents
|
||||||
|
175 common setsid sys_setsid
|
||||||
|
176 common fchdir sys_fchdir
|
||||||
|
177 common fgetxattr sys_fgetxattr
|
||||||
|
178 common listxattr sys_listxattr
|
||||||
|
179 common llistxattr sys_llistxattr
|
||||||
|
180 common flistxattr sys_flistxattr
|
||||||
|
181 common removexattr sys_removexattr
|
||||||
|
182 common lremovexattr sys_lremovexattr
|
||||||
|
183 32 sigpending sys_sigpending compat_sys_sigpending
|
||||||
|
183 64 sigpending sys_nis_syscall
|
||||||
|
184 common query_module sys_ni_syscall
|
||||||
|
185 common setpgid sys_setpgid
|
||||||
|
186 common fremovexattr sys_fremovexattr
|
||||||
|
187 common tkill sys_tkill
|
||||||
|
188 32 exit_group sys_exit_group sparc_exit_group
|
||||||
|
188 64 exit_group sparc_exit_group
|
||||||
|
189 common uname sys_newuname
|
||||||
|
190 common init_module sys_init_module
|
||||||
|
191 32 personality sys_personality sys_sparc64_personality
|
||||||
|
191 64 personality sys_sparc64_personality
|
||||||
|
192 32 remap_file_pages sys_sparc_remap_file_pages sys_remap_file_pages
|
||||||
|
192 64 remap_file_pages sys_remap_file_pages
|
||||||
|
193 common epoll_create sys_epoll_create
|
||||||
|
194 common epoll_ctl sys_epoll_ctl
|
||||||
|
195 common epoll_wait sys_epoll_wait
|
||||||
|
196 common ioprio_set sys_ioprio_set
|
||||||
|
197 common getppid sys_getppid
|
||||||
|
198 32 sigaction sys_sparc_sigaction compat_sys_sparc_sigaction
|
||||||
|
198 64 sigaction sys_nis_syscall
|
||||||
|
199 common sgetmask sys_sgetmask
|
||||||
|
200 common ssetmask sys_ssetmask
|
||||||
|
201 32 sigsuspend sys_sigsuspend
|
||||||
|
201 64 sigsuspend sys_nis_syscall
|
||||||
|
202 common oldlstat sys_newlstat compat_sys_newlstat
|
||||||
|
203 common uselib sys_uselib
|
||||||
|
204 32 readdir sys_old_readdir compat_sys_old_readdir
|
||||||
|
204 64 readdir sys_nis_syscall
|
||||||
|
205 common readahead sys_readahead compat_sys_readahead
|
||||||
|
206 common socketcall sys_socketcall sys32_socketcall
|
||||||
|
207 common syslog sys_syslog
|
||||||
|
208 common lookup_dcookie sys_lookup_dcookie compat_sys_lookup_dcookie
|
||||||
|
209 common fadvise64 sys_fadvise64 compat_sys_fadvise64
|
||||||
|
210 common fadvise64_64 sys_fadvise64_64 compat_sys_fadvise64_64
|
||||||
|
211 common tgkill sys_tgkill
|
||||||
|
212 common waitpid sys_waitpid
|
||||||
|
213 common swapoff sys_swapoff
|
||||||
|
214 common sysinfo sys_sysinfo compat_sys_sysinfo
|
||||||
|
215 32 ipc sys_ipc compat_sys_ipc
|
||||||
|
215 64 ipc sys_sparc_ipc
|
||||||
|
216 32 sigreturn sys_sigreturn sys32_sigreturn
|
||||||
|
216 64 sigreturn sys_nis_syscall
|
||||||
|
217 common clone sys_clone
|
||||||
|
218 common ioprio_get sys_ioprio_get
|
||||||
|
219 common adjtimex sys_adjtimex compat_sys_adjtimex
|
||||||
|
220 32 sigprocmask sys_sigprocmask compat_sys_sigprocmask
|
||||||
|
220 64 sigprocmask sys_nis_syscall
|
||||||
|
221 common create_module sys_ni_syscall
|
||||||
|
222 common delete_module sys_delete_module
|
||||||
|
223 common get_kernel_syms sys_ni_syscall
|
||||||
|
224 common getpgid sys_getpgid
|
||||||
|
225 common bdflush sys_bdflush
|
||||||
|
226 common sysfs sys_sysfs
|
||||||
|
227 common afs_syscall sys_nis_syscall
|
||||||
|
228 common setfsuid sys_setfsuid16
|
||||||
|
229 common setfsgid sys_setfsgid16
|
||||||
|
230 common _newselect sys_select compat_sys_select
|
||||||
|
231 32 time sys_time compat_sys_time
|
||||||
|
232 common splice sys_splice
|
||||||
|
233 common stime sys_stime compat_sys_stime
|
||||||
|
234 common statfs64 sys_statfs64 compat_sys_statfs64
|
||||||
|
235 common fstatfs64 sys_fstatfs64 compat_sys_fstatfs64
|
||||||
|
236 common _llseek sys_llseek
|
||||||
|
237 common mlock sys_mlock
|
||||||
|
238 common munlock sys_munlock
|
||||||
|
239 common mlockall sys_mlockall
|
||||||
|
240 common munlockall sys_munlockall
|
||||||
|
241 common sched_setparam sys_sched_setparam
|
||||||
|
242 common sched_getparam sys_sched_getparam
|
||||||
|
243 common sched_setscheduler sys_sched_setscheduler
|
||||||
|
244 common sched_getscheduler sys_sched_getscheduler
|
||||||
|
245 common sched_yield sys_sched_yield
|
||||||
|
246 common sched_get_priority_max sys_sched_get_priority_max
|
||||||
|
247 common sched_get_priority_min sys_sched_get_priority_min
|
||||||
|
248 common sched_rr_get_interval sys_sched_rr_get_interval compat_sys_sched_rr_get_interval
|
||||||
|
249 common nanosleep sys_nanosleep compat_sys_nanosleep
|
||||||
|
250 32 mremap sys_mremap
|
||||||
|
250 64 mremap sys_64_mremap
|
||||||
|
251 common _sysctl sys_sysctl compat_sys_sysctl
|
||||||
|
252 common getsid sys_getsid
|
||||||
|
253 common fdatasync sys_fdatasync
|
||||||
|
254 32 nfsservctl sys_ni_syscall sys_nis_syscall
|
||||||
|
254 64 nfsservctl sys_nis_syscall
|
||||||
|
255 common sync_file_range sys_sync_file_range compat_sys_sync_file_range
|
||||||
|
256 common clock_settime sys_clock_settime compat_sys_clock_settime
|
||||||
|
257 common clock_gettime sys_clock_gettime compat_sys_clock_gettime
|
||||||
|
258 common clock_getres sys_clock_getres compat_sys_clock_getres
|
||||||
|
259 common clock_nanosleep sys_clock_nanosleep compat_sys_clock_nanosleep
|
||||||
|
260 common sched_getaffinity sys_sched_getaffinity compat_sys_sched_getaffinity
|
||||||
|
261 common sched_setaffinity sys_sched_setaffinity compat_sys_sched_setaffinity
|
||||||
|
262 common timer_settime sys_timer_settime compat_sys_timer_settime
|
||||||
|
263 common timer_gettime sys_timer_gettime compat_sys_timer_gettime
|
||||||
|
264 common timer_getoverrun sys_timer_getoverrun
|
||||||
|
265 common timer_delete sys_timer_delete
|
||||||
|
266 common timer_create sys_timer_create compat_sys_timer_create
|
||||||
|
# 267 was vserver
|
||||||
|
267 common vserver sys_nis_syscall
|
||||||
|
268 common io_setup sys_io_setup compat_sys_io_setup
|
||||||
|
269 common io_destroy sys_io_destroy
|
||||||
|
270 common io_submit sys_io_submit compat_sys_io_submit
|
||||||
|
271 common io_cancel sys_io_cancel
|
||||||
|
272 common io_getevents sys_io_getevents compat_sys_io_getevents
|
||||||
|
273 common mq_open sys_mq_open compat_sys_mq_open
|
||||||
|
274 common mq_unlink sys_mq_unlink
|
||||||
|
275 common mq_timedsend sys_mq_timedsend compat_sys_mq_timedsend
|
||||||
|
276 common mq_timedreceive sys_mq_timedreceive compat_sys_mq_timedreceive
|
||||||
|
277 common mq_notify sys_mq_notify compat_sys_mq_notify
|
||||||
|
278 common mq_getsetattr sys_mq_getsetattr compat_sys_mq_getsetattr
|
||||||
|
279 common waitid sys_waitid compat_sys_waitid
|
||||||
|
280 common tee sys_tee
|
||||||
|
281 common add_key sys_add_key
|
||||||
|
282 common request_key sys_request_key
|
||||||
|
283 common keyctl sys_keyctl compat_sys_keyctl
|
||||||
|
284 common openat sys_openat compat_sys_openat
|
||||||
|
285 common mkdirat sys_mkdirat
|
||||||
|
286 common mknodat sys_mknodat
|
||||||
|
287 common fchownat sys_fchownat
|
||||||
|
288 common futimesat sys_futimesat compat_sys_futimesat
|
||||||
|
289 common fstatat64 sys_fstatat64 compat_sys_fstatat64
|
||||||
|
290 common unlinkat sys_unlinkat
|
||||||
|
291 common renameat sys_renameat
|
||||||
|
292 common linkat sys_linkat
|
||||||
|
293 common symlinkat sys_symlinkat
|
||||||
|
294 common readlinkat sys_readlinkat
|
||||||
|
295 common fchmodat sys_fchmodat
|
||||||
|
296 common faccessat sys_faccessat
|
||||||
|
297 common pselect6 sys_pselect6 compat_sys_pselect6
|
||||||
|
298 common ppoll sys_ppoll compat_sys_ppoll
|
||||||
|
299 common unshare sys_unshare
|
||||||
|
300 common set_robust_list sys_set_robust_list compat_sys_set_robust_list
|
||||||
|
301 common get_robust_list sys_get_robust_list compat_sys_get_robust_list
|
||||||
|
302 common migrate_pages sys_migrate_pages compat_sys_migrate_pages
|
||||||
|
303 common mbind sys_mbind compat_sys_mbind
|
||||||
|
304 common get_mempolicy sys_get_mempolicy compat_sys_get_mempolicy
|
||||||
|
305 common set_mempolicy sys_set_mempolicy compat_sys_set_mempolicy
|
||||||
|
306 common kexec_load sys_kexec_load compat_sys_kexec_load
|
||||||
|
307 common move_pages sys_move_pages compat_sys_move_pages
|
||||||
|
308 common getcpu sys_getcpu
|
||||||
|
309 common epoll_pwait sys_epoll_pwait compat_sys_epoll_pwait
|
||||||
|
310 common utimensat sys_utimensat compat_sys_utimensat
|
||||||
|
311 common signalfd sys_signalfd compat_sys_signalfd
|
||||||
|
312 common timerfd_create sys_timerfd_create
|
||||||
|
313 common eventfd sys_eventfd
|
||||||
|
314 common fallocate sys_fallocate compat_sys_fallocate
|
||||||
|
315 common timerfd_settime sys_timerfd_settime compat_sys_timerfd_settime
|
||||||
|
316 common timerfd_gettime sys_timerfd_gettime compat_sys_timerfd_gettime
|
||||||
|
317 common signalfd4 sys_signalfd4 compat_sys_signalfd4
|
||||||
|
318 common eventfd2 sys_eventfd2
|
||||||
|
319 common epoll_create1 sys_epoll_create1
|
||||||
|
320 common dup3 sys_dup3
|
||||||
|
321 common pipe2 sys_pipe2
|
||||||
|
322 common inotify_init1 sys_inotify_init1
|
||||||
|
323 common accept4 sys_accept4
|
||||||
|
324 common preadv sys_preadv compat_sys_preadv
|
||||||
|
325 common pwritev sys_pwritev compat_sys_pwritev
|
||||||
|
326 common rt_tgsigqueueinfo sys_rt_tgsigqueueinfo compat_sys_rt_tgsigqueueinfo
|
||||||
|
327 common perf_event_open sys_perf_event_open
|
||||||
|
328 common recvmmsg sys_recvmmsg compat_sys_recvmmsg
|
||||||
|
329 common fanotify_init sys_fanotify_init
|
||||||
|
330 common fanotify_mark sys_fanotify_mark compat_sys_fanotify_mark
|
||||||
|
331 common prlimit64 sys_prlimit64
|
||||||
|
332 common name_to_handle_at sys_name_to_handle_at
|
||||||
|
333 common open_by_handle_at sys_open_by_handle_at compat_sys_open_by_handle_at
|
||||||
|
334 common clock_adjtime sys_clock_adjtime compat_sys_clock_adjtime
|
||||||
|
335 common syncfs sys_syncfs
|
||||||
|
336 common sendmmsg sys_sendmmsg compat_sys_sendmmsg
|
||||||
|
337 common setns sys_setns
|
||||||
|
338 common process_vm_readv sys_process_vm_readv compat_sys_process_vm_readv
|
||||||
|
339 common process_vm_writev sys_process_vm_writev compat_sys_process_vm_writev
|
||||||
|
340 32 kern_features sys_ni_syscall sys_kern_features
|
||||||
|
340 64 kern_features sys_kern_features
|
||||||
|
341 common kcmp sys_kcmp
|
||||||
|
342 common finit_module sys_finit_module
|
||||||
|
343 common sched_setattr sys_sched_setattr
|
||||||
|
344 common sched_getattr sys_sched_getattr
|
||||||
|
345 common renameat2 sys_renameat2
|
||||||
|
346 common seccomp sys_seccomp
|
||||||
|
347 common getrandom sys_getrandom
|
||||||
|
348 common memfd_create sys_memfd_create
|
||||||
|
349 common bpf sys_bpf
|
||||||
|
350 32 execveat sys_execveat sys32_execveat
|
||||||
|
350 64 execveat sys64_execveat
|
||||||
|
351 common membarrier sys_membarrier
|
||||||
|
352 common userfaultfd sys_userfaultfd
|
||||||
|
353 common bind sys_bind
|
||||||
|
354 common listen sys_listen
|
||||||
|
355 common setsockopt sys_setsockopt compat_sys_setsockopt
|
||||||
|
356 common mlock2 sys_mlock2
|
||||||
|
357 common copy_file_range sys_copy_file_range
|
||||||
|
358 common preadv2 sys_preadv2 compat_sys_preadv2
|
||||||
|
359 common pwritev2 sys_pwritev2 compat_sys_pwritev2
|
||||||
|
360 common statx sys_statx
|
||||||
|
361 common io_pgetevents sys_io_pgetevents compat_sys_io_pgetevents
|
|
@ -0,0 +1,36 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# SPDX-License-Identifier: GPL-2.0
|
||||||
|
|
||||||
|
in="$1"
|
||||||
|
out="$2"
|
||||||
|
my_abis=`echo "($3)" | tr ',' '|'`
|
||||||
|
prefix="$4"
|
||||||
|
offset="$5"
|
||||||
|
|
||||||
|
fileguard=_UAPI_ASM_SPARC_`basename "$out" | sed \
|
||||||
|
-e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \
|
||||||
|
-e 's/[^A-Z0-9_]/_/g' -e 's/__/_/g'`
|
||||||
|
grep -E "^[0-9A-Fa-fXx]+[[:space:]]+${my_abis}" "$in" | sort -n | (
|
||||||
|
printf "#ifndef %s\n" "${fileguard}"
|
||||||
|
printf "#define %s\n" "${fileguard}"
|
||||||
|
printf "\n"
|
||||||
|
|
||||||
|
nxt=0
|
||||||
|
while read nr abi name entry compat ; do
|
||||||
|
if [ -z "$offset" ]; then
|
||||||
|
printf "#define __NR_%s%s\t%s\n" \
|
||||||
|
"${prefix}" "${name}" "${nr}"
|
||||||
|
else
|
||||||
|
printf "#define __NR_%s%s\t(%s + %s)\n" \
|
||||||
|
"${prefix}" "${name}" "${offset}" "${nr}"
|
||||||
|
fi
|
||||||
|
nxt=$((nr+1))
|
||||||
|
done
|
||||||
|
|
||||||
|
printf "\n"
|
||||||
|
printf "#ifdef __KERNEL__\n"
|
||||||
|
printf "#define __NR_syscalls\t%s\n" "${nxt}"
|
||||||
|
printf "#endif\n"
|
||||||
|
printf "\n"
|
||||||
|
printf "#endif /* %s */" "${fileguard}"
|
||||||
|
) > "$out"
|
|
@ -0,0 +1,36 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# SPDX-License-Identifier: GPL-2.0
|
||||||
|
|
||||||
|
in="$1"
|
||||||
|
out="$2"
|
||||||
|
my_abis=`echo "($3)" | tr ',' '|'`
|
||||||
|
my_abi="$4"
|
||||||
|
offset="$5"
|
||||||
|
|
||||||
|
emit() {
|
||||||
|
t_nxt="$1"
|
||||||
|
t_nr="$2"
|
||||||
|
t_entry="$3"
|
||||||
|
|
||||||
|
while [ $t_nxt -lt $t_nr ]; do
|
||||||
|
printf "__SYSCALL(%s, sys_nis_syscall, )\n" "${t_nxt}"
|
||||||
|
t_nxt=$((t_nxt+1))
|
||||||
|
done
|
||||||
|
printf "__SYSCALL(%s, %s, )\n" "${t_nxt}" "${t_entry}"
|
||||||
|
}
|
||||||
|
|
||||||
|
grep -E "^[0-9A-Fa-fXx]+[[:space:]]+${my_abis}" "$in" | sort -n | (
|
||||||
|
nxt=0
|
||||||
|
if [ -z "$offset" ]; then
|
||||||
|
offset=0
|
||||||
|
fi
|
||||||
|
|
||||||
|
while read nr abi name entry compat ; do
|
||||||
|
if [ "$my_abi" = "c32" ] && [ ! -z "$compat" ]; then
|
||||||
|
emit $((nxt+offset)) $((nr+offset)) $compat
|
||||||
|
else
|
||||||
|
emit $((nxt+offset)) $((nr+offset)) $entry
|
||||||
|
fi
|
||||||
|
nxt=$((nr+1))
|
||||||
|
done
|
||||||
|
) > "$out"
|
|
@ -9,85 +9,10 @@
|
||||||
* Copyright (C) 1995 Adrian M. Rodriguez (adrian@remus.rutgers.edu)
|
* Copyright (C) 1995 Adrian M. Rodriguez (adrian@remus.rutgers.edu)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#define __SYSCALL(nr, entry, nargs) .long entry
|
||||||
.data
|
.data
|
||||||
.align 4
|
.align 4
|
||||||
|
|
||||||
/* First, the Linux native syscall table. */
|
|
||||||
|
|
||||||
.globl sys_call_table
|
.globl sys_call_table
|
||||||
sys_call_table:
|
sys_call_table:
|
||||||
/*0*/ .long sys_restart_syscall, sys_exit, sys_fork, sys_read, sys_write
|
#include <asm/syscall_table_32.h> /* 32-bit native syscalls */
|
||||||
/*5*/ .long sys_open, sys_close, sys_wait4, sys_creat, sys_link
|
#undef __SYSCALL
|
||||||
/*10*/ .long sys_unlink, sunos_execv, sys_chdir, sys_chown16, sys_mknod
|
|
||||||
/*15*/ .long sys_chmod, sys_lchown16, sys_brk, sys_nis_syscall, sys_lseek
|
|
||||||
/*20*/ .long sys_getpid, sys_capget, sys_capset, sys_setuid16, sys_getuid16
|
|
||||||
/*25*/ .long sys_vmsplice, sys_ptrace, sys_alarm, sys_sigaltstack, sys_pause
|
|
||||||
/*30*/ .long sys_utime, sys_lchown, sys_fchown, sys_access, sys_nice
|
|
||||||
/*35*/ .long sys_chown, sys_sync, sys_kill, sys_newstat, sys_sendfile
|
|
||||||
/*40*/ .long sys_newlstat, sys_dup, sys_sparc_pipe, sys_times, sys_getuid
|
|
||||||
/*45*/ .long sys_umount, sys_setgid16, sys_getgid16, sys_signal, sys_geteuid16
|
|
||||||
/*50*/ .long sys_getegid16, sys_acct, sys_nis_syscall, sys_getgid, sys_ioctl
|
|
||||||
/*55*/ .long sys_reboot, sys_mmap2, sys_symlink, sys_readlink, sys_execve
|
|
||||||
/*60*/ .long sys_umask, sys_chroot, sys_newfstat, sys_fstat64, sys_getpagesize
|
|
||||||
/*65*/ .long sys_msync, sys_vfork, sys_pread64, sys_pwrite64, sys_geteuid
|
|
||||||
/*70*/ .long sys_getegid, sys_mmap, sys_setreuid, sys_munmap, sys_mprotect
|
|
||||||
/*75*/ .long sys_madvise, 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
|
|
||||||
/*95*/ .long sys_fsync, sys_setpriority, sys_socket, sys_connect, sys_accept
|
|
||||||
/*100*/ .long sys_getpriority, sys_rt_sigreturn, sys_rt_sigaction, sys_rt_sigprocmask, sys_rt_sigpending
|
|
||||||
/*105*/ .long sys_rt_sigtimedwait, sys_rt_sigqueueinfo, sys_rt_sigsuspend, sys_setresuid, sys_getresuid
|
|
||||||
/*110*/ .long sys_setresgid, sys_getresgid, sys_setregid, sys_recvmsg, sys_sendmsg
|
|
||||||
/*115*/ .long sys_getgroups, sys_gettimeofday, sys_getrusage, sys_getsockopt, sys_getcwd
|
|
||||||
/*120*/ .long sys_readv, sys_writev, sys_settimeofday, sys_fchown16, sys_fchmod
|
|
||||||
/*125*/ .long sys_recvfrom, sys_setreuid16, sys_setregid16, sys_rename, sys_truncate
|
|
||||||
/*130*/ .long sys_ftruncate, sys_flock, sys_lstat64, sys_sendto, sys_shutdown
|
|
||||||
/*135*/ .long sys_socketpair, sys_mkdir, sys_rmdir, sys_utimes, sys_stat64
|
|
||||||
/*140*/ .long sys_sendfile64, sys_getpeername, sys_futex, sys_gettid, sys_getrlimit
|
|
||||||
/*145*/ .long sys_setrlimit, sys_pivot_root, sys_prctl, sys_pciconfig_read, sys_pciconfig_write
|
|
||||||
/*150*/ .long sys_getsockname, sys_inotify_init, sys_inotify_add_watch, sys_poll, sys_getdents64
|
|
||||||
/*155*/ .long sys_fcntl64, sys_inotify_rm_watch, sys_statfs, sys_fstatfs, sys_oldumount
|
|
||||||
/*160*/ .long sys_sched_setaffinity, sys_sched_getaffinity, sys_getdomainname, sys_setdomainname, sys_nis_syscall
|
|
||||||
/*165*/ .long sys_quotactl, sys_set_tid_address, sys_mount, sys_ustat, sys_setxattr
|
|
||||||
/*170*/ .long sys_lsetxattr, sys_fsetxattr, sys_getxattr, sys_lgetxattr, sys_getdents
|
|
||||||
/*175*/ .long sys_setsid, sys_fchdir, sys_fgetxattr, sys_listxattr, sys_llistxattr
|
|
||||||
/*180*/ .long sys_flistxattr, sys_removexattr, sys_lremovexattr, sys_sigpending, sys_ni_syscall
|
|
||||||
/*185*/ .long sys_setpgid, sys_fremovexattr, sys_tkill, sys_exit_group, sys_newuname
|
|
||||||
/*190*/ .long sys_init_module, sys_personality, sys_sparc_remap_file_pages, sys_epoll_create, sys_epoll_ctl
|
|
||||||
/*195*/ .long sys_epoll_wait, sys_ioprio_set, sys_getppid, sys_sparc_sigaction, sys_sgetmask
|
|
||||||
/*200*/ .long sys_ssetmask, sys_sigsuspend, sys_newlstat, sys_uselib, sys_old_readdir
|
|
||||||
/*205*/ .long sys_readahead, sys_socketcall, sys_syslog, sys_lookup_dcookie, sys_fadvise64
|
|
||||||
/*210*/ .long sys_fadvise64_64, sys_tgkill, sys_waitpid, sys_swapoff, sys_sysinfo
|
|
||||||
/*215*/ .long sys_ipc, sys_sigreturn, sys_clone, sys_ioprio_get, sys_adjtimex
|
|
||||||
/*220*/ .long sys_sigprocmask, sys_ni_syscall, sys_delete_module, sys_ni_syscall, sys_getpgid
|
|
||||||
/*225*/ .long sys_bdflush, sys_sysfs, sys_nis_syscall, sys_setfsuid16, sys_setfsgid16
|
|
||||||
/*230*/ .long sys_select, sys_time, sys_splice, sys_stime, sys_statfs64
|
|
||||||
/* "We are the Knights of the Forest of Ni!!" */
|
|
||||||
/*235*/ .long sys_fstatfs64, sys_llseek, sys_mlock, sys_munlock, sys_mlockall
|
|
||||||
/*240*/ .long sys_munlockall, sys_sched_setparam, sys_sched_getparam, sys_sched_setscheduler, sys_sched_getscheduler
|
|
||||||
/*245*/ .long sys_sched_yield, sys_sched_get_priority_max, sys_sched_get_priority_min, sys_sched_rr_get_interval, sys_nanosleep
|
|
||||||
/*250*/ .long sys_mremap, sys_sysctl, sys_getsid, sys_fdatasync, sys_ni_syscall
|
|
||||||
/*255*/ .long sys_sync_file_range, sys_clock_settime, sys_clock_gettime, sys_clock_getres, sys_clock_nanosleep
|
|
||||||
/*260*/ .long sys_sched_getaffinity, sys_sched_setaffinity, sys_timer_settime, sys_timer_gettime, sys_timer_getoverrun
|
|
||||||
/*265*/ .long sys_timer_delete, sys_timer_create, sys_nis_syscall, sys_io_setup, sys_io_destroy
|
|
||||||
/*270*/ .long sys_io_submit, sys_io_cancel, sys_io_getevents, sys_mq_open, sys_mq_unlink
|
|
||||||
/*275*/ .long sys_mq_timedsend, sys_mq_timedreceive, sys_mq_notify, sys_mq_getsetattr, sys_waitid
|
|
||||||
/*280*/ .long sys_tee, sys_add_key, sys_request_key, sys_keyctl, sys_openat
|
|
||||||
/*285*/ .long sys_mkdirat, sys_mknodat, sys_fchownat, sys_futimesat, sys_fstatat64
|
|
||||||
/*290*/ .long sys_unlinkat, sys_renameat, sys_linkat, sys_symlinkat, sys_readlinkat
|
|
||||||
/*295*/ .long sys_fchmodat, sys_faccessat, sys_pselect6, sys_ppoll, sys_unshare
|
|
||||||
/*300*/ .long sys_set_robust_list, sys_get_robust_list, sys_migrate_pages, sys_mbind, sys_get_mempolicy
|
|
||||||
/*305*/ .long sys_set_mempolicy, sys_kexec_load, sys_move_pages, sys_getcpu, sys_epoll_pwait
|
|
||||||
/*310*/ .long sys_utimensat, sys_signalfd, sys_timerfd_create, sys_eventfd, sys_fallocate
|
|
||||||
/*315*/ .long sys_timerfd_settime, sys_timerfd_gettime, sys_signalfd4, sys_eventfd2, sys_epoll_create1
|
|
||||||
/*320*/ .long sys_dup3, sys_pipe2, sys_inotify_init1, sys_accept4, sys_preadv
|
|
||||||
/*325*/ .long sys_pwritev, sys_rt_tgsigqueueinfo, sys_perf_event_open, sys_recvmmsg, sys_fanotify_init
|
|
||||||
/*330*/ .long sys_fanotify_mark, sys_prlimit64, sys_name_to_handle_at, sys_open_by_handle_at, sys_clock_adjtime
|
|
||||||
/*335*/ .long sys_syncfs, sys_sendmmsg, sys_setns, sys_process_vm_readv, sys_process_vm_writev
|
|
||||||
/*340*/ .long sys_ni_syscall, sys_kcmp, sys_finit_module, sys_sched_setattr, sys_sched_getattr
|
|
||||||
/*345*/ .long sys_renameat2, sys_seccomp, sys_getrandom, sys_memfd_create, sys_bpf
|
|
||||||
/*350*/ .long sys_execveat, sys_membarrier, sys_userfaultfd, sys_bind, sys_listen
|
|
||||||
/*355*/ .long sys_setsockopt, sys_mlock2, sys_copy_file_range, sys_preadv2, sys_pwritev2
|
|
||||||
/*360*/ .long sys_statx, sys_io_pgetevents
|
|
||||||
|
|
|
@ -10,167 +10,18 @@
|
||||||
* Copyright (C) 1995 Adrian M. Rodriguez (adrian@remus.rutgers.edu)
|
* Copyright (C) 1995 Adrian M. Rodriguez (adrian@remus.rutgers.edu)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#define __SYSCALL(nr, entry, nargs) .word entry
|
||||||
.text
|
.text
|
||||||
.align 4
|
.align 4
|
||||||
|
|
||||||
#ifdef CONFIG_COMPAT
|
#ifdef CONFIG_COMPAT
|
||||||
/* First, the 32-bit Linux native syscall table. */
|
|
||||||
|
|
||||||
.globl sys_call_table32
|
.globl sys_call_table32
|
||||||
sys_call_table32:
|
sys_call_table32:
|
||||||
/*0*/ .word sys_restart_syscall, sparc_exit, sys_fork, sys_read, sys_write
|
#include <asm/syscall_table_c32.h> /* Compat syscalls */
|
||||||
/*5*/ .word compat_sys_open, sys_close, compat_sys_wait4, sys_creat, sys_link
|
|
||||||
/*10*/ .word sys_unlink, sunos_execv, sys_chdir, sys_chown16, sys_mknod
|
|
||||||
/*15*/ .word sys_chmod, sys_lchown16, sys_brk, sys_nis_syscall, compat_sys_lseek
|
|
||||||
/*20*/ .word sys_getpid, sys_capget, sys_capset, sys_setuid16, sys_getuid16
|
|
||||||
/*25*/ .word compat_sys_vmsplice, compat_sys_ptrace, sys_alarm, compat_sys_sigaltstack, sys_pause
|
|
||||||
/*30*/ .word compat_sys_utime, sys_lchown, sys_fchown, sys_access, sys_nice
|
|
||||||
.word sys_chown, sys_sync, sys_kill, compat_sys_newstat, compat_sys_sendfile
|
|
||||||
/*40*/ .word compat_sys_newlstat, sys_dup, sys_sparc_pipe, compat_sys_times, sys_getuid
|
|
||||||
.word sys_umount, sys_setgid16, sys_getgid16, sys_signal, sys_geteuid16
|
|
||||||
/*50*/ .word sys_getegid16, sys_acct, sys_nis_syscall, sys_getgid, compat_sys_ioctl
|
|
||||||
.word sys_reboot, sys32_mmap2, sys_symlink, sys_readlink, sys32_execve
|
|
||||||
/*60*/ .word sys_umask, sys_chroot, compat_sys_newfstat, compat_sys_fstat64, sys_getpagesize
|
|
||||||
.word sys_msync, sys_vfork, compat_sys_pread64, compat_sys_pwrite64, sys_geteuid
|
|
||||||
/*70*/ .word sys_getegid, sys_mmap, sys_setreuid, sys_munmap, sys_mprotect
|
|
||||||
.word sys_madvise, sys_vhangup, compat_sys_truncate64, sys_mincore, sys_getgroups16
|
|
||||||
/*80*/ .word sys_setgroups16, sys_getpgrp, sys_setgroups, compat_sys_setitimer, compat_sys_ftruncate64
|
|
||||||
.word sys_swapon, compat_sys_getitimer, sys_setuid, sys_sethostname, sys_setgid
|
|
||||||
/*90*/ .word sys_dup2, sys_setfsuid, compat_sys_fcntl, compat_sys_select, sys_setfsgid
|
|
||||||
.word sys_fsync, sys_setpriority, sys_socket, sys_connect, sys_accept
|
|
||||||
/*100*/ .word sys_getpriority, sys32_rt_sigreturn, compat_sys_rt_sigaction, compat_sys_rt_sigprocmask, compat_sys_rt_sigpending
|
|
||||||
.word compat_sys_rt_sigtimedwait, compat_sys_rt_sigqueueinfo, compat_sys_rt_sigsuspend, sys_setresuid, sys_getresuid
|
|
||||||
/*110*/ .word sys_setresgid, sys_getresgid, sys_setregid, compat_sys_recvmsg, compat_sys_sendmsg
|
|
||||||
.word sys_getgroups, compat_sys_gettimeofday, compat_sys_getrusage, compat_sys_getsockopt, sys_getcwd
|
|
||||||
/*120*/ .word compat_sys_readv, compat_sys_writev, compat_sys_settimeofday, sys_fchown16, sys_fchmod
|
|
||||||
.word sys_recvfrom, sys_setreuid16, sys_setregid16, sys_rename, compat_sys_truncate
|
|
||||||
/*130*/ .word compat_sys_ftruncate, sys_flock, compat_sys_lstat64, sys_sendto, sys_shutdown
|
|
||||||
.word sys_socketpair, sys_mkdir, sys_rmdir, compat_sys_utimes, compat_sys_stat64
|
|
||||||
/*140*/ .word sys_sendfile64, sys_getpeername, compat_sys_futex, sys_gettid, compat_sys_getrlimit
|
|
||||||
.word compat_sys_setrlimit, sys_pivot_root, sys_prctl, sys_pciconfig_read, sys_pciconfig_write
|
|
||||||
/*150*/ .word sys_getsockname, sys_inotify_init, sys_inotify_add_watch, sys_poll, sys_getdents64
|
|
||||||
.word compat_sys_fcntl64, sys_inotify_rm_watch, compat_sys_statfs, compat_sys_fstatfs, sys_oldumount
|
|
||||||
/*160*/ .word compat_sys_sched_setaffinity, compat_sys_sched_getaffinity, sys_getdomainname, sys_setdomainname, sys_nis_syscall
|
|
||||||
.word sys_quotactl, sys_set_tid_address, compat_sys_mount, compat_sys_ustat, sys_setxattr
|
|
||||||
/*170*/ .word sys_lsetxattr, sys_fsetxattr, sys_getxattr, sys_lgetxattr, compat_sys_getdents
|
|
||||||
.word sys_setsid, sys_fchdir, sys_fgetxattr, sys_listxattr, sys_llistxattr
|
|
||||||
/*180*/ .word sys_flistxattr, sys_removexattr, sys_lremovexattr, compat_sys_sigpending, sys_ni_syscall
|
|
||||||
.word sys_setpgid, sys_fremovexattr, sys_tkill, sparc_exit_group, sys_newuname
|
|
||||||
/*190*/ .word sys_init_module, sys_sparc64_personality, sys_remap_file_pages, sys_epoll_create, sys_epoll_ctl
|
|
||||||
.word sys_epoll_wait, sys_ioprio_set, sys_getppid, compat_sys_sparc_sigaction, sys_sgetmask
|
|
||||||
/*200*/ .word sys_ssetmask, sys_sigsuspend, compat_sys_newlstat, sys_uselib, compat_sys_old_readdir
|
|
||||||
.word compat_sys_readahead, sys32_socketcall, sys_syslog, compat_sys_lookup_dcookie, compat_sys_fadvise64
|
|
||||||
/*210*/ .word compat_sys_fadvise64_64, sys_tgkill, sys_waitpid, sys_swapoff, compat_sys_sysinfo
|
|
||||||
.word compat_sys_ipc, sys32_sigreturn, sys_clone, sys_ioprio_get, compat_sys_adjtimex
|
|
||||||
/*220*/ .word compat_sys_sigprocmask, sys_ni_syscall, sys_delete_module, sys_ni_syscall, sys_getpgid
|
|
||||||
.word sys_bdflush, sys_sysfs, sys_nis_syscall, sys_setfsuid16, sys_setfsgid16
|
|
||||||
/*230*/ .word compat_sys_select, compat_sys_time, sys_splice, compat_sys_stime, compat_sys_statfs64
|
|
||||||
.word compat_sys_fstatfs64, sys_llseek, sys_mlock, sys_munlock, sys_mlockall
|
|
||||||
/*240*/ .word sys_munlockall, sys_sched_setparam, sys_sched_getparam, sys_sched_setscheduler, sys_sched_getscheduler
|
|
||||||
.word sys_sched_yield, sys_sched_get_priority_max, sys_sched_get_priority_min, compat_sys_sched_rr_get_interval, compat_sys_nanosleep
|
|
||||||
/*250*/ .word sys_mremap, compat_sys_sysctl, sys_getsid, sys_fdatasync, sys_nis_syscall
|
|
||||||
.word compat_sys_sync_file_range, compat_sys_clock_settime, compat_sys_clock_gettime, compat_sys_clock_getres, compat_sys_clock_nanosleep
|
|
||||||
/*260*/ .word compat_sys_sched_getaffinity, compat_sys_sched_setaffinity, compat_sys_timer_settime, compat_sys_timer_gettime, sys_timer_getoverrun
|
|
||||||
.word sys_timer_delete, compat_sys_timer_create, sys_ni_syscall, compat_sys_io_setup, sys_io_destroy
|
|
||||||
/*270*/ .word compat_sys_io_submit, sys_io_cancel, compat_sys_io_getevents, compat_sys_mq_open, sys_mq_unlink
|
|
||||||
.word compat_sys_mq_timedsend, compat_sys_mq_timedreceive, compat_sys_mq_notify, compat_sys_mq_getsetattr, compat_sys_waitid
|
|
||||||
/*280*/ .word sys_tee, sys_add_key, sys_request_key, compat_sys_keyctl, compat_sys_openat
|
|
||||||
.word sys_mkdirat, sys_mknodat, sys_fchownat, compat_sys_futimesat, compat_sys_fstatat64
|
|
||||||
/*290*/ .word sys_unlinkat, sys_renameat, sys_linkat, sys_symlinkat, sys_readlinkat
|
|
||||||
.word sys_fchmodat, sys_faccessat, compat_sys_pselect6, compat_sys_ppoll, sys_unshare
|
|
||||||
/*300*/ .word compat_sys_set_robust_list, compat_sys_get_robust_list, compat_sys_migrate_pages, compat_sys_mbind, compat_sys_get_mempolicy
|
|
||||||
.word compat_sys_set_mempolicy, compat_sys_kexec_load, compat_sys_move_pages, sys_getcpu, compat_sys_epoll_pwait
|
|
||||||
/*310*/ .word compat_sys_utimensat, compat_sys_signalfd, sys_timerfd_create, sys_eventfd, compat_sys_fallocate
|
|
||||||
.word compat_sys_timerfd_settime, compat_sys_timerfd_gettime, compat_sys_signalfd4, sys_eventfd2, sys_epoll_create1
|
|
||||||
/*320*/ .word sys_dup3, sys_pipe2, sys_inotify_init1, sys_accept4, compat_sys_preadv
|
|
||||||
.word compat_sys_pwritev, compat_sys_rt_tgsigqueueinfo, sys_perf_event_open, compat_sys_recvmmsg, sys_fanotify_init
|
|
||||||
/*330*/ .word compat_sys_fanotify_mark, sys_prlimit64, sys_name_to_handle_at, compat_sys_open_by_handle_at, compat_sys_clock_adjtime
|
|
||||||
.word sys_syncfs, compat_sys_sendmmsg, sys_setns, compat_sys_process_vm_readv, compat_sys_process_vm_writev
|
|
||||||
/*340*/ .word sys_kern_features, sys_kcmp, sys_finit_module, sys_sched_setattr, sys_sched_getattr
|
|
||||||
.word sys_renameat2, sys_seccomp, sys_getrandom, sys_memfd_create, sys_bpf
|
|
||||||
/*350*/ .word sys32_execveat, sys_membarrier, sys_userfaultfd, sys_bind, sys_listen
|
|
||||||
.word compat_sys_setsockopt, sys_mlock2, sys_copy_file_range, compat_sys_preadv2, compat_sys_pwritev2
|
|
||||||
/*360*/ .word sys_statx, compat_sys_io_pgetevents
|
|
||||||
|
|
||||||
#endif /* CONFIG_COMPAT */
|
#endif /* CONFIG_COMPAT */
|
||||||
|
|
||||||
/* Now the 64-bit native Linux syscall table. */
|
|
||||||
|
|
||||||
.align 4
|
.align 4
|
||||||
.globl sys_call_table64, sys_call_table
|
.globl sys_call_table64, sys_call_table
|
||||||
sys_call_table64:
|
sys_call_table64:
|
||||||
sys_call_table:
|
sys_call_table:
|
||||||
/*0*/ .word sys_restart_syscall, sparc_exit, sys_fork, sys_read, sys_write
|
#include <asm/syscall_table_64.h> /* 64-bit native syscalls */
|
||||||
/*5*/ .word sys_open, sys_close, sys_wait4, sys_creat, sys_link
|
#undef __SYSCALL
|
||||||
/*10*/ .word sys_unlink, sys_nis_syscall, sys_chdir, sys_chown, sys_mknod
|
|
||||||
/*15*/ .word sys_chmod, sys_lchown, sys_brk, sys_nis_syscall, sys_lseek
|
|
||||||
/*20*/ .word sys_getpid, sys_capget, sys_capset, sys_setuid, sys_getuid
|
|
||||||
/*25*/ .word sys_vmsplice, sys_ptrace, sys_alarm, sys_sigaltstack, sys_nis_syscall
|
|
||||||
/*30*/ .word sys_utime, sys_nis_syscall, sys_nis_syscall, sys_access, sys_nice
|
|
||||||
.word sys_nis_syscall, sys_sync, sys_kill, sys_newstat, sys_sendfile64
|
|
||||||
/*40*/ .word sys_newlstat, sys_dup, sys_sparc_pipe, sys_times, sys_nis_syscall
|
|
||||||
.word sys_umount, sys_setgid, sys_getgid, sys_signal, sys_geteuid
|
|
||||||
/*50*/ .word sys_getegid, sys_acct, sys_memory_ordering, sys_nis_syscall, sys_ioctl
|
|
||||||
.word sys_reboot, sys_nis_syscall, sys_symlink, sys_readlink, sys64_execve
|
|
||||||
/*60*/ .word sys_umask, sys_chroot, sys_newfstat, sys_fstat64, sys_getpagesize
|
|
||||||
.word sys_msync, sys_vfork, sys_pread64, sys_pwrite64, sys_nis_syscall
|
|
||||||
/*70*/ .word sys_nis_syscall, sys_mmap, sys_nis_syscall, sys_64_munmap, sys_mprotect
|
|
||||||
.word sys_madvise, sys_vhangup, sys_nis_syscall, sys_mincore, sys_getgroups
|
|
||||||
/*80*/ .word sys_setgroups, sys_getpgrp, sys_nis_syscall, sys_setitimer, sys_nis_syscall
|
|
||||||
.word sys_swapon, sys_getitimer, sys_nis_syscall, sys_sethostname, sys_nis_syscall
|
|
||||||
/*90*/ .word sys_dup2, sys_nis_syscall, sys_fcntl, sys_select, sys_nis_syscall
|
|
||||||
.word sys_fsync, sys_setpriority, sys_socket, sys_connect, sys_accept
|
|
||||||
/*100*/ .word sys_getpriority, sys_rt_sigreturn, sys_rt_sigaction, sys_rt_sigprocmask, sys_rt_sigpending
|
|
||||||
.word sys_rt_sigtimedwait, sys_rt_sigqueueinfo, sys_rt_sigsuspend, sys_setresuid, sys_getresuid
|
|
||||||
/*110*/ .word sys_setresgid, sys_getresgid, sys_nis_syscall, sys_recvmsg, sys_sendmsg
|
|
||||||
.word sys_nis_syscall, sys_gettimeofday, sys_getrusage, sys_getsockopt, sys_getcwd
|
|
||||||
/*120*/ .word sys_readv, sys_writev, sys_settimeofday, sys_fchown, sys_fchmod
|
|
||||||
.word sys_recvfrom, sys_setreuid, sys_setregid, sys_rename, sys_truncate
|
|
||||||
/*130*/ .word sys_ftruncate, sys_flock, sys_lstat64, sys_sendto, sys_shutdown
|
|
||||||
.word sys_socketpair, sys_mkdir, sys_rmdir, sys_utimes, sys_stat64
|
|
||||||
/*140*/ .word sys_sendfile64, sys_getpeername, sys_futex, sys_gettid, sys_getrlimit
|
|
||||||
.word sys_setrlimit, sys_pivot_root, sys_prctl, sys_pciconfig_read, sys_pciconfig_write
|
|
||||||
/*150*/ .word sys_getsockname, sys_inotify_init, sys_inotify_add_watch, sys_poll, sys_getdents64
|
|
||||||
.word sys_nis_syscall, sys_inotify_rm_watch, sys_statfs, sys_fstatfs, sys_oldumount
|
|
||||||
/*160*/ .word sys_sched_setaffinity, sys_sched_getaffinity, sys_getdomainname, sys_setdomainname, sys_utrap_install
|
|
||||||
.word sys_quotactl, sys_set_tid_address, sys_mount, sys_ustat, sys_setxattr
|
|
||||||
/*170*/ .word sys_lsetxattr, sys_fsetxattr, sys_getxattr, sys_lgetxattr, sys_getdents
|
|
||||||
.word sys_setsid, sys_fchdir, sys_fgetxattr, sys_listxattr, sys_llistxattr
|
|
||||||
/*180*/ .word sys_flistxattr, sys_removexattr, sys_lremovexattr, sys_nis_syscall, sys_ni_syscall
|
|
||||||
.word sys_setpgid, sys_fremovexattr, sys_tkill, sparc_exit_group, sys_newuname
|
|
||||||
/*190*/ .word sys_init_module, sys_sparc64_personality, sys_remap_file_pages, sys_epoll_create, sys_epoll_ctl
|
|
||||||
.word sys_epoll_wait, sys_ioprio_set, sys_getppid, sys_nis_syscall, sys_sgetmask
|
|
||||||
/*200*/ .word sys_ssetmask, sys_nis_syscall, sys_newlstat, sys_uselib, sys_nis_syscall
|
|
||||||
.word sys_readahead, sys_socketcall, sys_syslog, sys_lookup_dcookie, sys_fadvise64
|
|
||||||
/*210*/ .word sys_fadvise64_64, sys_tgkill, sys_waitpid, sys_swapoff, sys_sysinfo
|
|
||||||
.word sys_sparc_ipc, sys_nis_syscall, sys_clone, sys_ioprio_get, sys_adjtimex
|
|
||||||
/*220*/ .word sys_nis_syscall, sys_ni_syscall, sys_delete_module, sys_ni_syscall, sys_getpgid
|
|
||||||
.word sys_bdflush, sys_sysfs, sys_nis_syscall, sys_setfsuid, sys_setfsgid
|
|
||||||
/*230*/ .word sys_select, sys_nis_syscall, sys_splice, sys_stime, sys_statfs64
|
|
||||||
.word sys_fstatfs64, sys_llseek, sys_mlock, sys_munlock, sys_mlockall
|
|
||||||
/*240*/ .word sys_munlockall, sys_sched_setparam, sys_sched_getparam, sys_sched_setscheduler, sys_sched_getscheduler
|
|
||||||
.word sys_sched_yield, sys_sched_get_priority_max, sys_sched_get_priority_min, sys_sched_rr_get_interval, sys_nanosleep
|
|
||||||
/*250*/ .word sys_64_mremap, sys_sysctl, sys_getsid, sys_fdatasync, sys_nis_syscall
|
|
||||||
.word sys_sync_file_range, sys_clock_settime, sys_clock_gettime, sys_clock_getres, sys_clock_nanosleep
|
|
||||||
/*260*/ .word sys_sched_getaffinity, sys_sched_setaffinity, sys_timer_settime, sys_timer_gettime, sys_timer_getoverrun
|
|
||||||
.word sys_timer_delete, sys_timer_create, sys_ni_syscall, sys_io_setup, sys_io_destroy
|
|
||||||
/*270*/ .word sys_io_submit, sys_io_cancel, sys_io_getevents, sys_mq_open, sys_mq_unlink
|
|
||||||
.word sys_mq_timedsend, sys_mq_timedreceive, sys_mq_notify, sys_mq_getsetattr, sys_waitid
|
|
||||||
/*280*/ .word sys_tee, sys_add_key, sys_request_key, sys_keyctl, sys_openat
|
|
||||||
.word sys_mkdirat, sys_mknodat, sys_fchownat, sys_futimesat, sys_fstatat64
|
|
||||||
/*290*/ .word sys_unlinkat, sys_renameat, sys_linkat, sys_symlinkat, sys_readlinkat
|
|
||||||
.word sys_fchmodat, sys_faccessat, sys_pselect6, sys_ppoll, sys_unshare
|
|
||||||
/*300*/ .word sys_set_robust_list, sys_get_robust_list, sys_migrate_pages, sys_mbind, sys_get_mempolicy
|
|
||||||
.word sys_set_mempolicy, sys_kexec_load, sys_move_pages, sys_getcpu, sys_epoll_pwait
|
|
||||||
/*310*/ .word sys_utimensat, sys_signalfd, sys_timerfd_create, sys_eventfd, sys_fallocate
|
|
||||||
.word sys_timerfd_settime, sys_timerfd_gettime, sys_signalfd4, sys_eventfd2, sys_epoll_create1
|
|
||||||
/*320*/ .word sys_dup3, sys_pipe2, sys_inotify_init1, sys_accept4, sys_preadv
|
|
||||||
.word sys_pwritev, sys_rt_tgsigqueueinfo, sys_perf_event_open, sys_recvmmsg, sys_fanotify_init
|
|
||||||
/*330*/ .word sys_fanotify_mark, sys_prlimit64, sys_name_to_handle_at, sys_open_by_handle_at, sys_clock_adjtime
|
|
||||||
.word sys_syncfs, sys_sendmmsg, sys_setns, sys_process_vm_readv, sys_process_vm_writev
|
|
||||||
/*340*/ .word sys_kern_features, sys_kcmp, sys_finit_module, sys_sched_setattr, sys_sched_getattr
|
|
||||||
.word sys_renameat2, sys_seccomp, sys_getrandom, sys_memfd_create, sys_bpf
|
|
||||||
/*350*/ .word sys64_execveat, sys_membarrier, sys_userfaultfd, sys_bind, sys_listen
|
|
||||||
.word sys_setsockopt, sys_mlock2, sys_copy_file_range, sys_preadv2, sys_pwritev2
|
|
||||||
/*360*/ .word sys_statx, sys_io_pgetevents
|
|
||||||
|
|
|
@ -445,8 +445,8 @@ static int rtc_probe(struct platform_device *op)
|
||||||
{
|
{
|
||||||
struct resource *r;
|
struct resource *r;
|
||||||
|
|
||||||
printk(KERN_INFO "%s: RTC regs at 0x%llx\n",
|
printk(KERN_INFO "%pOF: RTC regs at 0x%llx\n",
|
||||||
op->dev.of_node->full_name, op->resource[0].start);
|
op->dev.of_node, op->resource[0].start);
|
||||||
|
|
||||||
/* The CMOS RTC driver only accepts IORESOURCE_IO, so cons
|
/* The CMOS RTC driver only accepts IORESOURCE_IO, so cons
|
||||||
* up a fake resource so that the probe works for all cases.
|
* up a fake resource so that the probe works for all cases.
|
||||||
|
@ -501,8 +501,8 @@ static struct platform_device rtc_bq4802_device = {
|
||||||
static int bq4802_probe(struct platform_device *op)
|
static int bq4802_probe(struct platform_device *op)
|
||||||
{
|
{
|
||||||
|
|
||||||
printk(KERN_INFO "%s: BQ4802 regs at 0x%llx\n",
|
printk(KERN_INFO "%pOF: BQ4802 regs at 0x%llx\n",
|
||||||
op->dev.of_node->full_name, op->resource[0].start);
|
op->dev.of_node, op->resource[0].start);
|
||||||
|
|
||||||
rtc_bq4802_device.resource = &op->resource[0];
|
rtc_bq4802_device.resource = &op->resource[0];
|
||||||
return platform_device_register(&rtc_bq4802_device);
|
return platform_device_register(&rtc_bq4802_device);
|
||||||
|
@ -561,12 +561,12 @@ static int mostek_probe(struct platform_device *op)
|
||||||
/* On an Enterprise system there can be multiple mostek clocks.
|
/* On an Enterprise system there can be multiple mostek clocks.
|
||||||
* We should only match the one that is on the central FHC bus.
|
* We should only match the one that is on the central FHC bus.
|
||||||
*/
|
*/
|
||||||
if (!strcmp(dp->parent->name, "fhc") &&
|
if (of_node_name_eq(dp->parent, "fhc") &&
|
||||||
strcmp(dp->parent->parent->name, "central") != 0)
|
!of_node_name_eq(dp->parent->parent, "central"))
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
|
||||||
printk(KERN_INFO "%s: Mostek regs at 0x%llx\n",
|
printk(KERN_INFO "%pOF: Mostek regs at 0x%llx\n",
|
||||||
dp->full_name, op->resource[0].start);
|
dp, op->resource[0].start);
|
||||||
|
|
||||||
m48t59_rtc.resource = &op->resource[0];
|
m48t59_rtc.resource = &op->resource[0];
|
||||||
return platform_device_register(&m48t59_rtc);
|
return platform_device_register(&m48t59_rtc);
|
||||||
|
|
|
@ -193,7 +193,7 @@ show_pciobppath_attr(struct device *dev, struct device_attribute *attr,
|
||||||
vdev = to_vio_dev(dev);
|
vdev = to_vio_dev(dev);
|
||||||
dp = vdev->dp;
|
dp = vdev->dp;
|
||||||
|
|
||||||
return snprintf (buf, PAGE_SIZE, "%s\n", dp->full_name);
|
return snprintf (buf, PAGE_SIZE, "%pOF\n", dp);
|
||||||
}
|
}
|
||||||
|
|
||||||
static DEVICE_ATTR(obppath, S_IRUSR | S_IRGRP | S_IROTH,
|
static DEVICE_ATTR(obppath, S_IRUSR | S_IRGRP | S_IROTH,
|
||||||
|
@ -366,12 +366,9 @@ static struct vio_dev *vio_create_one(struct mdesc_handle *hp, u64 mp,
|
||||||
if (parent == NULL) {
|
if (parent == NULL) {
|
||||||
dp = cdev_node;
|
dp = cdev_node;
|
||||||
} else if (to_vio_dev(parent) == root_vdev) {
|
} else if (to_vio_dev(parent) == root_vdev) {
|
||||||
dp = of_get_next_child(cdev_node, NULL);
|
for_each_child_of_node(cdev_node, dp) {
|
||||||
while (dp) {
|
if (of_node_is_type(dp, type))
|
||||||
if (!strcmp(dp->type, type))
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
dp = of_get_next_child(cdev_node, dp);
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
dp = to_vio_dev(parent)->dp;
|
dp = to_vio_dev(parent)->dp;
|
||||||
|
|
|
@ -32,24 +32,7 @@ unsigned int of_pdt_unique_id __initdata;
|
||||||
|
|
||||||
static char * __init of_pdt_build_full_name(struct device_node *dp)
|
static char * __init of_pdt_build_full_name(struct device_node *dp)
|
||||||
{
|
{
|
||||||
int len, ourlen, plen;
|
return build_path_component(dp);
|
||||||
char *n;
|
|
||||||
|
|
||||||
dp->path_component_name = build_path_component(dp);
|
|
||||||
|
|
||||||
plen = strlen(dp->parent->full_name);
|
|
||||||
ourlen = strlen(dp->path_component_name);
|
|
||||||
len = ourlen + plen + 2;
|
|
||||||
|
|
||||||
n = prom_early_alloc(len);
|
|
||||||
strcpy(n, dp->parent->full_name);
|
|
||||||
if (!of_node_is_root(dp->parent)) {
|
|
||||||
strcpy(n + plen, "/");
|
|
||||||
plen++;
|
|
||||||
}
|
|
||||||
strcpy(n + plen, dp->path_component_name);
|
|
||||||
|
|
||||||
return n;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#else /* CONFIG_SPARC */
|
#else /* CONFIG_SPARC */
|
||||||
|
@ -60,23 +43,21 @@ static inline void irq_trans_init(struct device_node *dp) { }
|
||||||
static char * __init of_pdt_build_full_name(struct device_node *dp)
|
static char * __init of_pdt_build_full_name(struct device_node *dp)
|
||||||
{
|
{
|
||||||
static int failsafe_id = 0; /* for generating unique names on failure */
|
static int failsafe_id = 0; /* for generating unique names on failure */
|
||||||
|
const char *name;
|
||||||
|
char path[256];
|
||||||
char *buf;
|
char *buf;
|
||||||
int len;
|
int len;
|
||||||
|
|
||||||
if (of_pdt_prom_ops->pkg2path(dp->phandle, NULL, 0, &len))
|
if (!of_pdt_prom_ops->pkg2path(dp->phandle, path, sizeof(path), &len)) {
|
||||||
goto failsafe;
|
name = kbasename(path);
|
||||||
|
buf = prom_early_alloc(strlen(name) + 1);
|
||||||
buf = prom_early_alloc(len + 1);
|
strcpy(buf, name);
|
||||||
if (of_pdt_prom_ops->pkg2path(dp->phandle, buf, len, &len))
|
|
||||||
goto failsafe;
|
|
||||||
return buf;
|
return buf;
|
||||||
|
}
|
||||||
|
|
||||||
failsafe:
|
name = of_get_property(dp, "name", &len);
|
||||||
buf = prom_early_alloc(strlen(dp->parent->full_name) +
|
buf = prom_early_alloc(len + 16);
|
||||||
strlen(dp->name) + 16);
|
sprintf(buf, "%s@unknown%i", name, failsafe_id++);
|
||||||
sprintf(buf, "%s/%s@unknown%i",
|
|
||||||
of_node_is_root(dp->parent) ? "" : dp->parent->full_name,
|
|
||||||
dp->name, failsafe_id++);
|
|
||||||
pr_err("%s: pkg2path failed; assigning %s\n", __func__, buf);
|
pr_err("%s: pkg2path failed; assigning %s\n", __func__, buf);
|
||||||
return buf;
|
return buf;
|
||||||
}
|
}
|
||||||
|
@ -181,6 +162,8 @@ static struct device_node * __init of_pdt_create_node(phandle node,
|
||||||
|
|
||||||
dp->properties = of_pdt_build_prop_list(node);
|
dp->properties = of_pdt_build_prop_list(node);
|
||||||
|
|
||||||
|
dp->full_name = of_pdt_build_full_name(dp);
|
||||||
|
|
||||||
irq_trans_init(dp);
|
irq_trans_init(dp);
|
||||||
|
|
||||||
return dp;
|
return dp;
|
||||||
|
@ -204,8 +187,6 @@ static struct device_node * __init of_pdt_build_tree(struct device_node *parent,
|
||||||
ret = dp;
|
ret = dp;
|
||||||
prev_sibling = dp;
|
prev_sibling = dp;
|
||||||
|
|
||||||
dp->full_name = of_pdt_build_full_name(dp);
|
|
||||||
|
|
||||||
dp->child = of_pdt_build_tree(dp, of_pdt_prom_ops->getchild(node));
|
dp->child = of_pdt_build_tree(dp, of_pdt_prom_ops->getchild(node));
|
||||||
|
|
||||||
if (of_pdt_build_more)
|
if (of_pdt_build_more)
|
||||||
|
@ -228,9 +209,6 @@ void __init of_pdt_build_devicetree(phandle root_node, struct of_pdt_ops *ops)
|
||||||
of_pdt_prom_ops = ops;
|
of_pdt_prom_ops = ops;
|
||||||
|
|
||||||
of_root = of_pdt_create_node(root_node, NULL);
|
of_root = of_pdt_create_node(root_node, NULL);
|
||||||
#if defined(CONFIG_SPARC)
|
|
||||||
of_root->path_component_name = "";
|
|
||||||
#endif
|
|
||||||
of_root->full_name = "/";
|
of_root->full_name = "/";
|
||||||
|
|
||||||
of_root->child = of_pdt_build_tree(of_root,
|
of_root->child = of_pdt_build_tree(of_root,
|
||||||
|
|
|
@ -571,9 +571,9 @@ int bbc_envctrl_init(struct bbc_i2c_bus *bp)
|
||||||
int devidx = 0;
|
int devidx = 0;
|
||||||
|
|
||||||
while ((op = bbc_i2c_getdev(bp, devidx++)) != NULL) {
|
while ((op = bbc_i2c_getdev(bp, devidx++)) != NULL) {
|
||||||
if (!strcmp(op->dev.of_node->name, "temperature"))
|
if (of_node_name_eq(op->dev.of_node, "temperature"))
|
||||||
attach_one_temp(bp, op, temp_index++);
|
attach_one_temp(bp, op, temp_index++);
|
||||||
if (!strcmp(op->dev.of_node->name, "fan-control"))
|
if (of_node_name_eq(op->dev.of_node, "fan-control"))
|
||||||
attach_one_fan(bp, op, fan_index++);
|
attach_one_fan(bp, op, fan_index++);
|
||||||
}
|
}
|
||||||
if (temp_index != 0 && fan_index != 0) {
|
if (temp_index != 0 && fan_index != 0) {
|
||||||
|
|
|
@ -906,7 +906,7 @@ static void envctrl_init_i2c_child(struct device_node *dp,
|
||||||
int len;
|
int len;
|
||||||
|
|
||||||
root_node = of_find_node_by_path("/");
|
root_node = of_find_node_by_path("/");
|
||||||
if (!strcmp(root_node->name, "SUNW,UltraSPARC-IIi-cEngine")) {
|
if (of_node_name_eq(root_node, "SUNW,UltraSPARC-IIi-cEngine")) {
|
||||||
for (len = 0; len < PCF8584_MAX_CHANNELS; ++len) {
|
for (len = 0; len < PCF8584_MAX_CHANNELS; ++len) {
|
||||||
pchild->mon_type[len] = ENVCTRL_NOMON;
|
pchild->mon_type[len] = ENVCTRL_NOMON;
|
||||||
}
|
}
|
||||||
|
@ -1039,10 +1039,10 @@ static int envctrl_probe(struct platform_device *op)
|
||||||
index = 0;
|
index = 0;
|
||||||
dp = op->dev.of_node->child;
|
dp = op->dev.of_node->child;
|
||||||
while (dp) {
|
while (dp) {
|
||||||
if (!strcmp(dp->name, "gpio")) {
|
if (of_node_name_eq(dp, "gpio")) {
|
||||||
i2c_childlist[index].i2ctype = I2C_GPIO;
|
i2c_childlist[index].i2ctype = I2C_GPIO;
|
||||||
envctrl_init_i2c_child(dp, &(i2c_childlist[index++]));
|
envctrl_init_i2c_child(dp, &(i2c_childlist[index++]));
|
||||||
} else if (!strcmp(dp->name, "adc")) {
|
} else if (of_node_name_eq(dp, "adc")) {
|
||||||
i2c_childlist[index].i2ctype = I2C_ADC;
|
i2c_childlist[index].i2ctype = I2C_ADC;
|
||||||
envctrl_init_i2c_child(dp, &(i2c_childlist[index++]));
|
envctrl_init_i2c_child(dp, &(i2c_childlist[index++]));
|
||||||
}
|
}
|
||||||
|
|
|
@ -165,9 +165,9 @@ static int flash_probe(struct platform_device *op)
|
||||||
|
|
||||||
parent = dp->parent;
|
parent = dp->parent;
|
||||||
|
|
||||||
if (strcmp(parent->name, "sbus") &&
|
if (!of_node_name_eq(parent, "sbus") &&
|
||||||
strcmp(parent->name, "sbi") &&
|
!of_node_name_eq(parent, "sbi") &&
|
||||||
strcmp(parent->name, "ebus"))
|
!of_node_name_eq(parent, "ebus"))
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
|
||||||
flash.read_base = op->resource[0].start;
|
flash.read_base = op->resource[0].start;
|
||||||
|
|
|
@ -199,10 +199,11 @@ static struct dentry *openpromfs_lookup(struct inode *dir, struct dentry *dentry
|
||||||
|
|
||||||
child = dp->child;
|
child = dp->child;
|
||||||
while (child) {
|
while (child) {
|
||||||
int n = strlen(child->path_component_name);
|
const char *node_name = kbasename(child->full_name);
|
||||||
|
int n = strlen(node_name);
|
||||||
|
|
||||||
if (len == n &&
|
if (len == n &&
|
||||||
!strncmp(child->path_component_name, name, len)) {
|
!strncmp(node_name, name, len)) {
|
||||||
ent_type = op_inode_node;
|
ent_type = op_inode_node;
|
||||||
ent_data.node = child;
|
ent_data.node = child;
|
||||||
ino = child->unique_id;
|
ino = child->unique_id;
|
||||||
|
@ -245,7 +246,7 @@ found:
|
||||||
set_nlink(inode, 2);
|
set_nlink(inode, 2);
|
||||||
break;
|
break;
|
||||||
case op_inode_prop:
|
case op_inode_prop:
|
||||||
if (!strcmp(dp->name, "options") && (len == 17) &&
|
if (of_node_name_eq(dp, "options") && (len == 17) &&
|
||||||
!strncmp (name, "security-password", 17))
|
!strncmp (name, "security-password", 17))
|
||||||
inode->i_mode = S_IFREG | S_IRUSR | S_IWUSR;
|
inode->i_mode = S_IFREG | S_IRUSR | S_IWUSR;
|
||||||
else
|
else
|
||||||
|
@ -293,8 +294,8 @@ static int openpromfs_readdir(struct file *file, struct dir_context *ctx)
|
||||||
}
|
}
|
||||||
while (child) {
|
while (child) {
|
||||||
if (!dir_emit(ctx,
|
if (!dir_emit(ctx,
|
||||||
child->path_component_name,
|
kbasename(child->full_name),
|
||||||
strlen(child->path_component_name),
|
strlen(kbasename(child->full_name)),
|
||||||
child->unique_id, DT_DIR))
|
child->unique_id, DT_DIR))
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
|
|
|
@ -66,7 +66,6 @@ struct device_node {
|
||||||
unsigned long _flags;
|
unsigned long _flags;
|
||||||
void *data;
|
void *data;
|
||||||
#if defined(CONFIG_SPARC)
|
#if defined(CONFIG_SPARC)
|
||||||
const char *path_component_name;
|
|
||||||
unsigned int unique_id;
|
unsigned int unique_id;
|
||||||
struct of_irq_controller *irq_trans;
|
struct of_irq_controller *irq_trans;
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -2071,12 +2071,12 @@ static int cs4231_ebus_probe(struct platform_device *op)
|
||||||
static int cs4231_probe(struct platform_device *op)
|
static int cs4231_probe(struct platform_device *op)
|
||||||
{
|
{
|
||||||
#ifdef EBUS_SUPPORT
|
#ifdef EBUS_SUPPORT
|
||||||
if (!strcmp(op->dev.of_node->parent->name, "ebus"))
|
if (of_node_name_eq(op->dev.of_node->parent, "ebus"))
|
||||||
return cs4231_ebus_probe(op);
|
return cs4231_ebus_probe(op);
|
||||||
#endif
|
#endif
|
||||||
#ifdef SBUS_SUPPORT
|
#ifdef SBUS_SUPPORT
|
||||||
if (!strcmp(op->dev.of_node->parent->name, "sbus") ||
|
if (of_node_name_eq(op->dev.of_node->parent, "sbus") ||
|
||||||
!strcmp(op->dev.of_node->parent->name, "sbi"))
|
of_node_name_eq(op->dev.of_node->parent, "sbi"))
|
||||||
return cs4231_sbus_probe(op);
|
return cs4231_sbus_probe(op);
|
||||||
#endif
|
#endif
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
|
Loading…
Reference in New Issue