KizarmProbe.
Hlavní stránka
Moduly
Třídy
Soubory
Seznam souborů
Symboly v souborech
Vše
Třídy
Soubory
Funkce
Proměnné
Výčty
Hodnoty výčtu
Definice maker
Skupiny
Stránky
lpc11
locker.h
Zobrazit dokumentaci tohoto souboru.
1
#ifndef LOCKER_H
2
#define LOCKER_H
3
17
extern
volatile
int
gblMutex
;
18
static
const
unsigned
LockerChunk = 0x80;
19
static
const
unsigned
LockerLimit = 0x8000;
20
class
Locker
{
21
22
public
:
24
Locker
() { cnt = 0; max = LockerChunk; };
26
void
Fini
(
void
) {};
28
void
lock
(
void
) {
29
asm
volatile
(
"cpsid i"
);
30
gblMutex
++;
31
};
33
void
unlock
(
void
) {
34
if
(--
gblMutex
)
return
;
35
asm
volatile
(
"cpsie i"
);
36
};
37
void
Reset (
void
) {
38
max = LockerChunk;
39
};
41
bool
NotDone
(
void
) {
42
if
(cnt++ < max)
return
true
;
43
cnt = 0;
44
// Saturate max
45
if
(max > LockerLimit)
return
false
;
46
max += LockerChunk;
47
return
false
;
48
};
49
private
:
// ve fw nic
50
unsigned
cnt;
51
unsigned
max;
52
};
53
54
#endif // LOCKER_H
Locker
Definition:
locker.h:20
Locker::Locker
Locker()
Konstruktor.
Definition:
locker.h:24
gblMutex
volatile int gblMutex
Zamykání a odemykání vlákna.
Definition:
main.cpp:4
Locker::unlock
void unlock(void)
Odemčení
Definition:
locker.h:33
Locker::lock
void lock(void)
Uzamčení
Definition:
locker.h:28
Locker::NotDone
bool NotDone(void)
prodlouzeni smycky
Definition:
locker.h:41
Locker::Fini
void Fini(void)
Místo destruktoru.
Definition:
locker.h:26
Generováno ne 15. lis 2015 10.32:43 pro projekt KizarmProbe. programem
1.8.6