Subversion Repositories Kolibri OS

Rev

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

Rev 102 Rev 115
Line 89... Line 89...
89
endg
89
endg
Line 90... Line 90...
90
 
90
 
91
 
91
 
92
update_counters:
92
update_counters:
93
        mov   edi, [0x3010]
93
        mov   edi, [0x3010]
94
        mov   ebx, [edi+0x18] ; time stamp counter add
94
        mov   ebx, [edi+TASKDATA.counter_add] ; time stamp counter add
95
        call  _rdtsc
95
        call  _rdtsc
96
        sub   eax, ebx
96
        sub   eax, ebx
97
        add   eax, [edi+0x14] ; counter sum
97
        add   eax, [edi+TASKDATA.counter_sum] ; counter sum
Line 98... Line 98...
98
        mov   [edi+0x14], eax
98
        mov   [edi+TASKDATA.counter_sum], eax
99
ret
99
ret
Line 121... Line 121...
121
      @@:
121
      @@:
Line 122... Line 122...
122
 
122
 
123
        add   edi,0x20
123
        add   edi,0x20
Line 124... Line 124...
124
        inc   ebx
124
        inc   ebx
125
 
125
 
126
        mov   al, byte [edi+0xA]
126
        mov   al, byte [edi+TASKDATA.state]
127
        test  al, al
127
        test  al, al
128
        jz    .found
128
        jz    .found
129
	cmp   al, 1
129
	cmp   al, 1
Line 144... Line 144...
144
        jne   .noevents
144
        jne   .noevents
145
        call  get_event_for_app
145
        call  get_event_for_app
146
        test  eax, eax
146
        test  eax, eax
147
        jz    .waiting_for_event
147
        jz    .waiting_for_event
148
        mov   [event_sched], eax
148
        mov   [event_sched], eax
149
        mov   [edi+0xA], byte 0
149
        mov   [edi+TASKDATA.state], byte 0
150
      .noevents:
150
      .noevents:
151
      .found:
151
      .found:
152
        mov   [0x3000],ebx
152
        mov   [0x3000],ebx
153
        mov   [0x3010],edi
153
        mov   [0x3010],edi
154
        call  _rdtsc
154
        call  _rdtsc
155
        mov   [edi+0x18],eax
155
        mov   [edi+TASKDATA.counter_add],eax
Line 156... Line 156...
156
 
156
 
157
	xor   eax, eax
157
	xor   eax, eax
158
        cmp   ebx, [prev_slot]
158
        cmp   ebx, [prev_slot]
159
        sete  al
159
        sete  al
Line 179... Line 179...
179
        mov  [idleusesec],eax
179
        mov  [idleusesec],eax
180
        mov  [idleuse],dword 0
180
        mov  [idleuse],dword 0
181
        mov  ecx, [0x3004]
181
        mov  ecx, [0x3004]
182
        mov  edi, 0x3020
182
        mov  edi, 0x3020
183
      .newupdate:
183
      .newupdate:
184
        mov  ebx,[edi+0x14]
184
        mov  ebx,[edi+TASKDATA.counter_sum]
185
        mov  [edi+0x1c],ebx
185
        mov  [edi+TASKDATA.cpu_usage],ebx
186
        mov  [edi+0x14],dword 0
186
        mov  [edi+TASKDATA.counter_sum],dword 0
187
        add  edi,0x20
187
        add  edi,0x20
188
        dec  ecx
188
        dec  ecx
189
        jnz  .newupdate
189
        jnz  .newupdate
Line 190... Line 190...
190
 
190