equal
deleted
inserted
replaced
18 #include <kernel/kern_priv.h> |
18 #include <kernel/kern_priv.h> |
19 |
19 |
20 _LIT(KLitKernHeap,"KernHeap"); |
20 _LIT(KLitKernHeap,"KernHeap"); |
21 |
21 |
22 RHeapK::RHeapK(TInt aInitialSize) |
22 RHeapK::RHeapK(TInt aInitialSize) |
23 : RHeap(aInitialSize, 0, EFalse) |
23 : RHybridHeap(aInitialSize, 0, EFalse) |
24 { |
24 { |
25 } |
25 } |
26 |
26 |
27 TInt RHeapK::Compress() |
27 TInt RHeapK::Compress() |
28 { |
28 { |
57 RHeapK* RHeapK::FixedHeap(TAny* aBase, TInt aInitialSize) |
57 RHeapK* RHeapK::FixedHeap(TAny* aBase, TInt aInitialSize) |
58 // |
58 // |
59 // Create a kernel fixed heap. |
59 // Create a kernel fixed heap. |
60 // |
60 // |
61 { |
61 { |
62 |
62 __ASSERT_ALWAYS(aInitialSize>(TInt)sizeof(RHeapK), K::Fault(K::ETHeapMaxLengthNegative)); |
63 __ASSERT_ALWAYS(aInitialSize>KMinHeapSize, K::Fault(K::ETHeapMaxLengthNegative)); |
|
64 return new(aBase) RHeapK(aInitialSize); |
63 return new(aBase) RHeapK(aInitialSize); |
65 } |
64 } |
66 |
65 |
67 void RHeapK::CheckThreadState() |
66 void RHeapK::CheckThreadState() |
68 // |
67 // |
72 if (K::Initialising) |
71 if (K::Initialising) |
73 return; |
72 return; |
74 __NK_ASSERT_UNLOCKED; |
73 __NK_ASSERT_UNLOCKED; |
75 __ASSERT_NO_FAST_MUTEX; |
74 __ASSERT_NO_FAST_MUTEX; |
76 __ASSERT_CRITICAL; |
75 __ASSERT_CRITICAL; |
|
76 } |
|
77 |
|
78 void RHybridHeap::Lock() const |
|
79 { |
|
80 DMutex* m = *(DMutex**)&iLock; |
|
81 if (m) |
|
82 Kern::MutexWait(*m); |
|
83 } |
|
84 |
|
85 void RHybridHeap::Unlock() const |
|
86 { |
|
87 DMutex* m = *(DMutex**)&iLock; |
|
88 if (m) |
|
89 Kern::MutexSignal(*m); |
77 } |
90 } |
78 |
91 |
79 void RHeapK::Fault(TInt aFault) |
92 void RHeapK::Fault(TInt aFault) |
80 { |
93 { |
81 Kern::Fault("KERN-HEAP", aFault); |
94 Kern::Fault("KERN-HEAP", aFault); |