Files
avrdude/src
Jörg Wunsch d134dc8fff Alias keyword (#868)
Implementation for an "alias" keyword.

By now, only applied inside memory descriptions.

* Make "mem_alias" a separate nonterminal.

The previous implementation attempt caused a syntax error in
yacc code, and separating mem_alias on the same level as
mem_spec appears to be the cleaner solution anyway.

* Maintain real memory aliases.

Instead of duplicating the aliased memory with a new name, maintain a
second list of memory aliases (per device) that contains a pointer to
the memory area it is aliased to. That way, a memory name can be
clearly distinguished between the canonical one and any aliases.

* Check p->mem_alias != NULL before touching it

* Add avr_find_memalias()

This takes a memory region as input, and searches whether an
alias can be found for it.

* We need to add a list structure for the mem_alias list, always.

By that means, mem_alias won't ever be NULL, so no need to check
later.

Also, in avr_dup_part(), duplicate the alias list.

* In a memory alias, actually remember the current name.

* In avr_dup_part(), adjust pointers of aliased memories

While walking the list of memories, for each entry, see if there is an
alias pointing to it. If so, allocate a duplicated one, and fix its
aliased_mem pointer to point to the duplicated memory region instead
of the original one.

* Add avr_locate_mem_noalias()

When looking whether any memory region has already been defined for
the current part while parsing the config file, only non-aliased names
must be considered. Otherwise, a newly defined alias would kick out
the memory definition it is being aliased to.

* When defining a mem_alias, drop any existing one of that name.

* Actually use avr_find_memalias() to find aliases

* Add declaration for avr_find_memalias()

* When defining a memory, also search for an existing alias

If the newly defined name has the same as an existing alias, the alias
can be removed.

Note that we do explicitly *not* remove any memory by the same name of
a later defined alias, as this might invalidate another alias'es
pointer. If someone defines that, the alias name just won't ever be
found by avr_locate_mem().
2022-02-10 20:39:19 +01:00
..
2022-01-31 20:44:32 +01:00
2021-12-17 09:17:42 +01:00
2021-12-17 09:17:42 +01:00
2022-01-31 20:44:32 +01:00
2022-01-31 20:44:32 +01:00
2022-01-31 20:44:32 +01:00
2021-12-17 09:17:42 +01:00
2022-02-10 20:39:19 +01:00
2022-01-07 17:57:02 +01:00
2021-12-17 09:17:42 +01:00
2021-12-19 00:35:52 +01:00
2021-12-17 09:17:42 +01:00
2021-12-17 09:17:42 +01:00
2022-01-07 17:57:02 +01:00
2022-02-10 20:39:19 +01:00
2022-02-10 20:39:19 +01:00
2022-02-10 20:39:19 +01:00
2022-01-10 15:12:33 +01:00
2021-12-17 09:17:42 +01:00
2021-12-17 09:17:42 +01:00
2021-12-17 09:17:42 +01:00
2022-01-07 17:54:36 +01:00
2022-01-07 17:57:02 +01:00
2021-12-17 09:17:42 +01:00
2021-12-17 09:17:42 +01:00
2021-12-17 09:17:42 +01:00
2021-12-17 09:17:42 +01:00
2021-12-24 10:14:16 +01:00
2021-12-17 09:17:42 +01:00
2022-01-19 23:25:47 +01:00
2021-12-17 09:17:42 +01:00
2022-02-10 20:39:19 +01:00
2022-02-10 20:39:19 +01:00
2021-12-17 09:17:42 +01:00
2021-12-17 09:17:42 +01:00
2022-01-07 11:31:16 +01:00
2021-12-17 09:17:42 +01:00
2021-12-17 09:17:42 +01:00
2022-01-31 20:44:32 +01:00
2022-01-31 20:44:32 +01:00
2021-12-17 09:17:42 +01:00
2021-12-17 09:17:42 +01:00
2022-01-06 23:39:17 +01:00
2021-12-17 09:17:42 +01:00
2022-01-07 17:57:02 +01:00
2021-12-17 09:17:42 +01:00
2022-01-07 17:57:02 +01:00
2021-12-17 09:17:42 +01:00
2022-01-07 17:57:02 +01:00
2022-01-07 17:57:02 +01:00
2022-01-07 17:57:02 +01:00
2022-01-07 17:57:02 +01:00
2022-01-07 17:57:02 +01:00
2022-01-07 17:57:02 +01:00
2021-12-17 09:17:42 +01:00
2022-01-13 10:01:01 +01:00
2022-01-29 20:08:43 +01:00
2021-12-17 09:17:42 +01:00
2022-01-07 17:57:02 +01:00
2021-12-17 09:17:42 +01:00
2022-01-06 23:39:17 +01:00
2022-01-06 23:39:17 +01:00
2022-01-09 10:27:36 +01:00
2021-12-17 09:17:42 +01:00
2021-12-17 09:17:42 +01:00
2022-01-07 11:31:16 +01:00
2022-01-07 17:57:02 +01:00
2022-01-07 17:57:02 +01:00
2021-12-17 09:17:42 +01:00
2021-12-17 09:17:42 +01:00
2022-01-09 10:57:22 +01:00
2021-12-17 09:17:42 +01:00
2021-12-17 09:17:42 +01:00
2021-12-17 09:17:42 +01:00