home *** CD-ROM | disk | FTP | other *** search
/ RISCWORLD 7 / RISCWORLD_VOL7.iso / Software / Issue2 / SDL.ARC / !unixlib / source / clib / unixlib / s / asm_dec
Encoding:
Text File  |  2004-09-07  |  14.2 KB  |  518 lines

  1. ;----------------------------------------------------------------------------
  2. ;
  3. ; $Source: /usr/local/cvsroot/gccsdk/unixlib/source/clib/unixlib/asm_dec.s,v $
  4. ; $Date: 2004/09/07 14:05:10 $
  5. ; $Revision: 1.16 $
  6. ; $State: Exp $
  7. ; $Author: joty $
  8. ;
  9. ; Declare registers and SWIs we will be calling.
  10. ;
  11. ;----------------------------------------------------------------------------
  12.  
  13. ; Bits that control which bits are compiled into UnixLib. Note, this must be
  14. ; kept in sync with <sys/syslib.h>, <signal.h> and <errno.h>.
  15.  
  16. ; Is an alloca() failure fatal? Nick says yes, Linux says no.
  17. ALLOCA_FATAL    EQU    1
  18. ; Do paranoid checks ?
  19. PARANOID    EQU    0
  20. ; Use dynamic areas for heap on RISC OS 3.5+
  21. DYNAMIC_AREA    EQU    1
  22. ; Emulate the SWP instruction for ARM2 compatibility
  23. |__SWP_ARM2|    EQU    0
  24.  
  25. |__INTEGRITY_CHECK|    EQU    1
  26. |__FEATURE_ITIMERS|    EQU    1
  27. |__FEATURE_SOCKET|    EQU    1
  28. |__FEATURE_PIPEDEV|    EQU    1
  29. |__FEATURE_PTHREADS|    EQU    1
  30. USEFILEPATH        EQU    0
  31. ; For Internet 4 compatibility
  32. COMPAT_INET4    EQU    0
  33.  
  34. ; The offset of various members of the __pthread_thread structure
  35. ; This should be kept in sync with pthread.h, lib1aof.s, and stubs.s
  36. __PTHREAD_MAGIC_OFFSET    EQU    0
  37. __PTHREAD_CONTEXT_OFFSET    EQU    4
  38. __PTHREAD_ALLOCA_OFFSET    EQU    8
  39. __PTHREAD_ERRNO_OFFSET    EQU    20
  40. __PTHREAD_ERRBUF_OFFSET    EQU    24
  41.  
  42. ; registers
  43.  
  44. r0    RN    0
  45. r1    RN    1
  46. r2    RN    2
  47. r3    RN    3
  48. r4    RN    4
  49. r5    RN    5
  50. r6    RN    6
  51. r7    RN    7
  52. r8    RN    8
  53. r9    RN    9
  54. r10    RN    10
  55. r11    RN    11
  56. r12    RN    12
  57. r13    RN    13
  58. r14    RN    14
  59. r15    RN    15
  60.  
  61. a1    RN    0    ; Argument 1
  62. a2    RN    1    ; Argument 2
  63. a3    RN    2    ; Argument 3
  64. a4    RN    3    ; Argument 4
  65. v1    RN    4    ; Variable 1
  66. v2    RN    5    ; Variable 2
  67. v3    RN    6    ; Variable 3
  68. v4    RN    7    ; Variable 4
  69. v5    RN    8    ; Variable 5
  70. v6    RN    9    ; Variable 6
  71.  
  72. sl    RN    10    ; Stack limit / stack chunk handle
  73. fp    RN    11    ; frame pointer
  74. ip    RN    12    ; Temporary workspace, used in procedure entry
  75. sp    RN    13    ; Stack pointer
  76. lr    RN    14    ; Link register
  77. pc    RN    15    ; Program counter
  78.  
  79. f0    FN    0
  80. f1    FN    1
  81. f2    FN    2
  82. f3    FN    3
  83. f4    FN    4
  84. f5    FN    5
  85. f6    FN    6
  86. f7    FN    7
  87.  
  88. USR_Mode    EQU    &0
  89. FIQ_Mode    EQU    &1
  90. IRQ_Mode    EQU    &2
  91. SVC_Mode    EQU    &3
  92. Mode_Bits    EQU    &3
  93.  
  94. NFlag    EQU    &80000000    ; Negative flag
  95. ZFlag    EQU    &40000000    ; Zero flag
  96. CFlag    EQU    &20000000    ; Carry flag
  97. VFlag    EQU    &10000000    ; Overflow flag
  98. IFlag    EQU    &08000000    ; IRQ disable
  99. FFlag    EQU    &04000000    ; FIRQ disable
  100.  
  101. USR32_mode    EQU    2_10000
  102. FIQ32_mode    EQU    2_10001
  103. IRQ32_mode    EQU    2_10010
  104. SVC32_Mode    EQU    2_10011
  105. ABT32_Mode    EQU    2_10111
  106. UND32_Mode    EQU    2_11011
  107. SYS32_Mode    EQU    2_11111
  108.  
  109. IFlag32        EQU    &00000080
  110.  
  111.  
  112.  
  113.     ; Macro for embedding function names in code, just before
  114.     ; the function prologue.
  115.     MACRO
  116.     NAME    $name
  117.     DCB    "$name",0
  118.     ALIGN
  119.     DCD    &FF000000 + (:LEN: "$name"+3+1) :AND: &FFFFFFFC
  120.     MEND
  121.  
  122.     MACRO
  123.     return    $cond, $dstreg, $srcreg
  124.     MOV$cond    $dstreg, $srcreg
  125.     MEND
  126.  
  127.     MACRO
  128.     stackreturn    $cond, $regs
  129.     LDM$cond.FD    sp!, {$regs}
  130.     MEND
  131.  
  132.     ; Assembler equivalent of __set_errno in errno.h.
  133.     ; #define __set_errno(val) (errno = (val), -1)
  134.     ; Entry condition
  135.     ;   val = new error code
  136.     ; Exit condition
  137.     ;   val = -1
  138.     ;   Rerrno destroyed
  139.  
  140.     MACRO
  141.     __set_errno    $val,$Rerrno
  142.     ASSERT    $val <> $Rerrno
  143.     IMPORT    |errno|
  144.     LDR    $Rerrno,=|errno|
  145.     STR    $val,[$Rerrno]
  146.     MOV    $val,#-1
  147.     MEND
  148.  
  149.     MACRO
  150.     __get_errno    $val,$Rerrno
  151.     IMPORT    |errno|
  152.     LDR    $Rerrno,=|errno|
  153.     LDR    $val,[$Rerrno]
  154.     MEND
  155.  
  156.     ; NetSWI macro to call a networking (TCP/IP) swi.
  157.     ; We ensure that we are in SVC mode before calling the SWI because,
  158.     ; according to Stewart Brodie, certain versions of Acorn's Internet
  159.     ; stack require SWIs to be called in SVC mode.
  160.     ;
  161.     ; If ModuleCode is "yes", then nothing needs to be done, since
  162.     ; it is assumed we are already in SVC mode (possibly not always true,
  163.     ; so beware).
  164.     ; Note, UnixLib does not define ModuleCode.
  165.     ;
  166.     ; ip is destroyed. lr must be saved if called in SVC mode. This
  167.     ; macro is *NOT* safe for calling from IRQ or FIQ mode because
  168.     ; SVC_r14 is corrupted.
  169.  
  170.     MACRO
  171.     NetSWI    $swiname
  172.  
  173.         ; Not really required, and not 32-bit
  174. ;    [    "$ModuleCode" <> "yes"
  175. ;    MOV    ip, pc            ; PC+PSR
  176. ;    EOR    ip, ip, #SVC_Mode    ; current mode EOR SVC_Mode
  177. ;    SWI    XOS_EnterOS        ; enter SVC mode
  178. ;    ]
  179.  
  180.     SWI    $swiname
  181.  
  182.     BLVS    |__net_error|        ; Call net error still in SVC
  183. ;    [    "$ModuleCode" <> "yes"
  184. ;    TEQP    ip, pc            ; restore mode, corrupting flags
  185. ;    MOV    a1, a1            ; no-op to prevent contention
  186. ;    ]
  187.  
  188.     MEND
  189.  
  190.     MACRO
  191.     NetSWIsimple    $swiname
  192.  
  193.     MOV    ip, lr            ; Save mode, return address
  194. ;    [    "$ModuleCode" <> "yes"
  195. ;    SWI    XOS_EnterOS        ; enter SVC mode
  196. ;    ]
  197.  
  198.     SWI    $swiname
  199.  
  200.     MOVVC    pc, ip            ; return, restore mode, flags
  201.     B    |__net_error_simple_entry|
  202.     ; branch to error routine still in SVC mode, with return in ip
  203.  
  204.     MEND
  205.  
  206.     ; Macros for Socket SWIs which corrupt R0
  207.     ; Ensure R0 is 0 for VC, net_error ensures 1 for VS
  208.     MACRO
  209.     NetSWI0    $swiname
  210.  
  211. ;    [    "$ModuleCode" <> "yes"
  212. ;    MOV    ip, pc            ; PC+PSR
  213. ;    EOR    ip, ip, #SVC_Mode    ; current mode EOR SVC_Mode
  214. ;    SWI    XOS_EnterOS        ; enter SVC mode
  215. ;    ]
  216.  
  217.     SWI    $swiname
  218.     MOVVC    a1, #0
  219.  
  220.     BLVS    |__net_error|        ; Call net error still in SVC
  221. ;    [    "$ModuleCode" <> "yes"
  222. ;    TEQP    ip, pc            ; restore mode, corrupting flags
  223. ;    MOV    a1, a1            ; no-op to prevent contention
  224. ;    ]
  225.  
  226.     MEND
  227.  
  228.     ; Macro for Socket SWIs which corrupt R0
  229.     ; Ensure R0 is 0 for VC, net_error ensures 1 for VS
  230.     MACRO
  231.     NetSWIsimple0    $swiname
  232.  
  233.     MOV    ip, lr            ; Save mode, flags, return adrress
  234. ;    [    "$ModuleCode" <> "yes"
  235. ;    SWI    XOS_EnterOS        ; enter SVC mode
  236. ;    ]
  237.  
  238.     SWI    $swiname
  239.     MOVVC    a1, #0
  240.  
  241.     MOVVC    pc, ip            ; return, restore mode, flags
  242.     B    |__net_error_simple_entry|
  243.     ; branch to error routine still in SVC mode, with return in ip
  244.  
  245.     MEND
  246.  
  247.     ; Macro to implement SWP instruction
  248.     ; srcreg and dstreg can be the same register, provided scratch is a
  249.     ; different register.
  250.     ; If srcreg and dstreg are different registers then scratch can be the
  251.     ; same as dstreg
  252.     MACRO
  253.     swp_arm2    $dstreg, $srcreg, $addr, $scratch
  254.     [ __SWP_ARM2 = 0
  255.     SWP    $dstreg, $srcreg, [$addr]
  256.     |
  257.     STMFD    sp!, {lr}    ; Could be called in USR or SVC mode
  258.     SWI    XOS_IntOff
  259.     LDR    $scratch, [$addr]
  260.     STR    $srcreg, [$addr]
  261.     [ $dstreg <> $scratch
  262.     MOV    $dstreg, $scratch
  263.     ]
  264.     SWI    XOS_IntOn
  265.     LDMFD    sp!, {lr}
  266.     ]
  267.  
  268.     MEND
  269.  
  270.     ; Macro to change processor modes and interrupt flags
  271.     ; Works in 26bit or 32bit modes, on all architectures
  272.     ; Use e.g. CHGMODE a1, SVC_Mode+IFlag
  273.     MACRO
  274.     CHGMODE    $scratch, $mode
  275.     TEQ    a1, a1    ; Set Z
  276.     TEQ    pc, pc    ; EQ if 32-bit mode
  277.     TEQNEP    pc, #$mode
  278.     MRSEQ    $scratch, CPSR    ; Acts a NOP for TEQP
  279.     BICEQ    $scratch, $scratch, #&cf    ; Preserve 32bit mode bit
  280.     [ $mode <> 0
  281.     ORREQ    $scratch, $scratch, #(($mode) :AND: &f) + (($mode) :SHR: 20)
  282.     ]
  283.     MSREQ    CPSR_c, $scratch
  284.     MOV    a1, a1    ; Avoid StrongARM MSR bug
  285.  
  286.     MEND
  287.  
  288. EXIT_SUCCESS    EQU    0
  289. EXIT_FAILURE    EQU    1
  290.  
  291. TRUE    EQU    1
  292. FALSE    EQU    0
  293.  
  294.     ;Keep the signal list in sync with <signal.h> contents.
  295. SIGHUP    EQU    1    ;   hangup
  296. SIGINT    EQU    2    ;   terminal interrupt
  297. SIGQUIT EQU    3    ; * ^\ from terminal
  298. SIGILL    EQU    4    ; * illegal instruction
  299. SIGTRAP EQU    5    ; * trace trap - unused
  300. SIGIOT    EQU    6    ;   abort
  301. SIGABRT EQU    6    ;   abort
  302. SIGEMT    EQU    7    ; * EMT (h/ware error)
  303. SIGFPE    EQU    8    ; * FPE trap
  304. SIGKILL EQU    9    ;   kill signal
  305. SIGBUS    EQU    10    ; * bus error
  306. SIGSEGV EQU    11    ; * segmentation violation
  307. SIGSYS    EQU    12    ; * bad system call
  308. SIGPIPE EQU    13    ;   broken pipe
  309. SIGALRM EQU    14    ;   alarm call
  310. SIGTERM EQU    15    ;   termination signal
  311. SIGURG    EQU    16    ;   urgent or out-of-band data
  312. SIGSTOP    EQU    17    ;   stop, unblockable
  313. SIGTSTP    EQU    18    ;   keyboard stop
  314. SIGCONT    EQU    19    ;   continue
  315. SIGCHLD    EQU    20    ;   child process has terminated/stopped
  316. SIGCLD    EQU    SIGCHLD
  317. SIGTTIN    EQU    21    ;   background read from tty
  318. SIGTTOU    EQU    22    ;   background write to tty
  319. SIGIO    EQU    23    ;   file descriptor is ready to perform I/O
  320. SIGPOLL    EQU    SIGIO
  321. SIGXCPU    EQU    24    ;   CPU time limit exceeded
  322. SIGXFSZ    EQU    25    ;   file size limit exceeded
  323. SIGVTALRM EQU    26    ;   alarm call
  324. SIGPROF EQU    27    ;   profiler alarm call
  325. SIGWINCH EQU    28    ;   window size change
  326. SIGINFO EQU    29    ;   information request
  327. SIGUSR1 EQU    30    ;   user signal 1
  328. SIGUSR2 EQU    31    ;   user signal 2
  329. SIGLOST EQU    32    ;   resource lost
  330. SIGOSERROR EQU    33    ;   RISC OS error
  331.  
  332. EOPSYS    EQU    88    ; RISC OS error
  333.  
  334. SharedUnixLibrary_SWIChunk    EQU    &55c80    ;Range &55c80 - &55cc0 (excl) is allocated.
  335. SharedUnixLibrary_ErrorChunk    EQU    &81a400    ;Range &81a400 - &81a40 (excl) is allocated.
  336. ; The beginning of the error range is used by the SUL module.  The end of
  337. ; the error ranged (allocated from back to front) is used by the UnixLib
  338. ; main code itself (to generate errors during startup when necessary).
  339. SharedUnixLibrary_Error_UnknownSWI    EQU SharedUnixLibrary_ErrorChunk + &00
  340. SharedUnixLibrary_Error_UnknownKey    EQU SharedUnixLibrary_ErrorChunk + &01
  341. SharedUnixLibrary_Error_StillActive    EQU SharedUnixLibrary_ErrorChunk + &02
  342. ; ...
  343. SharedUnixLibrary_Error_FatalError    EQU SharedUnixLibrary_ErrorChunk + &3B
  344. SharedUnixLibrary_Error_NoFPE        EQU SharedUnixLibrary_ErrorChunk + &3C
  345. SharedUnixLibrary_Error_NotRecentEnough    EQU SharedUnixLibrary_ErrorChunk + &3D
  346. SharedUnixLibrary_Error_NotEnoughMem    EQU SharedUnixLibrary_ErrorChunk + &3E
  347. SharedUnixLibrary_Error_NoCallASWI    EQU SharedUnixLibrary_ErrorChunk + &3F
  348.  
  349. OS_WriteS            EQU    &000001
  350. OS_NewLine            EQU    &000003
  351. OS_Exit                EQU    &000011
  352. OS_EnterOS            EQU    &000016
  353. OS_GenerateError        EQU    &00002B
  354.  
  355. X_Bit                EQU    &20000
  356.  
  357. XOS_WriteC            EQU    &000000 + X_Bit
  358. XOS_WriteS            EQU    &000001 + X_Bit
  359. XOS_Write0            EQU    &000002 + X_Bit
  360. XOS_NewLine            EQU    &000003 + X_Bit
  361. XOS_ReadC            EQU    &000004 + X_Bit
  362. XOS_CLI                EQU    &000005 + X_Bit
  363. XOS_Byte            EQU    &000006 + X_Bit
  364. XOS_Word            EQU    &000007 + X_Bit
  365. XOS_File            EQU    &000008 + X_Bit
  366. XOS_Args            EQU    &000009 + X_Bit
  367. XOS_BGet            EQU    &00000A + X_Bit
  368. XOS_BPut            EQU    &00000B + X_Bit
  369. XOS_GBPB            EQU    &00000C + X_Bit
  370. XOS_Find            EQU    &00000D + X_Bit
  371. XOS_ReadLine            EQU    &00000E + X_Bit
  372. XOS_Control            EQU    &00000F + X_Bit
  373. XOS_GetEnv            EQU    &000010 + X_Bit
  374. XOS_Exit            EQU    &000011 + X_Bit
  375. XOS_SetEnv            EQU    &000012 + X_Bit
  376. XOS_IntOn            EQU    &000013 + X_Bit
  377. XOS_IntOff            EQU    &000014 + X_Bit
  378. XOS_CallBack            EQU    &000015 + X_Bit
  379. XOS_EnterOS            EQU    &000016 + X_Bit
  380. XOS_BreakPt            EQU    &000017 + X_Bit
  381. XOS_BrealCtrl            EQU    &000018 + X_Bit
  382.  
  383. XOS_UpdateMEMC            EQU    &00001A + X_Bit
  384. XOS_SetCallBack            EQU    &00001B + X_Bit
  385. XOS_Mouse            EQU    &00001C + X_Bit
  386. XOS_Heap            EQU    &00001D + X_Bit
  387. XOS_Module            EQU    &00001E + X_Bit
  388. XOS_ReadUnsigned        EQU    &000021 + X_Bit
  389. XOS_ReadVarVal            EQU    &000023 + X_Bit
  390. XOS_SetVarVal            EQU    &000024 + X_Bit
  391. XOS_BinaryToDecimal        EQU    &000028 + X_Bit
  392. XOS_FSControl            EQU    &000029 + X_Bit
  393. XOS_ChangeDynamicArea        EQU    &00002A + X_Bit
  394. XOS_ValidateAddress        EQU    &00003A + X_Bit
  395. XOS_CallAfter            EQU    &00003B + X_Bit
  396. XOS_CallEvery            EQU    &00003C + X_Bit
  397. XOS_RemoveTickerEvent        EQU    &00003D + X_Bit
  398. XOS_ChangeEnvironment        EQU    &000040 + X_Bit
  399. XOS_ReadMonotonicTime        EQU    &000042 + X_Bit
  400. XOS_WriteN            EQU    &000046 + X_Bit
  401. XOS_ReadMemMapInfo        EQU    &000051 + X_Bit
  402. XOS_AddCallBack            EQU    &000054 + X_Bit
  403. XOS_SerialOp            EQU    &000057 + X_Bit
  404. XOS_DynamicArea            EQU    &000066 + X_Bit
  405. XOS_PlatformFeatures        EQU    &00006D + X_Bit
  406. XOS_SynchroniseCodeAreas    EQU    &00006E + X_Bit
  407. XOS_CallASWI            EQU    &00006F + X_Bit
  408. XOS_AMBControl            EQU    &000070 + X_Bit
  409. XOS_CallASWIR12            EQU    &000071 + X_Bit
  410. XOS_ConvertHex8            EQU    &0000D4 + X_Bit
  411. XOS_ConvertInteger1        EQU    &0000D9 + X_Bit
  412. XOS_ConvertInteger2        EQU    &0000DA + X_Bit
  413. XOS_ConvertInteger3        EQU    &0000DB + X_Bit
  414. XOS_ConvertInteger4        EQU    &0000DC + X_Bit
  415. XOS_WriteI            EQU    &000100 + X_Bit
  416.  
  417. XFPEmulator_Version        EQU    &040480 + X_Bit
  418.  
  419. Socket_Creat            EQU    &41200
  420. Socket_Bind            EQU    &41201
  421. Socket_Listen            EQU    &41202
  422. Socket_Accept            EQU    &41203
  423. Socket_Connect            EQU    &41204
  424. Socket_Recv            EQU    &41205
  425. Socket_Recvfrom            EQU    &41206
  426. Socket_Recvmsg            EQU    &41207
  427. Socket_Send            EQU    &41208
  428. Socket_Sendto            EQU    &41209
  429. Socket_Sendmsg            EQU    &4120A
  430. Socket_Shutdown            EQU    &4120B
  431. Socket_Setsockopt        EQU    &4120C
  432. Socket_Getsockopt        EQU    &4120D
  433. Socket_Getpeername        EQU    &4120E
  434. Socket_Getsockname        EQU    &4120F
  435. Socket_Close            EQU    &41210
  436. Socket_Select            EQU    &41211
  437. Socket_Ioctl            EQU    &41212
  438. Socket_Read            EQU    &41213
  439. Socket_Write            EQU    &41214
  440. Socket_Stat            EQU    &41215
  441. Socket_Readv            EQU    &41216
  442. Socket_Writev            EQU    &41217
  443. Socket_Gettsize            EQU    &41218
  444. Socket_Sendtosm            EQU    &41219
  445. Socket_Sysctl            EQU    &4121A
  446. Socket_Accept_1            EQU    &4121B
  447. Socket_Recvfrom_1        EQU    &4121C
  448. Socket_Recvmsg_1        EQU    &4121D
  449. Socket_Sendmsg_1        EQU    &4121E
  450. Socket_Getpeername_1        EQU    &4121F
  451. Socket_Getsockname_1        EQU    &41220
  452. Socket_InternalLookup        EQU    &41221
  453. Socket_Version            EQU    &41222
  454.  
  455. Internet_GetHostByName        EQU    &46000
  456. Internet_GetHostByAddr        EQU    &46001
  457.  
  458. XSocket_Creat            EQU    Socket_Creat + X_Bit
  459. XSocket_Bind            EQU    Socket_Bind + X_Bit
  460. XSocket_Listen            EQU    Socket_Listen + X_Bit
  461. XSocket_Accept            EQU    Socket_Accept + X_Bit
  462. XSocket_Connect            EQU    Socket_Connect + X_Bit
  463. XSocket_Recv            EQU    Socket_Recv + X_Bit
  464. XSocket_Recvfrom        EQU    Socket_Recvfrom + X_Bit
  465. XSocket_Recvmsg            EQU    Socket_Recvmsg + X_Bit
  466. XSocket_Send            EQU    Socket_Send + X_Bit
  467. XSocket_Sendto            EQU    Socket_Sendto + X_Bit
  468. XSocket_Sendmsg            EQU    Socket_Sendmsg + X_Bit
  469. XSocket_Shutdown        EQU    Socket_Shutdown + X_Bit
  470. XSocket_Setsockopt        EQU    Socket_Setsockopt + X_Bit
  471. XSocket_Getsockopt        EQU    Socket_Getsockopt + X_Bit
  472. XSocket_Getpeername        EQU    Socket_Getpeername + X_Bit
  473. XSocket_Getsockname        EQU    Socket_Getsockname + X_Bit
  474. XSocket_Close            EQU    Socket_Close + X_Bit
  475. XSocket_Select            EQU    Socket_Select + X_Bit
  476. XSocket_Ioctl            EQU    Socket_Ioctl + X_Bit
  477. XSocket_Read            EQU    Socket_Read + X_Bit
  478. XSocket_Write            EQU    Socket_Write + X_Bit
  479. XSocket_Stat            EQU    Socket_Stat + X_Bit
  480. XSocket_Readv            EQU    Socket_Readv + X_Bit
  481. XSocket_Writev            EQU    Socket_Writev + X_Bit
  482. XSocket_Gettsize        EQU    Socket_Gettsize + X_Bit
  483. XSocket_Sendtosm        EQU    Socket_Sendtosm + X_Bit
  484. XSocket_Sysctl            EQU    Socket_Sysctl + X_Bit
  485. XSocket_Accept_1        EQU    Socket_Accept_1 + X_Bit
  486. XSocket_Recvfrom_1        EQU    Socket_Recvfrom_1 + X_Bit
  487. XSocket_Recvmsg_1        EQU    Socket_Recvmsg_1 + X_Bit
  488. XSocket_Sendmsg_1        EQU    Socket_Sendmsg_1 + X_Bit
  489. XSocket_Getpeername_1        EQU    Socket_Getpeername_1 + X_Bit
  490. XSocket_Getsockname_1        EQU    Socket_Getsockname_1 + X_Bit
  491. XSocket_InternalLookup        EQU    Socket_InternalLookup + X_Bit
  492. XSocket_Version            EQU    Socket_Version + X_Bit
  493.  
  494. XInternet_GetHostByName        EQU    Internet_GetHostByName + X_Bit
  495. XInternet_GetHostByAddr        EQU    Internet_GetHostByAddr + X_Bit
  496.  
  497. XSharedCLibrary_LibInitAPCS_R    EQU    &080681 + X_Bit
  498. XSharedCLibrary_LibInitModule    EQU    &080682 + X_Bit
  499.  
  500. XMessageTrans_ErrorLookup    EQU    &041506 + X_Bit
  501.  
  502. XTaskWindow_TaskInfo        EQU    &043380 + X_Bit
  503. XWimp_ReadSysInfo        EQU    &0400F2 + X_Bit
  504. XWimp_SlotSize            EQU    &0400EC + X_Bit
  505. XDDEUtils_SetCLSize        EQU    &042581 + X_Bit
  506.  
  507. XFilter_RegisterPreFilter    EQU    &042640 + X_Bit
  508. XFilter_RegisterPostFilter    EQU    &042641 + X_Bit
  509. XFilter_DeRegisterPreFilter    EQU    &042642 + X_Bit
  510. XFilter_DeRegisterPostFilter    EQU    &042643 + X_Bit
  511.  
  512. XSharedUnixLibrary_RegisterUpCall    EQU    &55c80 + X_Bit
  513. XSharedUnixLibrary_DeRegisterUpCall    EQU    &55c81 + X_Bit
  514. XSharedUnixLibrary_SetValue        EQU    &55c82 + X_Bit
  515. XSharedUnixLibrary_Count        EQU    &55c83 + X_Bit
  516.  
  517.     END
  518.