Summary:  split in two commits, probably three commits


On Sat, Aug 03, 2019 at 02:32:10PM +0200, Karl Hammar wrote:
>       urj_vhdl_set_entity() saved the entity name in the parts part_name
>       even though we don't know at that stage if the idcode matches for
>       this file.

Is for commit "A".


 
>       Hunting this bug down, I found too many things are called part, so
>       part of this is to change part->part to part->part_name, ditto for
>       manufaturer to make it easier to find the offender.

Is for commit "B"
Proposal for new long commit message for commit B
 
|       Too many things are called part, so
|       part of this is to change part->part to part->part_name, ditto for
|       manufaturer to make it easier to find the offender.

> ---
>  urjtag/include/urjtag/part.h | 4 ++--
>  urjtag/src/bfin/bfin.c       | 2 +-
>  urjtag/src/bsdl/bsdl.c       | 5 ++++-
>  urjtag/src/bsdl/bsdl_types.h | 2 ++
>  urjtag/src/bsdl/vhdl_bison.y | 5 ++---
>  urjtag/src/part/part.c       | 6 +++---
>  urjtag/src/tap/detect.c      | 8 ++++----
>  7 files changed, 18 insertions(+), 14 deletions(-)
> 
> diff --git a/urjtag/include/urjtag/part.h b/urjtag/include/urjtag/part.h
> index f0cddbc7..50ce74df 100644
> --- a/urjtag/include/urjtag/part.h
> +++ b/urjtag/include/urjtag/part.h
> @@ -42,8 +42,8 @@ struct URJ_PART
>  {
>      urj_tap_register_t *id;
>      char *alias;                /* djf refdes */
> -    char manufacturer[URJ_PART_MANUFACTURER_MAXLEN + 1];
> -    char part[URJ_PART_PART_MAXLEN + 1];
> +    char manufacturer_name[URJ_PART_MANUFACTURER_MAXLEN + 1];
> +    char part_name[URJ_PART_PART_MAXLEN + 1];
>      char stepping[URJ_PART_STEPPING_MAXLEN + 1];
>      urj_part_signal_t *signals;
>      urj_part_salias_t *saliases;

B

> diff --git a/urjtag/src/bfin/bfin.c b/urjtag/src/bfin/bfin.c
> index dd4bd3b2..d7c9d39d 100644
> --- a/urjtag/src/bfin/bfin.c
> +++ b/urjtag/src/bfin/bfin.c
> @@ -131,7 +131,7 @@ part_scan_select (urj_chain_t *chain, int n, int scan)
>      if (part->active_instruction == NULL)
>      {
>          urj_log (URJ_LOG_LEVEL_ERROR,
> -                 _("%s: unknown instruction '%s'\n"), part->part, 
> scans[scan]);
> +                 _("%s: unknown instruction '%s'\n"), part->part_name, 
> scans[scan]);
>          return -1;
>      }
>  

B

