Subversion Repositories Kolibri OS

Rev

Rev 914 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 914 Rev 2971
Line 1... Line 1...
1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2
;;                                                              ;;
2
;;                                                              ;;
3
;; Copyright (C) KolibriOS team 2004-2007. All rights reserved. ;;
3
;; Copyright (C) KolibriOS team 2004-2008. All rights reserved. ;;
4
;; Distributed under terms of the GNU General Public License    ;;
4
;; Distributed under terms of the GNU General Public License    ;;
5
;;                                                              ;;
5
;;                                                              ;;
6
;;                                                              ;;
6
;;                                                              ;;
7
;;  QUEUE.INC                                                   ;;
7
;;  QUEUE.INC                                                   ;;
8
;;                                                              ;;
8
;;                                                              ;;
9
;;  Buffer queue management for Menuet OS TCP/IP Stack          ;;
9
;;  Buffer queue management for Menuet OS TCP/IP Stack          ;;
10
;;                                                              ;;
10
;;                                                              ;;
11
;;  Version 0.3  29 August 2002                                 ;;
-
 
12
;;                                                              ;;
-
 
13
;;  Copyright 2002 Mike Hibbett, mikeh@oceanfree.net            ;;
11
;;  Copyright 2002 Mike Hibbett, mikeh@oceanfree.net            ;;
14
;;                                                              ;;
12
;;                                                              ;;
15
;;  See file COPYING for details                                ;;
13
;;  See file COPYING for details                                ;;
16
;;                                                              ;;
14
;;                                                              ;;
17
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
15
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Line 18... Line 16...
18
 
16
 
Line 19... Line 17...
19
$Revision: 914 $
17
$Revision: 2971 $
20
 
18
 
21
 
19
 
Line 41... Line 39...
41
;       Adds a buffer number to the beginning of the free list.
39
;       Adds a buffer number to the beginning of the free list.
42
;       buffer number in eax  ( ms word zeroed )
40
;       buffer number in eax  ( ms word zeroed )
43
;       all other registers preserved
41
;       all other registers preserved
44
;        This always works, so no error returned
42
;        This always works, so no error returned
45
;***************************************************************************
43
;***************************************************************************
46
uglobal
44
;uglobal
47
  freeBuff_cnt dd ?
45
;  freeBuff_cnt dd ?
48
endg
46
;endg
49
freeBuff:
47
freeBuff:
50
;        inc     [freeBuff_cnt]
48
;        inc     [freeBuff_cnt]
51
;        DEBUGF  1, "K : freeBuff (%u)\n", [freeBuff_cnt]
49
;        DEBUGF  1, "K : freeBuff (%u)\n", [freeBuff_cnt]
52
    push    ebx
50
    push    ebx
53
    push    ecx
51
    push    ecx
Line 104... Line 102...
104
;       queue number in eax ( ms word zeroed )
102
;       queue number in eax ( ms word zeroed )
105
;       buffer number in ebx  ( ms word zeroed )
103
;       buffer number in ebx  ( ms word zeroed )
106
;       all other registers preserved
104
;       all other registers preserved
107
;        This always works, so no error returned
105
;        This always works, so no error returned
108
;***************************************************************************
106
;***************************************************************************
109
uglobal
107
;uglobal
110
  queue_cnt dd ?
108
;  queue_cnt dd ?
111
endg
109
;endg
112
queue:
110
queue:
113
;        inc     [queue_cnt]
111
;        inc     [queue_cnt]
114
;        DEBUGF  1, "K : queue (%u)\n", [queue_cnt]
112
;        DEBUGF  1, "K : queue (%u)\n", [queue_cnt]
115
    push    ebx
113
    push    ebx
116
    shl     ebx, 1
114
    shl     ebx, 1
Line 159... Line 157...
159
;       queue number in eax ( ms word zeroed )
157
;       queue number in eax ( ms word zeroed )
160
;       buffer number returned in eax ( ms word zeroed )
158
;       buffer number returned in eax ( ms word zeroed )
161
;       all other registers preserved
159
;       all other registers preserved
162
;
160
;
163
;***************************************************************************
161
;***************************************************************************
164
uglobal
162
;uglobal
165
  dequeue_cnt dd ?
163
;  dequeue_cnt dd ?
166
endg
164
;endg
167
dequeue:
165
dequeue:
168
    push    ebx
166
    push    ebx
169
    shl     eax, 1
167
    shl     eax, 1
170
    add     eax, queues            ; eax now holds address of queue
168
    add     eax, queues            ; eax now holds address of queue
171
    mov     ebx, eax
169
    mov     ebx, eax