Subversion Repositories Kolibri OS

Rev

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

Rev 3202 Rev 3460
Line 3... Line 3...
3
;; Copyright (C) KolibriOS team 2011-2012. All rights reserved. ;;
3
;; Copyright (C) KolibriOS team 2011-2012. 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
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Line 7... Line 7...
7
 
7
 
Line 8... Line 8...
8
$Revision: 3202 $
8
$Revision: 3460 $
9
 
9
 
10
; =============================================================================
10
; =============================================================================
11
; ================================= Constants =================================
11
; ================================= Constants =================================
Line 148... Line 148...
148
; 0 if media is not inserted, nonzero otherwise.
148
; 0 if media is not inserted, nonzero otherwise.
149
        MediaUsed       db ?
149
        MediaUsed       db ?
150
; 0 if media fields are not used, nonzero otherwise. If .MediaRefCount is
150
; 0 if media fields are not used, nonzero otherwise. If .MediaRefCount is
151
; nonzero, this field is nonzero too; however, when .MediaRefCount goes
151
; nonzero, this field is nonzero too; however, when .MediaRefCount goes
152
; to zero, there is some time interval during which media object is still used.
152
; to zero, there is some time interval during which media object is still used.
153
        align 4
153
                        dw ? ; padding
154
; The following fields are not valid unless either .MediaInserted is nonzero
154
; The following fields are not valid unless either .MediaInserted is nonzero
155
; or they are accessed from a code which has obtained the reference when
155
; or they are accessed from a code which has obtained the reference when
156
; .MediaInserted was nonzero.
156
; .MediaInserted was nonzero.
157
        MediaRefCount   dd ?
157
        MediaRefCount   dd ?
158
; Count of active references to the media object. One reference is kept during
158
; Count of active references to the media object. One reference is kept during
Line 379... Line 379...
379
; Media is not inserted, reference counter is 1.
379
; Media is not inserted, reference counter is 1.
380
        lea     ecx, [esi+DISK.MediaLock]
380
        lea     ecx, [esi+DISK.MediaLock]
381
        call    mutex_init
381
        call    mutex_init
382
        xor     eax, eax
382
        xor     eax, eax
383
        mov     dword [esi+DISK.MediaInserted], eax
383
        mov     dword [esi+DISK.MediaInserted], eax
-
 
384
        mov     [esi+DISK.MediaRefCount], eax
384
        inc     eax
385
        inc     eax
385
        mov     [esi+DISK.RefCount], eax
386
        mov     [esi+DISK.RefCount], eax
386
; The DISK structure is initialized.
387
; The DISK structure is initialized.
387
; 5. Insert the new structure to the global list.
388
; 5. Insert the new structure to the global list.
388
; 5a. Acquire the mutex.
389
; 5a. Acquire the mutex.