ring buffer
rbuf.c@0:eae8cffdd121, 2011-06-23 (annotated)
- Committer:
- est2fe
- Date:
- Thu Jun 23 19:44:23 2011 +0000
- Revision:
- 0:eae8cffdd121
- Child:
- 2:d1095a112328
V 0.9
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 | 0:eae8cffdd121 | 132 | void *charbuffer_readable (buffer_header_t * r) // Nur schauen, ob im Buffer neue chars drin sind. |
est2fe | 0:eae8cffdd121 | 133 | { |
est2fe | 0:eae8cffdd121 | 134 | if (r->bufcnt == 0) |
est2fe | 0:eae8cffdd121 | 135 | { |
est2fe | 0:eae8cffdd121 | 136 | return 0; |
est2fe | 0:eae8cffdd121 | 137 | } |
est2fe | 0:eae8cffdd121 | 138 | else |
est2fe | 0:eae8cffdd121 | 139 | { |
est2fe | 0:eae8cffdd121 | 140 | return r->out; // ?!? |
est2fe | 0:eae8cffdd121 | 141 | } |
est2fe | 0:eae8cffdd121 | 142 | } |
est2fe | 0:eae8cffdd121 | 143 | |
est2fe | 0:eae8cffdd121 | 144 | void *charbuffer_get (buffer_header_t *r, void *target) // Einen char/Block rausholen mit Readzeiger++ |
est2fe | 0:eae8cffdd121 | 145 | { |
est2fe | 0:eae8cffdd121 | 146 | void *p_b; // Pointer block |
est2fe | 0:eae8cffdd121 | 147 | if (g_display_Funktion) {eprintf ("In charbuffer_get: \r\n"); } |
est2fe | 0:eae8cffdd121 | 148 | if (r->bufcnt == 0) |
est2fe | 0:eae8cffdd121 | 149 | { |
est2fe | 0:eae8cffdd121 | 150 | r->flags = r->flags & ((uint8_t) (~NOT_EMPTY)); |
est2fe | 0:eae8cffdd121 | 151 | return 0; |
est2fe | 0:eae8cffdd121 | 152 | } |
est2fe | 0:eae8cffdd121 | 153 | // else |
est2fe | 0:eae8cffdd121 | 154 | // p_b = r->out++; // ?!? // zuerst rausholen, dann Read-Zeiger versetzen |
est2fe | 0:eae8cffdd121 | 155 | p_b = r->out; |
est2fe | 0:eae8cffdd121 | 156 | r->out = (void *) (((char *) r->out) + r->blockgroesse ); |
est2fe | 0:eae8cffdd121 | 157 | r->bufcnt--; // Ein char weniger im Buffer |
est2fe | 0:eae8cffdd121 | 158 | if (r->bufcnt >= r->Schwelle) |
est2fe | 0:eae8cffdd121 | 159 | { |
est2fe | 0:eae8cffdd121 | 160 | r->flags = r->flags | ((uint8_t) (FAST_VOLL)); |
est2fe | 0:eae8cffdd121 | 161 | } |
est2fe | 0:eae8cffdd121 | 162 | else |
est2fe | 0:eae8cffdd121 | 163 | { |
est2fe | 0:eae8cffdd121 | 164 | r->flags = r->flags & ((uint8_t) (~FAST_VOLL)); |
est2fe | 0:eae8cffdd121 | 165 | } |
est2fe | 0:eae8cffdd121 | 166 | if (r->bufcnt == 0) |
est2fe | 0:eae8cffdd121 | 167 | { |
est2fe | 0:eae8cffdd121 | 168 | r->flags = r->flags & ((uint8_t) (~NOT_EMPTY)); |
est2fe | 0:eae8cffdd121 | 169 | } |
est2fe | 0:eae8cffdd121 | 170 | memcpy (target, p_b, r->blockgroesse); |
est2fe | 0:eae8cffdd121 | 171 | |
est2fe | 0:eae8cffdd121 | 172 | // (1 - 8) |
est2fe | 0:eae8cffdd121 | 173 | // if (r->out >= r->buf + (r->buflen)) // ?? Hier ist die Zeigerarithmetik noch unklar! |
est2fe | 0:eae8cffdd121 | 174 | if (r->out >= (void *)(((char *)(r->buf)) + (r->buflen * r->blockgroesse))) // ?? Hier ist die Zeigerarithmetik noch unklar! |
est2fe | 0:eae8cffdd121 | 175 | { |
est2fe | 0:eae8cffdd121 | 176 | // wrap around to beginning |
est2fe | 0:eae8cffdd121 | 177 | r->out = r->buf; |
est2fe | 0:eae8cffdd121 | 178 | } |
est2fe | 0:eae8cffdd121 | 179 | return p_b; // ?!? |
est2fe | 0:eae8cffdd121 | 180 | } |
est2fe | 0:eae8cffdd121 | 181 | |
est2fe | 0:eae8cffdd121 | 182 | void charbuffer_copy (void *qf, void *zf, uint16_t groesse) // Quelle -> Ziel kopieren // ?!? noch ben�tigt? |
est2fe | 0:eae8cffdd121 | 183 | { |
est2fe | 0:eae8cffdd121 | 184 | // |
est2fe | 0:eae8cffdd121 | 185 | if (g_display_Funktion) {eprintf ("In charbuffer_copy: \r\n"); } |
est2fe | 0:eae8cffdd121 | 186 | memcpy (zf, qf, groesse); |
est2fe | 0:eae8cffdd121 | 187 | return; |
est2fe | 0:eae8cffdd121 | 188 | } |
est2fe | 0:eae8cffdd121 | 189 | |
est2fe | 0:eae8cffdd121 | 190 | void charbuffer_move (void *qf, void *zf, uint16_t groesse) // Quelle -> Ziel (Move char mit anschliessendem loeschen der Quelle) |
est2fe | 0:eae8cffdd121 | 191 | { |
est2fe | 0:eae8cffdd121 | 192 | if (g_display_Funktion) {eprintf ("In charbuffer_move: \r\n"); } |
est2fe | 0:eae8cffdd121 | 193 | charbuffer_copy (qf, zf, groesse); |
est2fe | 0:eae8cffdd121 | 194 | memset (qf, 0x00, groesse); |
est2fe | 0:eae8cffdd121 | 195 | //?!? evtl. noch get machen? |
est2fe | 0:eae8cffdd121 | 196 | } |
est2fe | 0:eae8cffdd121 | 197 | |
est2fe | 0:eae8cffdd121 | 198 | char *charbuffer_put (buffer_header_t *r, void *b_p) // Ein Zeichen/Block einstellen |
est2fe | 0:eae8cffdd121 | 199 | { |
est2fe | 0:eae8cffdd121 | 200 | // b_p = Block-Pointer |
est2fe | 0:eae8cffdd121 | 201 | void *target; |
est2fe | 0:eae8cffdd121 | 202 | if (g_display_Funktion) {eprintf ("In charbuffer_put: \r\n"); } |
est2fe | 0:eae8cffdd121 | 203 | if (r->bufcnt >= r->buflen) |
est2fe | 0:eae8cffdd121 | 204 | { |
est2fe | 0:eae8cffdd121 | 205 | r->fehleranzahl++; |
est2fe | 0:eae8cffdd121 | 206 | r->flags = r->flags | ((uint8_t) (FEHLER)); |
est2fe | 0:eae8cffdd121 | 207 | return 0; // Wenn Buffer voll dann mit Nullpointer zurueck |
est2fe | 0:eae8cffdd121 | 208 | } |
est2fe | 0:eae8cffdd121 | 209 | target = r->in; |
est2fe | 0:eae8cffdd121 | 210 | memcpy (r->in, b_p, r->blockgroesse); |
est2fe | 0:eae8cffdd121 | 211 | r->bufcnt++; if (r->bufcnt > r->peak_max) {r->peak_max = r->bufcnt;} |
est2fe | 0:eae8cffdd121 | 212 | if (r->bufcnt >= r->Schwelle) |
est2fe | 0:eae8cffdd121 | 213 | { |
est2fe | 0:eae8cffdd121 | 214 | r->flags = r->flags | ((uint8_t) (FAST_VOLL)); |
est2fe | 0:eae8cffdd121 | 215 | } |
est2fe | 0:eae8cffdd121 | 216 | else |
est2fe | 0:eae8cffdd121 | 217 | { |
est2fe | 0:eae8cffdd121 | 218 | r->flags = r->flags & ((uint8_t) (~FAST_VOLL)); |
est2fe | 0:eae8cffdd121 | 219 | } |
est2fe | 0:eae8cffdd121 | 220 | r->anzahl++; // Anzahl aller Zeichen/Bloecke aufsummiert |
est2fe | 0:eae8cffdd121 | 221 | r->flags = r->flags | ((uint8_t) (NOT_EMPTY)); |
est2fe | 0:eae8cffdd121 | 222 | |
est2fe | 0:eae8cffdd121 | 223 | // r->in++; // Falls er das zuerst machen sollte! |
est2fe | 0:eae8cffdd121 | 224 | r->in = (void *) (((char *) r->in) + r->blockgroesse ); |
est2fe | 0:eae8cffdd121 | 225 | //if (r->in >= r->buf + r->buflen) |
est2fe | 0:eae8cffdd121 | 226 | if (r->in >= (void *) (((char *)r->buf) + (r->buflen * r->blockgroesse))) |
est2fe | 0:eae8cffdd121 | 227 | { |
est2fe | 0:eae8cffdd121 | 228 | // Bei Zeiger > Buffer, Zeiger wieder an Anfang vom Buffer |
est2fe | 0:eae8cffdd121 | 229 | r->in = r->buf; |
est2fe | 0:eae8cffdd121 | 230 | } |
est2fe | 0:eae8cffdd121 | 231 | return (char *)target; |
est2fe | 0:eae8cffdd121 | 232 | } |
est2fe | 0:eae8cffdd121 | 233 | |
est2fe | 0:eae8cffdd121 | 234 | void print_verwaltung (buffer_header_t *rbk_p) |
est2fe | 0:eae8cffdd121 | 235 | { |
est2fe | 0:eae8cffdd121 | 236 | if (rbk_p > 0x00) |
est2fe | 0:eae8cffdd121 | 237 | { |
est2fe | 0:eae8cffdd121 | 238 | eprintf (" charbufferverwaltung Zeiger = 0x%08X\r\n", rbk_p); |
est2fe | 0:eae8cffdd121 | 239 | eprintf (" buflen = %d\r\n", rbk_p->buflen); |
est2fe | 0:eae8cffdd121 | 240 | eprintf (" bufcnt = %d\r\n", rbk_p->bufcnt); |
est2fe | 0:eae8cffdd121 | 241 | eprintf (" Zeiger *in = 0x%08X\r\n", rbk_p->in); |
est2fe | 0:eae8cffdd121 | 242 | eprintf (" Zeiger *out = 0x%08X\r\n", rbk_p->out); |
est2fe | 0:eae8cffdd121 | 243 | eprintf (" Zeiger *buf = 0x%08X\r\n", rbk_p->buf); |
est2fe | 0:eae8cffdd121 | 244 | eprintf (" charanzahl = %d\r\n", rbk_p->anzahl); |
est2fe | 0:eae8cffdd121 | 245 | eprintf (" Fehleranzahl = %d\r\n", rbk_p->fehleranzahl); |
est2fe | 0:eae8cffdd121 | 246 | eprintf (" Schwelle = %d\r\n", rbk_p->Schwelle); |
est2fe | 0:eae8cffdd121 | 247 | eprintf (" Flags = 0x%08X\r\n", rbk_p->flags); |
est2fe | 0:eae8cffdd121 | 248 | eprintf (" Max.Fuellst. = %d\r\n", rbk_p->peak_max); |
est2fe | 0:eae8cffdd121 | 249 | eprintf (" Blockgroesse = %d\r\n", rbk_p->blockgroesse); |
est2fe | 0:eae8cffdd121 | 250 | } |
est2fe | 0:eae8cffdd121 | 251 | else |
est2fe | 0:eae8cffdd121 | 252 | { |
est2fe | 0:eae8cffdd121 | 253 | if (g_display_error) |
est2fe | 0:eae8cffdd121 | 254 | { |
est2fe | 0:eae8cffdd121 | 255 | eprintf ("Error: In print_verwaltung: Zeiger rbk_p ist ungueltig! \r\n"); |
est2fe | 0:eae8cffdd121 | 256 | } |
est2fe | 0:eae8cffdd121 | 257 | } |
est2fe | 0:eae8cffdd121 | 258 | return; |
est2fe | 0:eae8cffdd121 | 259 | } |
est2fe | 0:eae8cffdd121 | 260 | |
est2fe | 0:eae8cffdd121 | 261 | void display_rbuffer_header (io_buf_s *rb) |
est2fe | 0:eae8cffdd121 | 262 | { |
est2fe | 0:eae8cffdd121 | 263 | buffer_header_t *rbk_p; |
est2fe | 0:eae8cffdd121 | 264 | if (g_display_Funktion) {eprintf ("In print_verwaltung: \r\n"); } |
est2fe | 0:eae8cffdd121 | 265 | if (rb > 0x00) |
est2fe | 0:eae8cffdd121 | 266 | { |
est2fe | 0:eae8cffdd121 | 267 | if (debug_display_charbuffer_header) |
est2fe | 0:eae8cffdd121 | 268 | { |
est2fe | 0:eae8cffdd121 | 269 | eprintf ("In display charbuffer charbufferspeicherzeiger = 0x%08X\r\n", rb); |
est2fe | 0:eae8cffdd121 | 270 | } |
est2fe | 0:eae8cffdd121 | 271 | if (display_receive_io) |
est2fe | 0:eae8cffdd121 | 272 | { |
est2fe | 0:eae8cffdd121 | 273 | rbk_p = &rb->in; |
est2fe | 0:eae8cffdd121 | 274 | if (rbk_p > 0x00) |
est2fe | 0:eae8cffdd121 | 275 | { |
est2fe | 0:eae8cffdd121 | 276 | eprintf (" Receive Struktur: rbk_p = 0x%08X\r\n", rbk_p); |
est2fe | 0:eae8cffdd121 | 277 | print_verwaltung (rbk_p); |
est2fe | 0:eae8cffdd121 | 278 | } |
est2fe | 0:eae8cffdd121 | 279 | else |
est2fe | 0:eae8cffdd121 | 280 | { |
est2fe | 0:eae8cffdd121 | 281 | if (g_display_error) |
est2fe | 0:eae8cffdd121 | 282 | { |
est2fe | 0:eae8cffdd121 | 283 | eprintf ("Error: In display_charbuffer_verwaltung: *rbk_p ist ungueltig! \r\n"); |
est2fe | 0:eae8cffdd121 | 284 | } |
est2fe | 0:eae8cffdd121 | 285 | } |
est2fe | 0:eae8cffdd121 | 286 | } |
est2fe | 0:eae8cffdd121 | 287 | if (display_send_io) |
est2fe | 0:eae8cffdd121 | 288 | { |
est2fe | 0:eae8cffdd121 | 289 | rbk_p = &rb->out; |
est2fe | 0:eae8cffdd121 | 290 | if (rbk_p > 0x00) |
est2fe | 0:eae8cffdd121 | 291 | { |
est2fe | 0:eae8cffdd121 | 292 | eprintf (" Send Struktur: rbk_p = 0x%08X\r\n", rbk_p); |
est2fe | 0:eae8cffdd121 | 293 | print_verwaltung (rbk_p); |
est2fe | 0:eae8cffdd121 | 294 | } |
est2fe | 0:eae8cffdd121 | 295 | else |
est2fe | 0:eae8cffdd121 | 296 | { |
est2fe | 0:eae8cffdd121 | 297 | if (g_display_error) |
est2fe | 0:eae8cffdd121 | 298 | { |
est2fe | 0:eae8cffdd121 | 299 | eprintf ("Error: In display_charbuffer_verwaltung display_send: *rbk_p ist ungueltig! \r\n"); |
est2fe | 0:eae8cffdd121 | 300 | } |
est2fe | 0:eae8cffdd121 | 301 | } |
est2fe | 0:eae8cffdd121 | 302 | } |
est2fe | 0:eae8cffdd121 | 303 | } |
est2fe | 0:eae8cffdd121 | 304 | else |
est2fe | 0:eae8cffdd121 | 305 | { |
est2fe | 0:eae8cffdd121 | 306 | if (g_display_error) |
est2fe | 0:eae8cffdd121 | 307 | { |
est2fe | 0:eae8cffdd121 | 308 | eprintf ("Eror: In display_charbuffer_verwaltung: *rb ist ungueltig! \r\n"); |
est2fe | 0:eae8cffdd121 | 309 | } |
est2fe | 0:eae8cffdd121 | 310 | } |
est2fe | 0:eae8cffdd121 | 311 | return; |
est2fe | 0:eae8cffdd121 | 312 | } |
est2fe | 0:eae8cffdd121 | 313 | |
est2fe | 0:eae8cffdd121 | 314 | #endif // von __charbuf_c_ |