> diff --git a/urjtag/src/bsdl/bsdl.c b/urjtag/src/bsdl/bsdl.c
> index afb5d635..d81e969e 100644
> --- a/urjtag/src/bsdl/bsdl.c
> +++ b/urjtag/src/bsdl/bsdl.c
> @@ -140,10 +140,13 @@ urj_bsdl_read_file (urj_chain_t *chain, const char 
> *BSDL_File_Name,
>  
>              result = urj_bsdl_process_elements (&jtag_ctrl, idcode);
>  
> -            if (result >= 0)
> +            if (result >= 0) {
> +             strncpy(jtag_ctrl.part->part_name, 
> vhdl_parser_priv->entity_name, URJ_PART_PART_MAXLEN);
> +             jtag_ctrl.part->part_name[URJ_PART_PART_MAXLEN] = '\0';
>                  urj_bsdl_msg (proc_mode,
>                                _("BSDL file '%s' passed BSDL stage 
> correctly\n"),
>                                BSDL_File_Name);
> +         }
>  
>          }
>          else

C

> diff --git a/urjtag/src/bsdl/bsdl_types.h b/urjtag/src/bsdl/bsdl_types.h
> index d19ffd11..efe09579 100644
> --- a/urjtag/src/bsdl/bsdl_types.h
> +++ b/urjtag/src/bsdl/bsdl_types.h
> @@ -157,10 +157,12 @@ typedef struct jtag_ctrl urj_bsdl_jtag_ctrl_t;
>  
>  /* private data of the VHDL bison parser
>     used to store variables the would end up as globals otherwise */
> +#define VHDL_PARSER_ENTITY_NAME_MAXLEN            20
>  struct vhdl_parser_priv
>  {
>      char Package_File_Name[100];
>      int Reading_Package;
> +    char entity_name[VHDL_PARSER_ENTITY_NAME_MAXLEN+1];
>      char *buffer;
>      size_t len_buffer;
>      void *scanner;

A

> diff --git a/urjtag/src/bsdl/vhdl_bison.y b/urjtag/src/bsdl/vhdl_bison.y
> index 4030b3b4..4d057df5 100644
> --- a/urjtag/src/bsdl/vhdl_bison.y
> +++ b/urjtag/src/bsdl/vhdl_bison.y
> @@ -918,9 +918,8 @@ urj_vhdl_set_entity (urj_vhdl_parser_priv_t *priv, char 
> *entityname)
>  {
>      if (priv->jtag_ctrl->proc_mode & URJ_BSDL_MODE_INSTR_EXEC)
>      {
> -        strncpy (priv->jtag_ctrl->part->part, entityname,
> -                 URJ_PART_PART_MAXLEN);
> -        priv->jtag_ctrl->part->part[URJ_PART_PART_MAXLEN] = '\0';
> +        strncpy (priv->entity_name, entityname, 
> VHDL_PARSER_ENTITY_NAME_MAXLEN);
> +        priv->entity_name[VHDL_PARSER_ENTITY_NAME_MAXLEN] = '\0';
>      }
>  
>      free (entityname);

A

> diff --git a/urjtag/src/part/part.c b/urjtag/src/part/part.c
> index b7297a05..f5c4dbd0 100644
> --- a/urjtag/src/part/part.c
> +++ b/urjtag/src/part/part.c
> @@ -52,8 +52,8 @@ urj_part_alloc (const urj_tap_register_t *id)
>      p->alias = NULL;            /* djf */
>      /* @@@@ RFHH check result */
>      p->id = urj_tap_register_duplicate (id);
> -    p->manufacturer[0] = '\0';
> -    p->part[0] = '\0';
> +    p->manufacturer_name[0] = '\0';
> +    p->part_name[0] = '\0';
>      p->stepping[0] = '\0';
>      p->signals = NULL;
>      p->saliases = NULL;

B

> @@ -319,7 +319,7 @@ urj_part_print (urj_log_level_t ll, urj_part_t *p)
>          instruction = _("(none)");
>      if (dr == NULL)
>          dr = _("(none)");
> -    urj_log (ll, format, p->manufacturer, p->part, p->stepping, instruction,
> +    urj_log (ll, format, p->manufacturer_name, p->part_name, p->stepping, 
> instruction,
>               dr);
>  
>      return URJ_STATUS_OK;

B

> diff --git a/urjtag/src/tap/detect.c b/urjtag/src/tap/detect.c
> index 5c139507..526d2a99 100644
> --- a/urjtag/src/tap/detect.c
> +++ b/urjtag/src/tap/detect.c
> @@ -419,8 +419,8 @@ urj_tap_detect_parts (urj_chain_t *chain, const char 
> *db_path, int maxirlen)
>                       data_path);
>  
>              /* run JTAG declarations */
> -            strcpy (part->manufacturer, manufacturer);
> -            strcpy (part->part, partname);
> +            strcpy (part->manufacturer_name, manufacturer);
> +            strcpy (part->part_name, partname);
>              strcpy (part->stepping, stepping);
>              if (urj_parse_include (chain, data_path, 1) == URJ_STATUS_FAIL)
>                  urj_log_error_describe (URJ_LOG_LEVEL_ERROR);

B

> @@ -434,7 +434,7 @@ urj_tap_detect_parts (urj_chain_t *chain, const char 
> *db_path, int maxirlen)
>                                                                    "IDCODE");
>          
>          /* Do part specific initialization.  */
> -        part_init_func = urj_part_find_init (part->part);
> +        part_init_func = urj_part_find_init (part->part_name);
>          if (part_init_func)
>          {
>              part->params = malloc (sizeof (urj_part_params_t));

B

> @@ -496,7 +496,7 @@ urj_tap_manual_add (urj_chain_t *chain, int instr_len)
>      if (part == NULL)
>          return -1;
>  
> -    strncpy (part->part, "unknown", URJ_PART_PART_MAXLEN);
> +    strncpy (part->part_name, "unknown", URJ_PART_PART_MAXLEN);
>      part->instruction_length = instr_len;
>  
>      urj_part_parts_add_part (chain->parts, part);

B

> -- 
> 2.21.0
> 


Groeten
Geert Stappers
-- 
Leven en laten leven


_______________________________________________
UrJTAG-development mailing list
UrJTAG-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/urjtag-development

Reply via email to