<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Evolution Systems &#187; Hash Table</title>
	<atom:link href="http://evolution-systems.co.uk/tag/hash-table/feed/" rel="self" type="application/rss+xml" />
	<link>http://evolution-systems.co.uk</link>
	<description>Web Development, Software Development and Linux Consultancy services</description>
	<lastBuildDate>Fri, 08 Aug 2025 09:18:44 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.42</generator>
	<item>
		<title>Hash Table Implementation</title>
		<link>http://evolution-systems.co.uk/2009/06/12/hash-table-implementation-2/</link>
		<comments>http://evolution-systems.co.uk/2009/06/12/hash-table-implementation-2/#comments</comments>
		<pubDate>Fri, 12 Jun 2009 00:28:47 +0000</pubDate>
		<dc:creator><![CDATA[Matthew Jakeman]]></dc:creator>
				<category><![CDATA[Matts Blog]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Hash Table]]></category>
		<category><![CDATA[Kernel]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://evolution-systems.co.uk/wordpress/?p=483</guid>
		<description><![CDATA[I have been doing some more kernel module coding and have been using the linked list implementation provided by list.h quite a bit recently as I have known in advance that the lists would only ever have a small amount of entries so looping through the list would not prove to be too much of [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>I have been doing some more kernel module coding and have been using the linked list implementation provided by list.h quite a bit recently as I have known in advance that the lists would only ever have a small amount of entries so looping through the list would not prove to be too much of a performance penalty.</p>
<p>For my latest problem however I have a list that could grow a bit larger in size so I made the decision to use a hash table instead of a linked list. I searched through the kernel source naively hoping there would be a neat generic hash table implementation included.. Alas there is not.</p>
<p>After a bit of searching I stumbled across <a href="http://uthash.sourceforge.net/">uthash</a>. This is a nice hash table implementation allowing you to basically put any struct into a hash table based on using one of the fields in the struct as the id. The included macro&#8217;s allow a string or an int to be used for the id as well which is quite useful.</p>
<p>So far it seems quite simple to use. All the functions are included in one header file wrapped us as macro&#8217;s so it is nice and easy to integrate with any project and it doesn&#8217;t rely on much to be included externally. In my case all the functions it does need are provided by the kernel so it was very simple to integrate. I will definitely be using this again in other projects in the future.</p>
]]></content:encoded>
			<wfw:commentRss>http://evolution-systems.co.uk/2009/06/12/hash-table-implementation-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
