From: Marcel T. <te...@us...> - 2002-08-27 11:53:07
|
Update of /cvsroot/openwince/jtag/src/part In directory usw-pr-cvs1:/tmp/cvs-serv1070/src/part Modified Files: parse.c part.c Log Message: Removed obsolete structure members from part (idr, bsr and prev_bsr). Index: parse.c =================================================================== RCS file: /cvsroot/openwince/jtag/src/part/parse.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- parse.c 27 Aug 2002 09:13:12 -0000 1.5 +++ parse.c 27 Aug 2002 11:53:03 -0000 1.6 @@ -39,7 +39,7 @@ } part * -read_part( FILE *f, const tap_register *idr ) +read_part( FILE *f, tap_register *idr ) { int line = 0; part *part; @@ -53,8 +53,6 @@ return NULL; } - part->idr = register_duplicate( idr ); - for (;;) { char *t; char buf[1024]; @@ -122,6 +120,7 @@ dr->next = part->data_registers; part->data_registers = dr; + /* Boundary Scan Register */ if (strcmp( dr->name, "BSR" ) == 0) { int i; @@ -134,6 +133,10 @@ for (i = 0; i < part->boundary_length; i++) part->bsbits[i] = NULL; } + + /* Device Identification Register */ + if (strcmp( dr->name, "DIR" ) == 0) + register_init( dr->value, register_get_string( idr ) ); continue; } Index: part.c =================================================================== RCS file: /cvsroot/openwince/jtag/src/part/part.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- part.c 27 Aug 2002 08:05:09 -0000 1.7 +++ part.c 27 Aug 2002 11:53:03 -0000 1.8 @@ -44,9 +44,6 @@ p->data_registers = NULL; p->boundary_length = 0; p->bsbits = NULL; - p->idr = NULL; - p->bsr = NULL; - p->prev_bsr = NULL; return p; } @@ -73,6 +70,7 @@ instruction_free( i ); } + /* data registers */ while (p->data_registers) { data_register *dr = p->data_registers; p->data_registers = dr->next; @@ -84,13 +82,6 @@ bsbit_free( p->bsbits[i] ); free( p->bsbits ); - /* idr */ - register_free( p->idr ); - - /* bsr */ - register_free( p->bsr ); - register_free( p->prev_bsr ); - free( p ); } @@ -133,8 +124,17 @@ void part_set_signal( part *p, const char *pname, int out, int val ) { + signal *s; + + /* search for Boundary Scan Register */ + data_register *bsr = part_find_data_register( p, "BSR" ); + if (!bsr) { + printf( "%s(%s:%d) Boundary Scan Register (BSR) not found\n", __FUNCTION__, __FILE__, __LINE__ ); + return; + } + /* search signal */ - signal *s = p->signals; + s = p->signals; while (s) { if (strcmp( pname, s->name ) == 0) break; @@ -153,26 +153,35 @@ printf( "signal %s cannot be set as output\n", pname ); return; } - p->bsr->data[s->output->bit] = val & 1; + bsr->value->data[s->output->bit] = val & 1; control = p->bsbits[s->output->bit]->control; if (control >= 0) - p->bsr->data[control] = p->bsbits[s->output->bit]->control_value ^ 1; + bsr->value->data[control] = p->bsbits[s->output->bit]->control_value ^ 1; } else { if (!s->input) { printf( "signal %s cannot be set as input\n", pname ); return; } if (s->output) - p->bsr->data[s->output->control] = p->bsbits[s->output->control]->control_value; + bsr->value->data[s->output->control] = p->bsbits[s->output->control]->control_value; } } int part_get_signal( part *p, const char *pname ) { + signal *s; + + /* search for Boundary Scan Register */ + data_register *bsr = part_find_data_register( p, "BSR" ); + if (!bsr) { + printf( "%s(%s:%d) Boundary Scan Register (BSR) not found\n", __FUNCTION__, __FILE__, __LINE__ ); + return -1; + } + /* search signal */ - signal *s = p->signals; + s = p->signals; while (s) { if (strcmp( pname, s->name ) == 0) break; @@ -189,7 +198,7 @@ return -1; } - return p->prev_bsr->data[s->input->bit]; + return bsr->value->data[s->input->bit]; } /* parts */ |