Lines Matching refs:def

1 %{ /* deffilep.y - parser for .def files */
256 static def_file *def;
296 def = add_to;
300 def = def_file_empty ();
306 def_file_free (def);
318 def_file_add_directive (def, d->name, d->len);
321 return def;
325 def_file_free (def_file *def)
329 if (!def)
331 if (def->name)
332 free (def->name);
333 if (def->description)
334 free (def->description);
336 if (def->section_defs)
338 for (i = 0; i < def->num_section_defs; i++)
340 if (def->section_defs[i].name)
341 free (def->section_defs[i].name);
342 if (def->section_defs[i].class)
343 free (def->section_defs[i].class);
345 free (def->section_defs);
348 if (def->exports)
350 for (i = 0; i < def->num_exports; i++)
352 if (def->exports[i].internal_name
353 && def->exports[i].internal_name != def->exports[i].name)
354 free (def->exports[i].internal_name);
355 if (def->exports[i].name)
356 free (def->exports[i].name);
358 free (def->exports);
361 if (def->imports)
363 for (i = 0; i < def->num_imports; i++)
365 if (def->imports[i].internal_name
366 && def->imports[i].internal_name != def->imports[i].name)
367 free (def->imports[i].internal_name);
368 if (def->imports[i].name)
369 free (def->imports[i].name);
371 free (def->imports);
374 while (def->modules)
376 def_file_module *m = def->modules;
377 def->modules = def->modules->next;
381 free (def);
386 def_file_print (FILE *file, def_file *def)
390 fprintf (file, ">>>> def_file at 0x%08x\n", def);
391 if (def->name)
392 fprintf (file, " name: %s\n", def->name ? def->name : "(unspecified)");
393 if (def->is_dll != -1)
394 fprintf (file, " is dll: %s\n", def->is_dll ? "yes" : "no");
395 if (def->base_address != (bfd_vma) -1)
396 fprintf (file, " base address: 0x%08x\n", def->base_address);
397 if (def->description)
398 fprintf (file, " description: `%s'\n", def->description);
399 if (def->stack_reserve != -1)
400 fprintf (file, " stack reserve: 0x%08x\n", def->stack_reserve);
401 if (def->stack_commit != -1)
402 fprintf (file, " stack commit: 0x%08x\n", def->stack_commit);
403 if (def->heap_reserve != -1)
404 fprintf (file, " heap reserve: 0x%08x\n", def->heap_reserve);
405 if (def->heap_commit != -1)
406 fprintf (file, " heap commit: 0x%08x\n", def->heap_commit);
408 if (def->num_section_defs > 0)
412 for (i = 0; i < def->num_section_defs; i++)
415 def->section_defs[i].name, def->section_defs[i].class);
416 if (def->section_defs[i].flag_read)
418 if (def->section_defs[i].flag_write)
420 if (def->section_defs[i].flag_execute)
422 if (def->section_defs[i].flag_shared)
428 if (def->num_exports > 0)
432 for (i = 0; i < def->num_exports; i++)
435 def->exports[i].name, def->exports[i].internal_name,
436 def->exports[i].ordinal);
437 if (def->exports[i].flag_private)
439 if (def->exports[i].flag_constant)
441 if (def->exports[i].flag_noname)
443 if (def->exports[i].flag_data)
449 if (def->num_imports > 0)
453 for (i = 0; i < def->num_imports; i++)
456 def->imports[i].internal_name,
457 def->imports[i].module,
458 def->imports[i].name,
459 def->imports[i].ordinal);
463 if (def->version_major != -1)
464 fprintf (file, " version: %d.%d\n", def->version_major, def->version_minor);
466 fprintf (file, "<<<< def_file at 0x%08x\n", def);
471 def_file_add_export (def_file *def,
477 int max_exports = ROUND_UP(def->num_exports, 32);
479 if (def->num_exports >= max_exports)
481 max_exports = ROUND_UP(def->num_exports + 1, 32);
482 if (def->exports)
483 def->exports = xrealloc (def->exports,
486 def->exports = xmalloc (max_exports * sizeof (def_file_export));
488 e = def->exports + def->num_exports;
497 def->num_exports++;
502 def_get_module (def_file *def, const char *name)
506 for (s = def->modules; s; s = s->next)
514 def_stash_module (def_file *def, const char *name)
518 if ((s = def_get_module (def, name)) != NULL)
521 s->next = def->modules;
522 def->modules = s;
529 def_file_add_import (def_file *def,
536 int max_imports = ROUND_UP (def->num_imports, 16);
538 if (def->num_imports >= max_imports)
540 max_imports = ROUND_UP (def->num_imports+1, 16);
542 if (def->imports)
543 def->imports = xrealloc (def->imports,
546 def->imports = xmalloc (max_imports * sizeof (def_file_import));
548 i = def->imports + def->num_imports;
553 i->module = def_stash_module (def, module);
559 def->num_imports++;
581 def_file *save_def = def;
586 def = my_def;
642 def = save_def;
659 if (def->name)
660 free (def->name);
666 def->name = xmalloc (strlen (image_name) + strlen (suffix) + 1);
667 sprintf (def->name, "%s%s", image_name, suffix);
670 def->name = xstrdup (image_name);
674 def->base_address = base;
675 def->is_dll = is_dll;
681 int len = def->description ? strlen (def->description) : 0;
684 if (def->description)
686 def->description = xrealloc (def->description, len);
687 strcat (def->description, text);
691 def->description = xmalloc (len);
692 strcpy (def->description, text);
699 def->stack_reserve = reserve;
700 def->stack_commit = commit;
706 def->heap_reserve = reserve;
707 def->heap_commit = commit;
714 int max_sections = ROUND_UP (def->num_section_defs, 4);
716 if (def->num_section_defs >= max_sections)
718 max_sections = ROUND_UP (def->num_section_defs+1, 4);
720 if (def->section_defs)
721 def->section_defs = xrealloc (def->section_defs,
724 def->section_defs = xmalloc (max_sections * sizeof (def_file_import));
726 s = def->section_defs + def->num_section_defs;
738 def->num_section_defs++;
785 dfe = def_file_add_export (def, external_name, internal_name, ordinal);
810 def_file_add_import (def, name, module, ordinal, internal_name);
818 def->version_major = major;
819 def->version_minor = minor;