Lines Matching defs:cache
21 static uint16 GetReadCursor(HiviewCache *cache);
23 boolean InitHiviewStaticCache(HiviewCache *cache, HiviewCacheType type, uint8 *buffer, uint16 size)
25 if (cache == NULL) {
29 cache->usedSize = 0;
30 cache->wCursor = 0;
31 cache->buffer = buffer;
32 cache->size = size;
33 cache->type = type;
38 boolean InitHiviewCache(HiviewCache *cache, HiviewCacheType type, uint16 size)
40 if (cache == NULL) {
49 cache->usedSize = 0;
50 cache->wCursor = 0;
51 cache->buffer = buffer;
52 cache->size = size;
53 cache->type = type;
58 int32 WriteToCache(HiviewCache *cache, const uint8 *data, uint16 wLen)
60 if (cache == NULL || data == NULL || cache->buffer == NULL) {
68 if ((uint32)cache->size < (uint32)wLen + (uint32)cache->usedSize) {
73 if ((uint32)cache->wCursor + (uint32)wLen > (uint32)cache->size) {
74 firstLen = cache->size - cache->wCursor;
76 if (memcpy_s(cache->buffer + cache->wCursor, firstLen, data, firstLen) == EOK) {
77 cache->wCursor += firstLen;
78 cache->usedSize += firstLen;
84 cache->wCursor = 0;
87 if (memcpy_s(cache->buffer + cache->wCursor, secondLen, data + firstLen, secondLen) == EOK) {
88 cache->wCursor += secondLen;
89 cache->usedSize += secondLen;
96 if (memcpy_s(cache->buffer + cache->wCursor, wLen, data, wLen) == EOK) {
97 cache->wCursor += wLen;
98 cache->usedSize += wLen;
109 int32 ReadFromCache(HiviewCache *cache, uint8 *data, uint16 rLen)
111 if (cache == NULL || data == NULL || cache->buffer == NULL) {
119 if (cache->usedSize < rLen) {
122 rCursor = GetReadCursor(cache);
124 if ((uint32)rCursor + (uint32)rLen > (uint32)cache->size) {
125 firstLen = cache->size - rCursor;
127 if (memcpy_s(data, firstLen, cache->buffer + rCursor, firstLen) != EOK) {
133 if (memcpy_s(data + firstLen, secondLen, cache->buffer, secondLen) != EOK) {
138 if (memcpy_s(data, rLen, cache->buffer + rCursor, rLen) != EOK) {
143 cache->usedSize -= rLen;
149 int32 PrereadFromCache(HiviewCache *cache, uint8 *data, uint16 rLen)
151 if (cache == NULL || data == NULL || cache->buffer == NULL) {
154 if (cache->usedSize < rLen) {
160 uint16 rCursor = GetReadCursor(cache);
162 if ((uint32)rCursor + (uint32)rLen > (uint32)cache->size) {
163 firstLen = cache->size - rCursor;
165 if (memcpy_s(data, firstLen, cache->buffer + rCursor, firstLen) != EOK) {
171 if (memcpy_s(data + firstLen, secondLen, cache->buffer, secondLen) != EOK) {
176 if (memcpy_s(data, rLen, cache->buffer + rCursor, rLen) != EOK) {
184 void DiscardCacheData(HiviewCache *cache)
186 if (cache == NULL) {
189 cache->wCursor = 0;
190 cache->usedSize = 0;
193 void DestroyCache(HiviewCache *cache)
195 if (cache == NULL) {
198 if (cache->buffer != NULL) {
199 HIVIEW_MemFree(MEM_POOL_HIVIEW_ID, cache->buffer);
200 cache->buffer = NULL;
202 cache->wCursor = 0;
203 cache->usedSize = 0;
204 cache->size = 0;
207 static uint16 GetReadCursor(HiviewCache *cache)
209 if (cache == NULL || cache->buffer == NULL) {
215 if (cache->wCursor >= cache->usedSize) {
216 readCursor = cache->wCursor - cache->usedSize;
218 readCursor = cache->size - (cache->usedSize - cache->wCursor);