github.com/goplusjs/gopherjs@v1.2.6-0.20211206034512-f187917453b8/compiler/natives/src/syscall/syscall_darwin_arm64.go (about)

     1  // +build js
     2  // +build darwin,arm64
     3  
     4  package syscall
     5  
     6  import (
     7  	"github.com/gopherjs/gopherjs/js"
     8  )
     9  
    10  func funcPC(f func()) uintptr {
    11  	switch js.InternalObject(f) {
    12  	case js.InternalObject(libc_getgroups_trampoline):
    13  		return SYS_GETGROUPS
    14  	case js.InternalObject(libc_setgroups_trampoline):
    15  		return SYS_SETGROUPS
    16  	case js.InternalObject(libc_wait4_trampoline):
    17  		return SYS_WAIT4
    18  	case js.InternalObject(libc_accept_trampoline):
    19  		return SYS_ACCEPT
    20  	case js.InternalObject(libc_bind_trampoline):
    21  		return SYS_BIND
    22  	case js.InternalObject(libc_connect_trampoline):
    23  		return SYS_CONNECT
    24  	case js.InternalObject(libc_socket_trampoline):
    25  		return SYS_SOCKET
    26  	case js.InternalObject(libc_getsockopt_trampoline):
    27  		return SYS_GETSOCKOPT
    28  	case js.InternalObject(libc_setsockopt_trampoline):
    29  		return SYS_SETSOCKOPT
    30  	case js.InternalObject(libc_getpeername_trampoline):
    31  		return SYS_GETPEERNAME
    32  	case js.InternalObject(libc_getsockname_trampoline):
    33  		return SYS_GETSOCKNAME
    34  	case js.InternalObject(libc_shutdown_trampoline):
    35  		return SYS_SHUTDOWN
    36  	case js.InternalObject(libc_socketpair_trampoline):
    37  		return SYS_SOCKETPAIR
    38  	case js.InternalObject(libc_recvfrom_trampoline):
    39  		return SYS_RECVFROM
    40  	case js.InternalObject(libc_sendto_trampoline):
    41  		return SYS_SENDTO
    42  	case js.InternalObject(libc_recvmsg_trampoline):
    43  		return SYS_RECVMSG
    44  	case js.InternalObject(libc_sendmsg_trampoline):
    45  		return SYS_SENDMSG
    46  	case js.InternalObject(libc_kevent_trampoline):
    47  		return SYS_KEVENT
    48  	case js.InternalObject(libc_utimes_trampoline):
    49  		return SYS_UTIMES
    50  	case js.InternalObject(libc_futimes_trampoline):
    51  		return SYS_FUTIMES
    52  	case js.InternalObject(libc_fcntl_trampoline):
    53  		return SYS_FCNTL
    54  	case js.InternalObject(libc_pipe_trampoline):
    55  		return SYS_PIPE
    56  	case js.InternalObject(libc_kill_trampoline):
    57  		return SYS_KILL
    58  	case js.InternalObject(libc_access_trampoline):
    59  		return SYS_ACCESS
    60  	case js.InternalObject(libc_adjtime_trampoline):
    61  		return SYS_ADJTIME
    62  	case js.InternalObject(libc_chdir_trampoline):
    63  		return SYS_CHDIR
    64  	case js.InternalObject(libc_chflags_trampoline):
    65  		return SYS_CHFLAGS
    66  	case js.InternalObject(libc_chmod_trampoline):
    67  		return SYS_CHMOD
    68  	case js.InternalObject(libc_chown_trampoline):
    69  		return SYS_CHOWN
    70  	case js.InternalObject(libc_chroot_trampoline):
    71  		return SYS_CHROOT
    72  	case js.InternalObject(libc_close_trampoline):
    73  		return SYS_CLOSE
    74  	case js.InternalObject(libc_dup_trampoline):
    75  		return SYS_DUP
    76  	case js.InternalObject(libc_dup2_trampoline):
    77  		return SYS_DUP2
    78  	case js.InternalObject(libc_exchangedata_trampoline):
    79  		return SYS_EXCHANGEDATA
    80  	case js.InternalObject(libc_fchdir_trampoline):
    81  		return SYS_FCHDIR
    82  	case js.InternalObject(libc_fchflags_trampoline):
    83  		return SYS_FCHFLAGS
    84  	case js.InternalObject(libc_fchmod_trampoline):
    85  		return SYS_FCHMOD
    86  	case js.InternalObject(libc_fchown_trampoline):
    87  		return SYS_FCHOWN
    88  	case js.InternalObject(libc_flock_trampoline):
    89  		return SYS_FLOCK
    90  	case js.InternalObject(libc_fpathconf_trampoline):
    91  		return SYS_FPATHCONF
    92  	case js.InternalObject(libc_fsync_trampoline):
    93  		return SYS_FSYNC
    94  	case js.InternalObject(libc_ftruncate_trampoline):
    95  		return SYS_FTRUNCATE
    96  	case js.InternalObject(libc_getdtablesize_trampoline):
    97  		return SYS_GETDTABLESIZE
    98  	case js.InternalObject(libc_getegid_trampoline):
    99  		return SYS_GETEGID
   100  	case js.InternalObject(libc_geteuid_trampoline):
   101  		return SYS_GETEUID
   102  	case js.InternalObject(libc_getgid_trampoline):
   103  		return SYS_GETGID
   104  	case js.InternalObject(libc_getpgid_trampoline):
   105  		return SYS_GETPGID
   106  	case js.InternalObject(libc_getpgrp_trampoline):
   107  		return SYS_GETPGRP
   108  	case js.InternalObject(libc_getpid_trampoline):
   109  		return SYS_GETPID
   110  	case js.InternalObject(libc_getppid_trampoline):
   111  		return SYS_GETPPID
   112  	case js.InternalObject(libc_getpriority_trampoline):
   113  		return SYS_GETPRIORITY
   114  	case js.InternalObject(libc_getrlimit_trampoline):
   115  		return SYS_GETRLIMIT
   116  	case js.InternalObject(libc_getrusage_trampoline):
   117  		return SYS_GETRUSAGE
   118  	case js.InternalObject(libc_getsid_trampoline):
   119  		return SYS_GETSID
   120  	case js.InternalObject(libc_getuid_trampoline):
   121  		return SYS_GETUID
   122  	case js.InternalObject(libc_issetugid_trampoline):
   123  		return SYS_ISSETUGID
   124  	case js.InternalObject(libc_kqueue_trampoline):
   125  		return SYS_KQUEUE
   126  	case js.InternalObject(libc_lchown_trampoline):
   127  		return SYS_LCHOWN
   128  	case js.InternalObject(libc_link_trampoline):
   129  		return SYS_LINK
   130  	case js.InternalObject(libc_listen_trampoline):
   131  		return SYS_LISTEN
   132  	case js.InternalObject(libc_mkdir_trampoline):
   133  		return SYS_MKDIR
   134  	case js.InternalObject(libc_mkfifo_trampoline):
   135  		return SYS_MKFIFO
   136  	case js.InternalObject(libc_mknod_trampoline):
   137  		return SYS_MKNOD
   138  	case js.InternalObject(libc_mlock_trampoline):
   139  		return SYS_MLOCK
   140  	case js.InternalObject(libc_mlockall_trampoline):
   141  		return SYS_MLOCKALL
   142  	case js.InternalObject(libc_mprotect_trampoline):
   143  		return SYS_MPROTECT
   144  	case js.InternalObject(libc_munlock_trampoline):
   145  		return SYS_MUNLOCK
   146  	case js.InternalObject(libc_munlockall_trampoline):
   147  		return SYS_MUNLOCKALL
   148  	case js.InternalObject(libc_open_trampoline):
   149  		return SYS_OPEN
   150  	case js.InternalObject(libc_pathconf_trampoline):
   151  		return SYS_PATHCONF
   152  	case js.InternalObject(libc_pread_trampoline):
   153  		return SYS_PREAD
   154  	case js.InternalObject(libc_pwrite_trampoline):
   155  		return SYS_PWRITE
   156  	case js.InternalObject(libc_read_trampoline):
   157  		return SYS_READ
   158  	case js.InternalObject(libc_readlink_trampoline):
   159  		return SYS_READLINK
   160  	case js.InternalObject(libc_rename_trampoline):
   161  		return SYS_RENAME
   162  	case js.InternalObject(libc_revoke_trampoline):
   163  		return SYS_REVOKE
   164  	case js.InternalObject(libc_rmdir_trampoline):
   165  		return SYS_RMDIR
   166  	case js.InternalObject(libc_lseek_trampoline):
   167  		return SYS_LSEEK
   168  	case js.InternalObject(libc_select_trampoline):
   169  		return SYS_SELECT
   170  	case js.InternalObject(libc_setegid_trampoline):
   171  		return SYS_SETEGID
   172  	case js.InternalObject(libc_seteuid_trampoline):
   173  		return SYS_SETEUID
   174  	case js.InternalObject(libc_setgid_trampoline):
   175  		return SYS_SETGID
   176  	case js.InternalObject(libc_setlogin_trampoline):
   177  		return SYS_SETLOGIN
   178  	case js.InternalObject(libc_setpgid_trampoline):
   179  		return SYS_SETPGID
   180  	case js.InternalObject(libc_setpriority_trampoline):
   181  		return SYS_SETPRIORITY
   182  	case js.InternalObject(libc_setprivexec_trampoline):
   183  		return SYS_SETPRIVEXEC
   184  	case js.InternalObject(libc_setregid_trampoline):
   185  		return SYS_SETREGID
   186  	case js.InternalObject(libc_setreuid_trampoline):
   187  		return SYS_SETREUID
   188  	case js.InternalObject(libc_setrlimit_trampoline):
   189  		return SYS_SETRLIMIT
   190  	case js.InternalObject(libc_setsid_trampoline):
   191  		return SYS_SETSID
   192  	case js.InternalObject(libc_settimeofday_trampoline):
   193  		return SYS_SETTIMEOFDAY
   194  	case js.InternalObject(libc_setuid_trampoline):
   195  		return SYS_SETUID
   196  	case js.InternalObject(libc_symlink_trampoline):
   197  		return SYS_SYMLINK
   198  	case js.InternalObject(libc_sync_trampoline):
   199  		return SYS_SYNC
   200  	case js.InternalObject(libc_truncate_trampoline):
   201  		return SYS_TRUNCATE
   202  	case js.InternalObject(libc_umask_trampoline):
   203  		return SYS_UMASK
   204  	case js.InternalObject(libc_undelete_trampoline):
   205  		return SYS_UNDELETE
   206  	case js.InternalObject(libc_unlink_trampoline):
   207  		return SYS_UNLINK
   208  	case js.InternalObject(libc_unmount_trampoline):
   209  		return SYS_UNMOUNT
   210  	case js.InternalObject(libc_write_trampoline):
   211  		return SYS_WRITE
   212  	case js.InternalObject(libc_writev_trampoline):
   213  		return SYS_WRITEV
   214  	case js.InternalObject(libc_mmap_trampoline):
   215  		return SYS_MMAP
   216  	case js.InternalObject(libc_munmap_trampoline):
   217  		return SYS_MUNMAP
   218  	case js.InternalObject(libc_fork_trampoline):
   219  		return SYS_FORK
   220  	case js.InternalObject(libc_ioctl_trampoline):
   221  		return SYS_IOCTL
   222  	case js.InternalObject(libc_execve_trampoline):
   223  		return SYS_EXECVE
   224  	case js.InternalObject(libc_exit_trampoline):
   225  		return SYS_EXIT
   226  	// case js.InternalObject(libc_fstat64_trampoline):
   227  	// 	return SYS_FSTAT64
   228  	// case js.InternalObject(libc_fstatfs64_trampoline):
   229  	// 	return SYS_FSTATFS64
   230  	case js.InternalObject(libc_gettimeofday_trampoline):
   231  		return SYS_GETTIMEOFDAY
   232  	// case js.InternalObject(libc_lstat64_trampoline):
   233  	// 	return SYS_LSTAT64
   234  	// case js.InternalObject(libc_stat64_trampoline):
   235  	// 	return SYS_STAT64
   236  	// case js.InternalObject(libc_statfs64_trampoline):
   237  	// 	return SYS_STATFS64
   238  	case js.InternalObject(libc_ptrace_trampoline):
   239  		return SYS_PTRACE
   240  	// case js.InternalObject(libc_fstatat64_trampoline):
   241  	// 	return SYS_FSTATFS64
   242  	// case js.InternalObject(libc_getattrlist_trampoline):
   243  	// 	return SYS_GETATTRLIST
   244  	case js.InternalObject(libc_unlinkat_trampoline):
   245  		return 472 //SYS_UNLINKAT
   246  	// case js.InternalObject(libc_fdopendir_trampoline):
   247  	// 	break
   248  	default:
   249  		println("warning syscall:", f)
   250  	}
   251  	return uintptr(minusOne)
   252  }
   253  
   254  func syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno) {
   255  	return Syscall(trap, a1, a2, a3)
   256  }
   257  
   258  func syscallX(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno) {
   259  	return Syscall(trap, a1, a2, a3)
   260  }
   261  
   262  func syscallPtr(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno) {
   263  	return Syscall(trap, a1, a2, a3)
   264  }
   265  
   266  func syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) {
   267  	return Syscall6(trap, a1, a2, a3, a4, a5, a6)
   268  }
   269  
   270  func syscall6X(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) {
   271  	return Syscall6(trap, a1, a2, a3, a4, a5, a6)
   272  }
   273  
   274  func rawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno) {
   275  	return RawSyscall(trap, a1, a2, a3)
   276  }
   277  
   278  func rawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) {
   279  	return RawSyscall6(trap, a1, a2, a3, a4, a5, a6)
   280  }