<html lang="en"> <head> <title>Define the Derived Structures - Untitled</title> <meta http-equiv="Content-Type" content="text/html"> <meta name="description" content="Untitled"> <meta name="generator" content="makeinfo 4.13"> <link title="Top" rel="start" href="index.html#Top"> <link rel="up" href="Deriving-a-New-Hash-Table-Type.html#Deriving-a-New-Hash-Table-Type" title="Deriving a New Hash Table Type"> <link rel="prev" href="Deriving-a-New-Hash-Table-Type.html#Deriving-a-New-Hash-Table-Type" title="Deriving a New Hash Table Type"> <link rel="next" href="Write-the-Derived-Creation-Routine.html#Write-the-Derived-Creation-Routine" title="Write the Derived Creation Routine"> <link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage"> <!-- This file documents the BFD library. Copyright (C) 1991-2015 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with the Invariant Sections being ``GNU General Public License'' and ``Funding Free Software'', the Front-Cover texts being (a) (see below), and with the Back-Cover Texts being (b) (see below). A copy of the license is included in the section entitled ``GNU Free Documentation License''. (a) The FSF's Front-Cover Text is: A GNU Manual (b) The FSF's Back-Cover Text is: You have freedom to copy and modify this GNU Manual, like GNU software. Copies published by the Free Software Foundation raise funds for GNU development.--> <meta http-equiv="Content-Style-Type" content="text/css"> <style type="text/css"><!-- pre.display { font-family:inherit } pre.format { font-family:inherit } pre.smalldisplay { font-family:inherit; font-size:smaller } pre.smallformat { font-family:inherit; font-size:smaller } pre.smallexample { font-size:smaller } pre.smalllisp { font-size:smaller } span.sc { font-variant:small-caps } span.roman { font-family:serif; font-weight:normal; } span.sansserif { font-family:sans-serif; font-weight:normal; } --></style> </head> <body> <div class="node"> <a name="Define-the-Derived-Structures"></a> <p> Next: <a rel="next" accesskey="n" href="Write-the-Derived-Creation-Routine.html#Write-the-Derived-Creation-Routine">Write the Derived Creation Routine</a>, Previous: <a rel="previous" accesskey="p" href="Deriving-a-New-Hash-Table-Type.html#Deriving-a-New-Hash-Table-Type">Deriving a New Hash Table Type</a>, Up: <a rel="up" accesskey="u" href="Deriving-a-New-Hash-Table-Type.html#Deriving-a-New-Hash-Table-Type">Deriving a New Hash Table Type</a> <hr> </div> <h5 class="subsubsection">2.18.4.1 Define the derived structures</h5> <p>You must define a structure for an entry in the hash table, and a structure for the hash table itself. <p>The first field in the structure for an entry in the hash table must be of the type used for an entry in the hash table you are deriving from. If you are deriving from a basic hash table this is <code>struct bfd_hash_entry</code>, which is defined in <code>bfd.h</code>. The first field in the structure for the hash table itself must be of the type of the hash table you are deriving from itself. If you are deriving from a basic hash table, this is <code>struct bfd_hash_table</code>. <p>For example, the linker hash table defines <code>struct bfd_link_hash_entry</code> (in <code>bfdlink.h</code>). The first field, <code>root</code>, is of type <code>struct bfd_hash_entry</code>. Similarly, the first field in <code>struct bfd_link_hash_table</code>, <code>table</code>, is of type <code>struct bfd_hash_table</code>. </body></html>