LibELM is a FAT driver, like libfat. However, LibELM is based on the amazing ELM FAT driver by ChaN. LibELM does NOT use a devoptab and as such, does not use the stdio functions (fopen, fread, etc.), but uses it's own. You can find all the information on how to use LibELM here: http://elm-chan.org/fsw/ff/00index_e.html
LibELM is Wii only, at the moment, and supports SD card, USB stick, and should support SDGecko, but SDGecko has not been tested.