+ /* Obtain a string from the inferior, storing it in a newly allocated
+ buffer in BUFFER, which should be freed by the caller. If the
+ in- and out-parameter *LENGTH is specified at -1, the string is
+ read until a null character of the appropriate width is found -
+ otherwise the string is read to the length of characters specified.
+ On completion, *LENGTH will hold the size of the string in characters.
+ If a *LENGTH of -1 was specified it will count only actual
+ characters, excluding any eventual terminating null character.
+ Otherwise *LENGTH will include all characters - including any nulls.
+ CHARSET will hold the encoding used in the string. */
+ void (*la_get_string) (struct value *value, gdb_byte **buffer, int *length,
+ struct type **chartype, const char **charset);
+
+ /* Return a pointer to the function that should be used to match
+ a symbol name against LOOKUP_NAME. This is mostly for languages
+ such as Ada where the matching algorithm depends on LOOKUP_NAME.
+
+ This field may be NULL, in which case strcmp_iw will be used
+ to perform the matching. */
+ symbol_name_cmp_ftype (*la_get_symbol_name_cmp) (const char *lookup_name);
+
+ /* Find all symbols in the current program space matching NAME in
+ DOMAIN, according to this language's rules.
+
+ The search starts with BLOCK. This function iterates upward
+ through blocks. When the outermost block has been finished,
+ the function returns.
+
+ For each one, call CALLBACK with the symbol and the DATA
+ argument. If CALLBACK returns zero, the iteration ends at that
+ point.
+
+ This field may not be NULL. If the language does not need any
+ special processing here, 'iterate_over_symbols' should be
+ used as the definition. */
+ void (*la_iterate_over_symbols) (const struct block *block,
+ const char *name,
+ domain_enum domain,
+ symbol_found_callback_ftype *callback,
+ void *data);
+
+ /* Add fields above this point, so the magic number is always last. */
+ /* Magic number for compat checking. */