Difference between pages "r6:Introduction" and "Main Page"

From liblfds.org
(Difference between pages)
Jump to navigation Jump to search
m (1 revision imported)
 
 
Line 1: Line 1:
==Data Structures==
<strong>MediaWiki has been installed.</strong>
This release of liblfds provides the following;


* [[r6:API:Freelist|Freelist]]
Consult the [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents User's Guide] for information on using the wiki software.
* [[r6:API:Queue|Queue]]
* [[r6:API:Ringbuffer|Ringbuffer]]
* [[r6:API:SList|SList]] (logical delete only)
* [[r6:API:Stack|Stack]]


==Supported Platforms==
== Getting started ==
This release of liblfds has been ported to the following platforms;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]
 
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]
{| cellpadding="4" border="1" style="border-collapse:collapse;"
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]
|-
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]
|<STRONG>Operating System</STRONG>
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Learn how to combat spam on your wiki]
|<STRONG>CPU</STRONG>
|<STRONG>Toolchain</STRONG>
|- valign="top"
|Windows 64-bit
|x64
|1. Microsoft Visual Studio 2008<BR>2. Microsoft Windows SDK and GNUmake >= 3.8.1
|- valign="top"
|Windows 32-bit
|x64<BR>x86
|1. Microsoft Visual Studio 2008<BR>2. Visual C++ 2008 Express Edition<BR>3. Microsoft Windows SDK and GNUmake >= 3.8.1
|- valign="top"
|Windows Kernel
|x64<BR>x86
|1. Windows Driver Kit >= 7.0.0
|- valign="top"
|Linux 64-bit
|x64
|1. GCC >= 4.1.0 and GNUmake >= 3.8.1
|- valign="top"
|Linux 32-bit
|x64<BR>x86<BR>ARM
|1. GCC >= 4.1.0 and GNUmake >= 3.8.1
|-
|}
 
==Tested Platforms==
This release of liblfds has actually been built and where possible tested on the following platforms;
 
{| cellpadding="4" border="1" style="border-collapse:collapse;"
|-
|<STRONG>Hardware</STRONG>
|<STRONG>Operating System</STRONG>
|<STRONG>Toolchain</STRONG>
|<STRONG>Targets</STRONG>
|- valign="top"
|Intel Core i5
|Windows 7 build 7600 64-bit
|Microsoft SDK (unknown verson) and GNUmake 3.8.1
|native
|- valign="top"
|Intel Core i5
|Windows 7 build 7600 64-bit
|Microsoft Windows Driver Kit v7.0.0
|Windows 7 free build 64-bit<BR>Windows 7 free build 32-bit<BR>Windows XP free build 32-bit
|- valign="top"
|VM 64-bit
|Windows 7 build 7600 64-bit
|Visual C++ 2008 Express Edition
|x86
|- valign="top"
|VM 64-bit
|Windows 7 build 7600 64-bit
|Visual C++ 2008 Trial Edition
|x64<BR>x86
|- valign="top"
|x64
|Linux (unknown version, 64-bit)
|GCC (unknown vesion) and GNUmake 3.8.1
|native
|- valign="top"
|VM 64-bit
|Linux (unknown version, 64-bit)
|GCC (unknown vesion) and GNUmake 3.8.1
|native
|- valign="top"
|VM 32-bit
|Linux (unknown version, 32-bit)
|GCC (unknown vesion) and GNUmake 3.8.1
|native
|- valign="top"
|Cortex A9
|Linux (unknown version)
|GCC (unknown version) and GNUmake 3.8.1
|native
|-
|}
 
Versions and platforms have not been rigourously recorded over the last three years so this table is not wholly precise.
 
==Building==
On Windows (user-mode), depending on your target platform, one of the following toolchains is required;
 
* [http://www.microsoft.com/visualstudio/en-gb/default.mspx Microsoft Visual Studio 2008] (expensive)
* [http://www.microsoft.com/express/vc/ Visual C++ 2008 Express Edition] (free, but no 64 bit support)
* [http://msdn.microsoft.com/en-gb/windowsserver/bb980924.aspx Microsoft Windows SDK] (free, no GUI, has 64 bit support) and [http://gnuwin32.sourceforge.net/packages/make.htm GNUmake 3.81]
 
On Windows (kernel-mode), the following toolchain is required;
 
* [http://www.microsoft.com/whdc/devtools/WDK/default.mspx Windows Driver Kit] 7.0.0 or later
 
On Linux, the following toolchain is required;
 
* gcc 4.1.0 or later and GNUmake 3.81
 
For documentation, see the [[r6:Building Guide|building guide]].
 
==Using==
Once built, there is a single header file, ''/inc/liblfds.h'' and a single library file ''/bin/liblfds.*''.  The suffix of the library file varies by platform and by the type of library you have chosen to build (static or dynamic).
 
==Testing and Benchmarking==
The library comes with a command line test and benchmark program.  This program requires threads.  As such, it is only suitable for platforms providing thread support and which can execute a command line binary.  Currently this means the test and benchmark program works for all platforms except the Windows Kernel.
 
For documentation, see the [[r6:Testing and Benchmarking Guide|testing and benchmarking guide]].
 
==Porting==
Both the test program and liblfds provide an abstraction layer which acts to mask platform differences.  Porting is the act of implementing on your platform the functions which make up the abstraction layers.  You do not need to port the test program to port liblfds, but obviously it is recommended, so you can test your port.
 
To support liblfds, your platform must support either contigious double-word compare-and-swap (e.g. x86/x64) or contigious double-word load-link/conditional-store where normal loads cannot occur inside the LL/CS pair (e.g. ARM) or single word load-link/conditional-store where normal loads can occur inside the LL/CS pair.
 
This requirement excludes the IA64, MIPS, PowerPC and SPARC platforms.
 
For documentation, see the [[r6:Porting Guide|porting guide]].

Revision as of 08:15, 8 June 2021

MediaWiki has been installed.

Consult the User's Guide for information on using the wiki software.

Getting started