5
5
#include " rust_internal.h"
6
6
7
7
circular_buffer::circular_buffer (rust_kernel *kernel, size_t unit_sz) :
8
- sched(kernel->sched),
9
8
kernel(kernel),
10
9
unit_sz(unit_sz),
11
10
_buffer_sz(initial_size()),
12
11
_next(0 ),
13
12
_unread(0 ),
14
13
_buffer((uint8_t *)kernel->malloc(_buffer_sz, " circular_buffer" )) {
15
14
16
- A (sched, unit_sz, " Unit size must be larger than zero." );
15
+ // A(sched, unit_sz, "Unit size must be larger than zero.");
17
16
18
- DLOG (sched, mem, " new circular_buffer(buffer_sz=%d, unread=%d)"
19
- " -> circular_buffer=0x%" PRIxPTR,
20
- _buffer_sz, _unread, this );
17
+ // DLOG(sched, mem, "new circular_buffer(buffer_sz=%d, unread=%d)"
18
+ // "-> circular_buffer=0x%" PRIxPTR,
19
+ // _buffer_sz, _unread, this);
21
20
22
- A (sched, _buffer, " Failed to allocate buffer." );
21
+ // A(sched, _buffer, "Failed to allocate buffer.");
23
22
}
24
23
25
24
circular_buffer::~circular_buffer () {
26
- DLOG (sched, mem, " ~circular_buffer 0x%" PRIxPTR, this );
27
- I (sched, _buffer);
28
- W (sched, _unread == 0 ,
29
- " freeing circular_buffer with %d unread bytes" , _unread);
25
+ // DLOG(sched, mem, "~circular_buffer 0x%" PRIxPTR, this);
26
+ // I(sched, _buffer);
27
+ // W(sched, _unread == 0,
28
+ // "freeing circular_buffer with %d unread bytes", _unread);
30
29
kernel->free (_buffer);
31
30
}
32
31
33
32
size_t
34
33
circular_buffer::initial_size () {
35
- I (sched, unit_sz > 0 );
34
+ // I(sched, unit_sz > 0);
36
35
return INITIAL_CIRCULAR_BUFFER_SIZE_IN_UNITS * unit_sz;
37
36
}
38
37
@@ -41,8 +40,8 @@ circular_buffer::initial_size() {
41
40
*/
42
41
void
43
42
circular_buffer::transfer (void *dst) {
44
- I (sched, dst);
45
- I (sched, _unread <= _buffer_sz);
43
+ // I(sched, dst);
44
+ // I(sched, _unread <= _buffer_sz);
46
45
47
46
uint8_t *ptr = (uint8_t *) dst;
48
47
@@ -54,13 +53,13 @@ circular_buffer::transfer(void *dst) {
54
53
} else {
55
54
head_sz = _buffer_sz - _next;
56
55
}
57
- I (sched, _next + head_sz <= _buffer_sz);
56
+ // I(sched, _next + head_sz <= _buffer_sz);
58
57
memcpy (ptr, _buffer + _next, head_sz);
59
58
60
59
// Then copy any other items from the beginning of the buffer
61
- I (sched, _unread >= head_sz);
60
+ // I(sched, _unread >= head_sz);
62
61
size_t tail_sz = _unread - head_sz;
63
- I (sched, head_sz + tail_sz <= _buffer_sz);
62
+ // I(sched, head_sz + tail_sz <= _buffer_sz);
64
63
memcpy (ptr + head_sz, _buffer, tail_sz);
65
64
}
66
65
@@ -70,37 +69,37 @@ circular_buffer::transfer(void *dst) {
70
69
*/
71
70
void
72
71
circular_buffer::enqueue (void *src) {
73
- I (sched, src);
74
- I (sched, _unread <= _buffer_sz);
75
- I (sched, _buffer);
72
+ // I(sched, src);
73
+ // I(sched, _unread <= _buffer_sz);
74
+ // I(sched, _buffer);
76
75
77
76
// Grow if necessary.
78
77
if (_unread == _buffer_sz) {
79
78
grow ();
80
79
}
81
80
82
- DLOG (sched, mem, " circular_buffer enqueue "
83
- " unread: %d, next: %d, buffer_sz: %d, unit_sz: %d" ,
84
- _unread, _next, _buffer_sz, unit_sz);
81
+ // DLOG(sched, mem, "circular_buffer enqueue "
82
+ // "unread: %d, next: %d, buffer_sz: %d, unit_sz: %d",
83
+ // _unread, _next, _buffer_sz, unit_sz);
85
84
86
- I (sched, _unread < _buffer_sz);
87
- I (sched, _unread + unit_sz <= _buffer_sz);
85
+ // I(sched, _unread < _buffer_sz);
86
+ // I(sched, _unread + unit_sz <= _buffer_sz);
88
87
89
88
// Copy data
90
89
size_t dst_idx = _next + _unread;
91
90
I (sched, dst_idx >= _buffer_sz || dst_idx + unit_sz <= _buffer_sz);
92
91
if (dst_idx >= _buffer_sz) {
93
92
dst_idx -= _buffer_sz;
94
93
95
- I (sched, _next >= unit_sz);
96
- I (sched, dst_idx <= _next - unit_sz);
94
+ // I(sched, _next >= unit_sz);
95
+ // I(sched, dst_idx <= _next - unit_sz);
97
96
}
98
97
99
- I (sched, dst_idx + unit_sz <= _buffer_sz);
98
+ // I(sched, dst_idx + unit_sz <= _buffer_sz);
100
99
memcpy (&_buffer[dst_idx], src, unit_sz);
101
100
_unread += unit_sz;
102
101
103
- DLOG (sched, mem, " circular_buffer pushed data at index: %d" , dst_idx);
102
+ // DLOG(sched, mem, "circular_buffer pushed data at index: %d", dst_idx);
104
103
}
105
104
106
105
/* *
@@ -110,17 +109,17 @@ circular_buffer::enqueue(void *src) {
110
109
*/
111
110
void
112
111
circular_buffer::dequeue (void *dst) {
113
- I (sched, unit_sz > 0 );
114
- I (sched, _unread >= unit_sz);
115
- I (sched, _unread <= _buffer_sz);
116
- I (sched, _buffer);
112
+ // I(sched, unit_sz > 0);
113
+ // I(sched, _unread >= unit_sz);
114
+ // I(sched, _unread <= _buffer_sz);
115
+ // I(sched, _buffer);
117
116
118
- DLOG (sched, mem,
119
- " circular_buffer dequeue "
120
- " unread: %d, next: %d, buffer_sz: %d, unit_sz: %d" ,
121
- _unread, _next, _buffer_sz, unit_sz);
117
+ // DLOG(sched, mem,
118
+ // "circular_buffer dequeue "
119
+ // "unread: %d, next: %d, buffer_sz: %d, unit_sz: %d",
120
+ // _unread, _next, _buffer_sz, unit_sz);
122
121
123
- I (sched, _next + unit_sz <= _buffer_sz);
122
+ // I(sched, _next + unit_sz <= _buffer_sz);
124
123
if (dst != NULL ) {
125
124
memcpy (dst, &_buffer[_next], unit_sz);
126
125
}
@@ -140,8 +139,9 @@ circular_buffer::dequeue(void *dst) {
140
139
void
141
140
circular_buffer::grow () {
142
141
size_t new_buffer_sz = _buffer_sz * 2 ;
143
- I (sched, new_buffer_sz <= MAX_CIRCULAR_BUFFER_SIZE);
144
- DLOG (sched, mem, " circular_buffer is growing to %d bytes" , new_buffer_sz);
142
+ // I(sched, new_buffer_sz <= MAX_CIRCULAR_BUFFER_SIZE);
143
+ // DLOG(sched, mem, "circular_buffer is growing to %d bytes",
144
+ // new_buffer_sz);
145
145
void *new_buffer = kernel->malloc (new_buffer_sz,
146
146
" new circular_buffer (grow)" );
147
147
transfer (new_buffer);
@@ -154,9 +154,9 @@ circular_buffer::grow() {
154
154
void
155
155
circular_buffer::shrink () {
156
156
size_t new_buffer_sz = _buffer_sz / 2 ;
157
- I (sched, initial_size () <= new_buffer_sz);
158
- DLOG (sched, mem, " circular_buffer is shrinking to %d bytes" ,
159
- new_buffer_sz);
157
+ // I(sched, initial_size() <= new_buffer_sz);
158
+ // DLOG(sched, mem, "circular_buffer is shrinking to %d bytes",
159
+ // new_buffer_sz);
160
160
void *new_buffer = kernel->malloc (new_buffer_sz,
161
161
" new circular_buffer (shrink)" );
162
162
transfer (new_buffer);
0 commit comments