Subversion Repositories Kolibri OS

Rev

Rev 2612 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2612 Rev 2614
Line 11... Line 11...
11
;;         GNU GENERAL PUBLIC LICENSE                              ;;
11
;;         GNU GENERAL PUBLIC LICENSE                              ;;
12
;;          Version 2, June 1991                                   ;;
12
;;          Version 2, June 1991                                   ;;
13
;;                                                                 ;;
13
;;                                                                 ;;
14
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
14
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Line 15... Line 15...
15
 
15
 
Line 16... Line 16...
16
$Revision: 2612 $
16
$Revision: 2614 $
Line 17... Line 17...
17
 
17
 
Line 169... Line 169...
169
        data_size               dd ?
169
        data_size               dd ?
Line 170... Line 170...
170
 
170
 
Line 171... Line 171...
171
ends
171
ends
Line 172... Line 172...
172
 
172
 
173
 
173
 
174
SOCKETBUFFSIZE          equ 4096     ; in bytes
174
SOCKETBUFFSIZE          = 4096     ; in bytes
Line 175... Line 175...
175
 
175
 
176
SOCKET_QUEUE_SIZE       equ 10       ; maximum number ofincoming packets queued for 1 socket
176
SOCKET_QUEUE_SIZE       = 10       ; maximum number ofincoming packets queued for 1 socket
177
; the incoming packet queue for sockets is placed in the socket struct itself, at this location from start
177
; the incoming packet queue for sockets is placed in the socket struct itself, at this location from start
178
SOCKET_QUEUE_LOCATION   equ (SOCKETBUFFSIZE - SOCKET_QUEUE_SIZE*sizeof.socket_queue_entry - sizeof.queue)
178
SOCKET_QUEUE_LOCATION   = (SOCKETBUFFSIZE - SOCKET_QUEUE_SIZE*sizeof.socket_queue_entry - sizeof.queue)
Line 219... Line 219...
219
;-----------------------------------------------------------------
219
;-----------------------------------------------------------------
220
;
220
;
221
; Socket API (function 74)
221
; Socket API (function 74)
222
;
222
;
223
;-----------------------------------------------------------------
223
;-----------------------------------------------------------------
224
align 16
224
align 4
-
 
225
sys_socket:
-
 
226
 
-
 
227
        cmp     ebx, 255
-
 
228
        jz      SOCKET_debug
-
 
229
 
-
 
230
        cmp     ebx, .number
-
 
231
        ja      s_error
-
 
232
        jmp     dword [.table + 4*ebx]
-
 
233
 
225
sock_sysfn_table:
234
  .table:
226
        dd      SOCKET_open     ; 0
235
        dd      SOCKET_open     ; 0
227
        dd      SOCKET_close    ; 1
236
        dd      SOCKET_close    ; 1
228
        dd      SOCKET_bind     ; 2
237
        dd      SOCKET_bind     ; 2
229
        dd      SOCKET_listen   ; 3
238
        dd      SOCKET_listen   ; 3
230
        dd      SOCKET_connect  ; 4
239
        dd      SOCKET_connect  ; 4
231
        dd      SOCKET_accept   ; 5
240
        dd      SOCKET_accept   ; 5
232
        dd      SOCKET_send     ; 6
241
        dd      SOCKET_send     ; 6
233
        dd      SOCKET_receive  ; 7
242
        dd      SOCKET_receive  ; 7
234
        dd      SOCKET_set_opt  ; 8
243
        dd      SOCKET_set_opt  ; 8
235
        dd      SOCKET_get_opt  ; 9
244
        dd      SOCKET_get_opt  ; 9
236
 
-
 
237
SOCKET_SYSFUNCS = ($ - sock_sysfn_table)/4
-
 
238
 
-
 
239
 
-
 
240
align 4
-
 
241
sys_socket:
-
 
242
        cmp     ebx, SOCKET_SYSFUNCS-1
-
 
243
        ja      @f
-
 
244
        jmp     dword [sock_sysfn_table + 4*ebx]
-
 
245
       @@:
-
 
246
        cmp     ebx, 255
-
 
247
        jz      SOCKET_debug
245
  .number = ($ - .table) / 4 - 1
Line 248... Line 246...
248
 
246
 
249
s_error:
247
s_error:
250
        DEBUGF  1,"socket error\n"
248
        DEBUGF  1,"socket error\n"