0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 #include <asm/errno.h>
0011
0012
0013
0014 .text
0015
0016 .globl sys32_mmap2
0017 sys32_mmap2:
0018 sethi %hi(sys_mmap), %g1
0019 jmpl %g1 + %lo(sys_mmap), %g0
0020 sllx %o5, 12, %o5
0021
0022 .align 32
0023 .globl sys32_socketcall
0024 sys32_socketcall:
0025 cmp %o0, 1
0026 bl,pn %xcc, do_einval
0027 cmp %o0, 18
0028 bg,pn %xcc, do_einval
0029 sub %o0, 1, %o0
0030 sllx %o0, 5, %o0
0031 sethi %hi(__socketcall_table_begin), %g2
0032 or %g2, %lo(__socketcall_table_begin), %g2
0033 jmpl %g2 + %o0, %g0
0034 nop
0035 do_einval:
0036 retl
0037 mov -EINVAL, %o0
0038
0039 .align 32
0040 __socketcall_table_begin:
0041
0042
0043 do_sys_socket:
0044 1: ldswa [%o1 + 0x0] %asi, %o0
0045 sethi %hi(sys_socket), %g1
0046 2: ldswa [%o1 + 0x8] %asi, %o2
0047 jmpl %g1 + %lo(sys_socket), %g0
0048 3: ldswa [%o1 + 0x4] %asi, %o1
0049 nop
0050 nop
0051 nop
0052 do_sys_bind:
0053 4: ldswa [%o1 + 0x0] %asi, %o0
0054 sethi %hi(sys_bind), %g1
0055 5: ldswa [%o1 + 0x8] %asi, %o2
0056 jmpl %g1 + %lo(sys_bind), %g0
0057 6: lduwa [%o1 + 0x4] %asi, %o1
0058 nop
0059 nop
0060 nop
0061 do_sys_connect:
0062 7: ldswa [%o1 + 0x0] %asi, %o0
0063 sethi %hi(sys_connect), %g1
0064 8: ldswa [%o1 + 0x8] %asi, %o2
0065 jmpl %g1 + %lo(sys_connect), %g0
0066 9: lduwa [%o1 + 0x4] %asi, %o1
0067 nop
0068 nop
0069 nop
0070 do_sys_listen:
0071 10: ldswa [%o1 + 0x0] %asi, %o0
0072 sethi %hi(sys_listen), %g1
0073 jmpl %g1 + %lo(sys_listen), %g0
0074 11: ldswa [%o1 + 0x4] %asi, %o1
0075 nop
0076 nop
0077 nop
0078 nop
0079 do_sys_accept:
0080 12: ldswa [%o1 + 0x0] %asi, %o0
0081 sethi %hi(sys_accept), %g1
0082 13: lduwa [%o1 + 0x8] %asi, %o2
0083 jmpl %g1 + %lo(sys_accept), %g0
0084 14: lduwa [%o1 + 0x4] %asi, %o1
0085 nop
0086 nop
0087 nop
0088 do_sys_getsockname:
0089 15: ldswa [%o1 + 0x0] %asi, %o0
0090 sethi %hi(sys_getsockname), %g1
0091 16: lduwa [%o1 + 0x8] %asi, %o2
0092 jmpl %g1 + %lo(sys_getsockname), %g0
0093 17: lduwa [%o1 + 0x4] %asi, %o1
0094 nop
0095 nop
0096 nop
0097 do_sys_getpeername:
0098 18: ldswa [%o1 + 0x0] %asi, %o0
0099 sethi %hi(sys_getpeername), %g1
0100 19: lduwa [%o1 + 0x8] %asi, %o2
0101 jmpl %g1 + %lo(sys_getpeername), %g0
0102 20: lduwa [%o1 + 0x4] %asi, %o1
0103 nop
0104 nop
0105 nop
0106 do_sys_socketpair:
0107 21: ldswa [%o1 + 0x0] %asi, %o0
0108 sethi %hi(sys_socketpair), %g1
0109 22: ldswa [%o1 + 0x8] %asi, %o2
0110 23: lduwa [%o1 + 0xc] %asi, %o3
0111 jmpl %g1 + %lo(sys_socketpair), %g0
0112 24: ldswa [%o1 + 0x4] %asi, %o1
0113 nop
0114 nop
0115 do_sys_send:
0116 25: ldswa [%o1 + 0x0] %asi, %o0
0117 sethi %hi(sys_send), %g1
0118 26: lduwa [%o1 + 0x8] %asi, %o2
0119 27: lduwa [%o1 + 0xc] %asi, %o3
0120 jmpl %g1 + %lo(sys_send), %g0
0121 28: lduwa [%o1 + 0x4] %asi, %o1
0122 nop
0123 nop
0124 do_sys_recv:
0125 29: ldswa [%o1 + 0x0] %asi, %o0
0126 sethi %hi(sys_recv), %g1
0127 30: lduwa [%o1 + 0x8] %asi, %o2
0128 31: lduwa [%o1 + 0xc] %asi, %o3
0129 jmpl %g1 + %lo(sys_recv), %g0
0130 32: lduwa [%o1 + 0x4] %asi, %o1
0131 nop
0132 nop
0133 do_sys_sendto:
0134 33: ldswa [%o1 + 0x0] %asi, %o0
0135 sethi %hi(sys_sendto), %g1
0136 34: lduwa [%o1 + 0x8] %asi, %o2
0137 35: lduwa [%o1 + 0xc] %asi, %o3
0138 36: lduwa [%o1 + 0x10] %asi, %o4
0139 37: ldswa [%o1 + 0x14] %asi, %o5
0140 jmpl %g1 + %lo(sys_sendto), %g0
0141 38: lduwa [%o1 + 0x4] %asi, %o1
0142 do_sys_recvfrom:
0143 39: ldswa [%o1 + 0x0] %asi, %o0
0144 sethi %hi(sys_recvfrom), %g1
0145 40: lduwa [%o1 + 0x8] %asi, %o2
0146 41: lduwa [%o1 + 0xc] %asi, %o3
0147 42: lduwa [%o1 + 0x10] %asi, %o4
0148 43: lduwa [%o1 + 0x14] %asi, %o5
0149 jmpl %g1 + %lo(sys_recvfrom), %g0
0150 44: lduwa [%o1 + 0x4] %asi, %o1
0151 do_sys_shutdown:
0152 45: ldswa [%o1 + 0x0] %asi, %o0
0153 sethi %hi(sys_shutdown), %g1
0154 jmpl %g1 + %lo(sys_shutdown), %g0
0155 46: ldswa [%o1 + 0x4] %asi, %o1
0156 nop
0157 nop
0158 nop
0159 nop
0160 do_sys_setsockopt:
0161 47: ldswa [%o1 + 0x0] %asi, %o0
0162 sethi %hi(sys_setsockopt), %g1
0163 48: ldswa [%o1 + 0x8] %asi, %o2
0164 49: lduwa [%o1 + 0xc] %asi, %o3
0165 50: ldswa [%o1 + 0x10] %asi, %o4
0166 jmpl %g1 + %lo(sys_setsockopt), %g0
0167 51: ldswa [%o1 + 0x4] %asi, %o1
0168 nop
0169 do_sys_getsockopt:
0170 52: ldswa [%o1 + 0x0] %asi, %o0
0171 sethi %hi(sys_getsockopt), %g1
0172 53: ldswa [%o1 + 0x8] %asi, %o2
0173 54: lduwa [%o1 + 0xc] %asi, %o3
0174 55: lduwa [%o1 + 0x10] %asi, %o4
0175 jmpl %g1 + %lo(sys_getsockopt), %g0
0176 56: ldswa [%o1 + 0x4] %asi, %o1
0177 nop
0178 do_sys_sendmsg:
0179 57: ldswa [%o1 + 0x0] %asi, %o0
0180 sethi %hi(compat_sys_sendmsg), %g1
0181 58: lduwa [%o1 + 0x8] %asi, %o2
0182 jmpl %g1 + %lo(compat_sys_sendmsg), %g0
0183 59: lduwa [%o1 + 0x4] %asi, %o1
0184 nop
0185 nop
0186 nop
0187 do_sys_recvmsg:
0188 60: ldswa [%o1 + 0x0] %asi, %o0
0189 sethi %hi(compat_sys_recvmsg), %g1
0190 61: lduwa [%o1 + 0x8] %asi, %o2
0191 jmpl %g1 + %lo(compat_sys_recvmsg), %g0
0192 62: lduwa [%o1 + 0x4] %asi, %o1
0193 nop
0194 nop
0195 nop
0196 do_sys_accept4:
0197 63: ldswa [%o1 + 0x0] %asi, %o0
0198 sethi %hi(sys_accept4), %g1
0199 64: lduwa [%o1 + 0x8] %asi, %o2
0200 65: ldswa [%o1 + 0xc] %asi, %o3
0201 jmpl %g1 + %lo(sys_accept4), %g0
0202 66: lduwa [%o1 + 0x4] %asi, %o1
0203 nop
0204 nop
0205
0206 .section __ex_table,"a"
0207 .align 4
0208 .word 1b, __retl_efault, 2b, __retl_efault
0209 .word 3b, __retl_efault, 4b, __retl_efault
0210 .word 5b, __retl_efault, 6b, __retl_efault
0211 .word 7b, __retl_efault, 8b, __retl_efault
0212 .word 9b, __retl_efault, 10b, __retl_efault
0213 .word 11b, __retl_efault, 12b, __retl_efault
0214 .word 13b, __retl_efault, 14b, __retl_efault
0215 .word 15b, __retl_efault, 16b, __retl_efault
0216 .word 17b, __retl_efault, 18b, __retl_efault
0217 .word 19b, __retl_efault, 20b, __retl_efault
0218 .word 21b, __retl_efault, 22b, __retl_efault
0219 .word 23b, __retl_efault, 24b, __retl_efault
0220 .word 25b, __retl_efault, 26b, __retl_efault
0221 .word 27b, __retl_efault, 28b, __retl_efault
0222 .word 29b, __retl_efault, 30b, __retl_efault
0223 .word 31b, __retl_efault, 32b, __retl_efault
0224 .word 33b, __retl_efault, 34b, __retl_efault
0225 .word 35b, __retl_efault, 36b, __retl_efault
0226 .word 37b, __retl_efault, 38b, __retl_efault
0227 .word 39b, __retl_efault, 40b, __retl_efault
0228 .word 41b, __retl_efault, 42b, __retl_efault
0229 .word 43b, __retl_efault, 44b, __retl_efault
0230 .word 45b, __retl_efault, 46b, __retl_efault
0231 .word 47b, __retl_efault, 48b, __retl_efault
0232 .word 49b, __retl_efault, 50b, __retl_efault
0233 .word 51b, __retl_efault, 52b, __retl_efault
0234 .word 53b, __retl_efault, 54b, __retl_efault
0235 .word 55b, __retl_efault, 56b, __retl_efault
0236 .word 57b, __retl_efault, 58b, __retl_efault
0237 .word 59b, __retl_efault, 60b, __retl_efault
0238 .word 61b, __retl_efault, 62b, __retl_efault
0239 .word 63b, __retl_efault, 64b, __retl_efault
0240 .word 65b, __retl_efault, 66b, __retl_efault
0241 .previous