ring buffer
rbuf.c@2:d1095a112328, 2011-06-23 (annotated)
- Committer:
- est2fe
- Date:
- Thu Jun 23 20:21:41 2011 +0000
- Revision:
- 2:d1095a112328
- Parent:
- 0:eae8cffdd121
- Child:
- 3:c9c7c8e20336
V 0.92
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
est2fe | 0:eae8cffdd121 | 1 | #ifndef __charbuf_c_ |
est2fe | 0:eae8cffdd121 | 2 | #define __charbuf_c_ |
est2fe | 0:eae8cffdd121 | 3 | |
est2fe | 0:eae8cffdd121 | 4 | #include "mbed.h" |
est2fe | 0:eae8cffdd121 | 5 | |
est2fe | 0:eae8cffdd121 | 6 | #include "globals.h" // Wegen g_display_error |
est2fe | 0:eae8cffdd121 | 7 | #include "rbuf.h" |
est2fe | 0:eae8cffdd121 | 8 | #include "eprintf.h" |
est2fe | 0:eae8cffdd121 | 9 | |
est2fe | 0:eae8cffdd121 | 10 | // int debug_create_charbuffer = 0; |
est2fe | 0:eae8cffdd121 | 11 | int display_receive_io = 0; |
est2fe | 0:eae8cffdd121 | 12 | int display_send_io = 0; |
est2fe | 0:eae8cffdd121 | 13 | //int debug_add_pointer_Klartext = 0; |
est2fe | 0:eae8cffdd121 | 14 | int debug_display_charbuffer_header = 0; |
est2fe | 0:eae8cffdd121 | 15 | |
est2fe | 0:eae8cffdd121 | 16 | void init_header (buffer_header_t *h, void *buf, uint16_t objektanzahl, uint16_t Schwelle, uint16_t objektgroesse) |
est2fe | 0:eae8cffdd121 | 17 | { |
est2fe | 0:eae8cffdd121 | 18 | if (g_display_Funktion) {eprintf ("In init_header: \r\n"); } |
est2fe | 0:eae8cffdd121 | 19 | h->buflen = objektanzahl; |
est2fe | 0:eae8cffdd121 | 20 | h->bufcnt = 0; |
est2fe | 0:eae8cffdd121 | 21 | h->in = buf; |
est2fe | 0:eae8cffdd121 | 22 | h->out = buf; |
est2fe | 0:eae8cffdd121 | 23 | h->buf = buf; |
est2fe | 0:eae8cffdd121 | 24 | h->anzahl = 0; |
est2fe | 0:eae8cffdd121 | 25 | h->fehleranzahl = 0; |
est2fe | 0:eae8cffdd121 | 26 | h->Schwelle = Schwelle; |
est2fe | 0:eae8cffdd121 | 27 | h->flags = 0; |
est2fe | 0:eae8cffdd121 | 28 | h->peak_max = 0; |
est2fe | 0:eae8cffdd121 | 29 | h->blockgroesse = objektgroesse; |
est2fe | 0:eae8cffdd121 | 30 | } |
est2fe | 0:eae8cffdd121 | 31 | |
est2fe | 0:eae8cffdd121 | 32 | buffer_header_t *charbuffer_init (uint16_t b_size, uint16_t b_schwelle, uint16_t blockgroesse) |
est2fe | 0:eae8cffdd121 | 33 | { |
est2fe | 0:eae8cffdd121 | 34 | void *buffer_p; |
est2fe | 0:eae8cffdd121 | 35 | buffer_header_t *kopf_p; |
est2fe | 0:eae8cffdd121 | 36 | |
est2fe | 0:eae8cffdd121 | 37 | if (g_display_Funktion) {eprintf ("In create_charbuffer: \r\n"); } |
est2fe | 0:eae8cffdd121 | 38 | |
est2fe | 0:eae8cffdd121 | 39 | // Zuerst mal Speicher fuer die Verwaltungsstruktur holen |
est2fe | 0:eae8cffdd121 | 40 | kopf_p = (buffer_header_t *) calloc (1, (sizeof(buffer_header_t))); |
est2fe | 0:eae8cffdd121 | 41 | if (kopf_p > 0x00) |
est2fe | 0:eae8cffdd121 | 42 | { |
est2fe | 0:eae8cffdd121 | 43 | memset (kopf_p, 0x00, (sizeof(buffer_header_t))); |
est2fe | 0:eae8cffdd121 | 44 | } |
est2fe | 0:eae8cffdd121 | 45 | else |
est2fe | 0:eae8cffdd121 | 46 | { |
est2fe | 0:eae8cffdd121 | 47 | // Fehler! |
est2fe | 0:eae8cffdd121 | 48 | eprintf ("Error: Kein Speicher mehr bei create_charbuffer-Verwaltungs-Strukt -> stop\n\r"); |
est2fe | 0:eae8cffdd121 | 49 | stop++; |
est2fe | 0:eae8cffdd121 | 50 | return 0x00; |
est2fe | 0:eae8cffdd121 | 51 | } |
est2fe | 0:eae8cffdd121 | 52 | |
est2fe | 0:eae8cffdd121 | 53 | // Jetzt noch die eigentlichen Receive- und send-char-Speicher |
est2fe | 0:eae8cffdd121 | 54 | size_t blen = b_size * blockgroesse; |
est2fe | 0:eae8cffdd121 | 55 | buffer_p = calloc (1, blen); |
est2fe | 0:eae8cffdd121 | 56 | if (buffer_p > 0x00) |
est2fe | 0:eae8cffdd121 | 57 | { |
est2fe | 0:eae8cffdd121 | 58 | memset (buffer_p, 0x00, blen); |
est2fe | 0:eae8cffdd121 | 59 | } |
est2fe | 0:eae8cffdd121 | 60 | else |
est2fe | 0:eae8cffdd121 | 61 | { |
est2fe | 0:eae8cffdd121 | 62 | // gibt es noch nichts! -> evtl. Fehlemeldung, dass nciht mehr genuegend Speicher vorhanden ist. |
est2fe | 0:eae8cffdd121 | 63 | eprintf ("Error: Kein Speicher mehr bei create_charbuffer, r_buffer -> stop\n\r"); |
est2fe | 0:eae8cffdd121 | 64 | stop++; |
est2fe | 0:eae8cffdd121 | 65 | return 0x00; |
est2fe | 0:eae8cffdd121 | 66 | } |
est2fe | 0:eae8cffdd121 | 67 | |
est2fe | 0:eae8cffdd121 | 68 | // Und die Buffer-Verwaltung noch initialisieren |
est2fe | 0:eae8cffdd121 | 69 | |
est2fe | 0:eae8cffdd121 | 70 | init_header (kopf_p, buffer_p, b_size, b_schwelle, blockgroesse); |
est2fe | 0:eae8cffdd121 | 71 | return kopf_p; |
est2fe | 0:eae8cffdd121 | 72 | } |
est2fe | 0:eae8cffdd121 | 73 | |
est2fe | 0:eae8cffdd121 | 74 | io_buf_s *create_charbuffer_io (uint16_t r_size, uint16_t s_size, uint16_t r_schwelle, uint16_t s_schwelle, uint16_t blockgroesse) |
est2fe | 0:eae8cffdd121 | 75 | { |
est2fe | 0:eae8cffdd121 | 76 | io_buf_s *rbio; // Ring-Bufferpaar I/O |
est2fe | 0:eae8cffdd121 | 77 | void *r_buffer_p; |
est2fe | 0:eae8cffdd121 | 78 | void *s_buffer_p; |
est2fe | 0:eae8cffdd121 | 79 | if (g_display_Funktion) {eprintf ("In create_charbuffer: \r\n"); } |
est2fe | 0:eae8cffdd121 | 80 | |
est2fe | 0:eae8cffdd121 | 81 | // Zuerst mal Speicher fuer die 2 I/O-Verwaltungsstrukturen holen |
est2fe | 0:eae8cffdd121 | 82 | |
est2fe | 0:eae8cffdd121 | 83 | rbio = (io_buf_s *) calloc (1, (sizeof(io_buf_s))); |
est2fe | 0:eae8cffdd121 | 84 | if (rbio > 0x00) |
est2fe | 0:eae8cffdd121 | 85 | { |
est2fe | 0:eae8cffdd121 | 86 | memset (rbio, 0x00, (sizeof(io_buf_s))); |
est2fe | 0:eae8cffdd121 | 87 | } |
est2fe | 0:eae8cffdd121 | 88 | else |
est2fe | 0:eae8cffdd121 | 89 | { |
est2fe | 0:eae8cffdd121 | 90 | // Fehler! |
est2fe | 0:eae8cffdd121 | 91 | eprintf ("Error: Kein Speicher mehr bei create_charbuffer-Verwaltungs-Strukt -> stop\n\r"); |
est2fe | 0:eae8cffdd121 | 92 | stop++; |
est2fe | 0:eae8cffdd121 | 93 | return 0x00; |
est2fe | 0:eae8cffdd121 | 94 | } |
est2fe | 0:eae8cffdd121 | 95 | // Jetzt noch die eigentlichen Receive- und send-char-Speicher |
est2fe | 0:eae8cffdd121 | 96 | size_t blen = r_size * blockgroesse; |
est2fe | 0:eae8cffdd121 | 97 | r_buffer_p = calloc (1, blen); |
est2fe | 0:eae8cffdd121 | 98 | if (r_buffer_p > 0x00) |
est2fe | 0:eae8cffdd121 | 99 | { |
est2fe | 0:eae8cffdd121 | 100 | memset (r_buffer_p, 0x00, blen); |
est2fe | 0:eae8cffdd121 | 101 | } |
est2fe | 0:eae8cffdd121 | 102 | else |
est2fe | 0:eae8cffdd121 | 103 | { |
est2fe | 0:eae8cffdd121 | 104 | // gibt es noch nichts! -> evtl. Fehlemeldung, dass nciht mehr genuegend Speicher vorhanden ist. |
est2fe | 0:eae8cffdd121 | 105 | eprintf ("Error: Kein Speicher mehr bei create_charbuffer, r_buffer -> stop\n\r"); |
est2fe | 0:eae8cffdd121 | 106 | stop++; |
est2fe | 0:eae8cffdd121 | 107 | return 0x00; |
est2fe | 0:eae8cffdd121 | 108 | } |
est2fe | 0:eae8cffdd121 | 109 | |
est2fe | 0:eae8cffdd121 | 110 | // pointer_add_check_null (r_buffer, "create_charbuffer receive_buffer"); |
est2fe | 0:eae8cffdd121 | 111 | size_t slen = s_size * blockgroesse; |
est2fe | 0:eae8cffdd121 | 112 | s_buffer_p = (char *) calloc (1, blockgroesse); |
est2fe | 0:eae8cffdd121 | 113 | if (s_buffer_p > 0x00) |
est2fe | 0:eae8cffdd121 | 114 | { |
est2fe | 0:eae8cffdd121 | 115 | memset (s_buffer_p, 0x00, slen); |
est2fe | 0:eae8cffdd121 | 116 | } |
est2fe | 0:eae8cffdd121 | 117 | else |
est2fe | 0:eae8cffdd121 | 118 | { |
est2fe | 0:eae8cffdd121 | 119 | // evtl. Fehlermeldung, dass nicht genuegend Speicher vorhanden ist. |
est2fe | 0:eae8cffdd121 | 120 | eprintf ("Error: Kein Speicher mehr bei create_charbuffer, s_buffer -> stop\n\r"); |
est2fe | 0:eae8cffdd121 | 121 | stop++; |
est2fe | 0:eae8cffdd121 | 122 | return 0x00; |
est2fe | 0:eae8cffdd121 | 123 | } |
est2fe | 0:eae8cffdd121 | 124 | // Jetzt noch die Bufferzeiger in die Verwaltungsstrukturen eintragen |
est2fe | 0:eae8cffdd121 | 125 | // Und die Buffer-Verwaltung noch initialisieren |
est2fe | 0:eae8cffdd121 | 126 | |
est2fe | 0:eae8cffdd121 | 127 | init_header (&(rbio->in), r_buffer_p, r_size, r_schwelle, blockgroesse); |
est2fe | 0:eae8cffdd121 | 128 | init_header (&(rbio->out), s_buffer_p, s_size, s_schwelle, blockgroesse); |
est2fe | 0:eae8cffdd121 | 129 | return rbio; |
est2fe | 0:eae8cffdd121 | 130 | } |
est2fe | 0:eae8cffdd121 | 131 | |
est2fe | 2:d1095a112328 | 132 | void *charbuffer_readable (buffer_header_t * r) // Nur schauen, ob im Buffer neue Ojekte drin sind. |
est2fe | 0:eae8cffdd121 | 133 | { |
est2fe | 2:d1095a112328 | 134 | return r->bufcnt; |
est2fe | 2:d1095a112328 | 135 | /* |
est2fe | 0:eae8cffdd121 | 136 | if (r->bufcnt == 0) |
est2fe | 0:eae8cffdd121 | 137 | { |
est2fe | 0:eae8cffdd121 | 138 | return 0; |
est2fe | 0:eae8cffdd121 | 139 | } |
est2fe | 0:eae8cffdd121 | 140 | else |
est2fe | 0:eae8cffdd121 | 141 | { |
est2fe | 0:eae8cffdd121 | 142 | return r->out; // ?!? |
est2fe | 0:eae8cffdd121 | 143 | } |
est2fe | 2:d1095a112328 | 144 | */ |
est2fe | 0:eae8cffdd121 | 145 | } |
est2fe | 0:eae8cffdd121 | 146 | |
est2fe | 0:eae8cffdd121 | 147 | void *charbuffer_get (buffer_header_t *r, void *target) // Einen char/Block rausholen mit Readzeiger++ |
est2fe | 0:eae8cffdd121 | 148 | { |
est2fe | 0:eae8cffdd121 | 149 | void *p_b; // Pointer block |
est2fe | 0:eae8cffdd121 | 150 | if (g_display_Funktion) {eprintf ("In charbuffer_get: \r\n"); } |
est2fe | 0:eae8cffdd121 | 151 | if (r->bufcnt == 0) |
est2fe | 0:eae8cffdd121 | 152 | { |
est2fe | 0:eae8cffdd121 | 153 | r->flags = r->flags & ((uint8_t) (~NOT_EMPTY)); |
est2fe | 0:eae8cffdd121 | 154 | return 0; |
est2fe | 0:eae8cffdd121 | 155 | } |
est2fe | 0:eae8cffdd121 | 156 | // else |
est2fe | 0:eae8cffdd121 | 157 | // p_b = r->out++; // ?!? // zuerst rausholen, dann Read-Zeiger versetzen |
est2fe | 0:eae8cffdd121 | 158 | p_b = r->out; |
est2fe | 0:eae8cffdd121 | 159 | r->out = (void *) (((char *) r->out) + r->blockgroesse ); |
est2fe | 0:eae8cffdd121 | 160 | r->bufcnt--; // Ein char weniger im Buffer |
est2fe | 0:eae8cffdd121 | 161 | if (r->bufcnt >= r->Schwelle) |
est2fe | 0:eae8cffdd121 | 162 | { |
est2fe | 0:eae8cffdd121 | 163 | r->flags = r->flags | ((uint8_t) (FAST_VOLL)); |
est2fe | 0:eae8cffdd121 | 164 | } |
est2fe | 0:eae8cffdd121 | 165 | else |
est2fe | 0:eae8cffdd121 | 166 | { |
est2fe | 0:eae8cffdd121 | 167 | r->flags = r->flags & ((uint8_t) (~FAST_VOLL)); |
est2fe | 0:eae8cffdd121 | 168 | } |
est2fe | 0:eae8cffdd121 | 169 | if (r->bufcnt == 0) |
est2fe | 0:eae8cffdd121 | 170 | { |
est2fe | 0:eae8cffdd121 | 171 | r->flags = r->flags & ((uint8_t) (~NOT_EMPTY)); |
est2fe | 0:eae8cffdd121 | 172 | } |
est2fe | 0:eae8cffdd121 | 173 | memcpy (target, p_b, r->blockgroesse); |
est2fe | 0:eae8cffdd121 | 174 | |
est2fe | 0:eae8cffdd121 | 175 | // (1 - 8) |
est2fe | 0:eae8cffdd121 | 176 | // if (r->out >= r->buf + (r->buflen)) // ?? Hier ist die Zeigerarithmetik noch unklar! |
est2fe | 0:eae8cffdd121 | 177 | if (r->out >= (void *)(((char *)(r->buf)) + (r->buflen * r->blockgroesse))) // ?? Hier ist die Zeigerarithmetik noch unklar! |
est2fe | 0:eae8cffdd121 | 178 | { |
est2fe | 0:eae8cffdd121 | 179 | // wrap around to beginning |
est2fe | 0:eae8cffdd121 | 180 | r->out = r->buf; |
est2fe | 0:eae8cffdd121 | 181 | } |
est2fe | 0:eae8cffdd121 | 182 | return p_b; // ?!? |
est2fe | 0:eae8cffdd121 | 183 | } |
est2fe | 0:eae8cffdd121 | 184 | |
est2fe | 0:eae8cffdd121 | 185 | void charbuffer_copy (void *qf, void *zf, uint16_t groesse) // Quelle -> Ziel kopieren // ?!? noch ben�tigt? |
est2fe | 0:eae8cffdd121 | 186 | { |
est2fe | 0:eae8cffdd121 | 187 | // |
est2fe | 0:eae8cffdd121 | 188 | if (g_display_Funktion) {eprintf ("In charbuffer_copy: \r\n"); } |
est2fe | 0:eae8cffdd121 | 189 | memcpy (zf, qf, groesse); |
est2fe | 0:eae8cffdd121 | 190 | return; |
est2fe | 0:eae8cffdd121 | 191 | } |
est2fe | 0:eae8cffdd121 | 192 | |
est2fe | 0:eae8cffdd121 | 193 | void charbuffer_move (void *qf, void *zf, uint16_t groesse) // Quelle -> Ziel (Move char mit anschliessendem loeschen der Quelle) |
est2fe | 0:eae8cffdd121 | 194 | { |
est2fe | 0:eae8cffdd121 | 195 | if (g_display_Funktion) {eprintf ("In charbuffer_move: \r\n"); } |
est2fe | 0:eae8cffdd121 | 196 | charbuffer_copy (qf, zf, groesse); |
est2fe | 0:eae8cffdd121 | 197 | memset (qf, 0x00, groesse); |
est2fe | 0:eae8cffdd121 | 198 | //?!? evtl. noch get machen? |
est2fe | 0:eae8cffdd121 | 199 | } |
est2fe | 0:eae8cffdd121 | 200 | |
est2fe | 0:eae8cffdd121 | 201 | char *charbuffer_put (buffer_header_t *r, void *b_p) // Ein Zeichen/Block einstellen |
est2fe | 0:eae8cffdd121 | 202 | { |
est2fe | 0:eae8cffdd121 | 203 | // b_p = Block-Pointer |
est2fe | 0:eae8cffdd121 | 204 | void *target; |
est2fe | 0:eae8cffdd121 | 205 | if (g_display_Funktion) {eprintf ("In charbuffer_put: \r\n"); } |
est2fe | 0:eae8cffdd121 | 206 | if (r->bufcnt >= r->buflen) |
est2fe | 0:eae8cffdd121 | 207 | { |
est2fe | 0:eae8cffdd121 | 208 | r->fehleranzahl++; |
est2fe | 0:eae8cffdd121 | 209 | r->flags = r->flags | ((uint8_t) (FEHLER)); |
est2fe | 0:eae8cffdd121 | 210 | return 0; // Wenn Buffer voll dann mit Nullpointer zurueck |
est2fe | 0:eae8cffdd121 | 211 | } |
est2fe | 0:eae8cffdd121 | 212 | target = r->in; |
est2fe | 0:eae8cffdd121 | 213 | memcpy (r->in, b_p, r->blockgroesse); |
est2fe | 0:eae8cffdd121 | 214 | r->bufcnt++; if (r->bufcnt > r->peak_max) {r->peak_max = r->bufcnt;} |
est2fe | 0:eae8cffdd121 | 215 | if (r->bufcnt >= r->Schwelle) |
est2fe | 0:eae8cffdd121 | 216 | { |
est2fe | 0:eae8cffdd121 | 217 | r->flags = r->flags | ((uint8_t) (FAST_VOLL)); |
est2fe | 0:eae8cffdd121 | 218 | } |
est2fe | 0:eae8cffdd121 | 219 | else |
est2fe | 0:eae8cffdd121 | 220 | { |
est2fe | 0:eae8cffdd121 | 221 | r->flags = r->flags & ((uint8_t) (~FAST_VOLL)); |
est2fe | 0:eae8cffdd121 | 222 | } |
est2fe | 0:eae8cffdd121 | 223 | r->anzahl++; // Anzahl aller Zeichen/Bloecke aufsummiert |
est2fe | 0:eae8cffdd121 | 224 | r->flags = r->flags | ((uint8_t) (NOT_EMPTY)); |
est2fe | 0:eae8cffdd121 | 225 | |
est2fe | 0:eae8cffdd121 | 226 | // r->in++; // Falls er das zuerst machen sollte! |
est2fe | 0:eae8cffdd121 | 227 | r->in = (void *) (((char *) r->in) + r->blockgroesse ); |
est2fe | 0:eae8cffdd121 | 228 | //if (r->in >= r->buf + r->buflen) |
est2fe | 0:eae8cffdd121 | 229 | if (r->in >= (void *) (((char *)r->buf) + (r->buflen * r->blockgroesse))) |
est2fe | 0:eae8cffdd121 | 230 | { |
est2fe | 0:eae8cffdd121 | 231 | // Bei Zeiger > Buffer, Zeiger wieder an Anfang vom Buffer |
est2fe | 0:eae8cffdd121 | 232 | r->in = r->buf; |
est2fe | 0:eae8cffdd121 | 233 | } |
est2fe | 0:eae8cffdd121 | 234 | return (char *)target; |
est2fe | 0:eae8cffdd121 | 235 | } |
est2fe | 0:eae8cffdd121 | 236 | |
est2fe | 0:eae8cffdd121 | 237 | void print_verwaltung (buffer_header_t *rbk_p) |
est2fe | 0:eae8cffdd121 | 238 | { |
est2fe | 0:eae8cffdd121 | 239 | if (rbk_p > 0x00) |
est2fe | 0:eae8cffdd121 | 240 | { |
est2fe | 0:eae8cffdd121 | 241 | eprintf (" charbufferverwaltung Zeiger = 0x%08X\r\n", rbk_p); |
est2fe | 0:eae8cffdd121 | 242 | eprintf (" buflen = %d\r\n", rbk_p->buflen); |
est2fe | 0:eae8cffdd121 | 243 | eprintf (" bufcnt = %d\r\n", rbk_p->bufcnt); |
est2fe | 0:eae8cffdd121 | 244 | eprintf (" Zeiger *in = 0x%08X\r\n", rbk_p->in); |
est2fe | 0:eae8cffdd121 | 245 | eprintf (" Zeiger *out = 0x%08X\r\n", rbk_p->out); |
est2fe | 0:eae8cffdd121 | 246 | eprintf (" Zeiger *buf = 0x%08X\r\n", rbk_p->buf); |
est2fe | 0:eae8cffdd121 | 247 | eprintf (" charanzahl = %d\r\n", rbk_p->anzahl); |
est2fe | 0:eae8cffdd121 | 248 | eprintf (" Fehleranzahl = %d\r\n", rbk_p->fehleranzahl); |
est2fe | 0:eae8cffdd121 | 249 | eprintf (" Schwelle = %d\r\n", rbk_p->Schwelle); |
est2fe | 0:eae8cffdd121 | 250 | eprintf (" Flags = 0x%08X\r\n", rbk_p->flags); |
est2fe | 0:eae8cffdd121 | 251 | eprintf (" Max.Fuellst. = %d\r\n", rbk_p->peak_max); |
est2fe | 0:eae8cffdd121 | 252 | eprintf (" Blockgroesse = %d\r\n", rbk_p->blockgroesse); |
est2fe | 0:eae8cffdd121 | 253 | } |
est2fe | 0:eae8cffdd121 | 254 | else |
est2fe | 0:eae8cffdd121 | 255 | { |
est2fe | 0:eae8cffdd121 | 256 | if (g_display_error) |
est2fe | 0:eae8cffdd121 | 257 | { |
est2fe | 0:eae8cffdd121 | 258 | eprintf ("Error: In print_verwaltung: Zeiger rbk_p ist ungueltig! \r\n"); |
est2fe | 0:eae8cffdd121 | 259 | } |
est2fe | 0:eae8cffdd121 | 260 | } |
est2fe | 0:eae8cffdd121 | 261 | return; |
est2fe | 0:eae8cffdd121 | 262 | } |
est2fe | 0:eae8cffdd121 | 263 | |
est2fe | 0:eae8cffdd121 | 264 | void display_rbuffer_header (io_buf_s *rb) |
est2fe | 0:eae8cffdd121 | 265 | { |
est2fe | 0:eae8cffdd121 | 266 | buffer_header_t *rbk_p; |
est2fe | 0:eae8cffdd121 | 267 | if (g_display_Funktion) {eprintf ("In print_verwaltung: \r\n"); } |
est2fe | 0:eae8cffdd121 | 268 | if (rb > 0x00) |
est2fe | 0:eae8cffdd121 | 269 | { |
est2fe | 0:eae8cffdd121 | 270 | if (debug_display_charbuffer_header) |
est2fe | 0:eae8cffdd121 | 271 | { |
est2fe | 0:eae8cffdd121 | 272 | eprintf ("In display charbuffer charbufferspeicherzeiger = 0x%08X\r\n", rb); |
est2fe | 0:eae8cffdd121 | 273 | } |
est2fe | 0:eae8cffdd121 | 274 | if (display_receive_io) |
est2fe | 0:eae8cffdd121 | 275 | { |
est2fe | 0:eae8cffdd121 | 276 | rbk_p = &rb->in; |
est2fe | 0:eae8cffdd121 | 277 | if (rbk_p > 0x00) |
est2fe | 0:eae8cffdd121 | 278 | { |
est2fe | 0:eae8cffdd121 | 279 | eprintf (" Receive Struktur: rbk_p = 0x%08X\r\n", rbk_p); |
est2fe | 0:eae8cffdd121 | 280 | print_verwaltung (rbk_p); |
est2fe | 0:eae8cffdd121 | 281 | } |
est2fe | 0:eae8cffdd121 | 282 | else |
est2fe | 0:eae8cffdd121 | 283 | { |
est2fe | 0:eae8cffdd121 | 284 | if (g_display_error) |
est2fe | 0:eae8cffdd121 | 285 | { |
est2fe | 0:eae8cffdd121 | 286 | eprintf ("Error: In display_charbuffer_verwaltung: *rbk_p ist ungueltig! \r\n"); |
est2fe | 0:eae8cffdd121 | 287 | } |
est2fe | 0:eae8cffdd121 | 288 | } |
est2fe | 0:eae8cffdd121 | 289 | } |
est2fe | 0:eae8cffdd121 | 290 | if (display_send_io) |
est2fe | 0:eae8cffdd121 | 291 | { |
est2fe | 0:eae8cffdd121 | 292 | rbk_p = &rb->out; |
est2fe | 0:eae8cffdd121 | 293 | if (rbk_p > 0x00) |
est2fe | 0:eae8cffdd121 | 294 | { |
est2fe | 0:eae8cffdd121 | 295 | eprintf (" Send Struktur: rbk_p = 0x%08X\r\n", rbk_p); |
est2fe | 0:eae8cffdd121 | 296 | print_verwaltung (rbk_p); |
est2fe | 0:eae8cffdd121 | 297 | } |
est2fe | 0:eae8cffdd121 | 298 | else |
est2fe | 0:eae8cffdd121 | 299 | { |
est2fe | 0:eae8cffdd121 | 300 | if (g_display_error) |
est2fe | 0:eae8cffdd121 | 301 | { |
est2fe | 0:eae8cffdd121 | 302 | eprintf ("Error: In display_charbuffer_verwaltung display_send: *rbk_p ist ungueltig! \r\n"); |
est2fe | 0:eae8cffdd121 | 303 | } |
est2fe | 0:eae8cffdd121 | 304 | } |
est2fe | 0:eae8cffdd121 | 305 | } |
est2fe | 0:eae8cffdd121 | 306 | } |
est2fe | 0:eae8cffdd121 | 307 | else |
est2fe | 0:eae8cffdd121 | 308 | { |
est2fe | 0:eae8cffdd121 | 309 | if (g_display_error) |
est2fe | 0:eae8cffdd121 | 310 | { |
est2fe | 0:eae8cffdd121 | 311 | eprintf ("Eror: In display_charbuffer_verwaltung: *rb ist ungueltig! \r\n"); |
est2fe | 0:eae8cffdd121 | 312 | } |
est2fe | 0:eae8cffdd121 | 313 | } |
est2fe | 0:eae8cffdd121 | 314 | return; |
est2fe | 0:eae8cffdd121 | 315 | } |
est2fe | 0:eae8cffdd121 | 316 | |
est2fe | 0:eae8cffdd121 | 317 | #endif // von __charbuf_c_ |