     // MARK: PUBLIC METHODS - FANS
     //--------------------------------------------------------------------------
    
- 
+    
+    /**
+    Get the name of a fan.
+    
+    :param: fanNum The number of the fan to check
+    :returns: name The name of the fan. Return will be empty on error.
+    :returns: IOReturn IOKit return code
+    :returns: kSMC SMC return code
+    */
+    public func getFanName(fanNum : UInt) -> (name     : String,
+                                              IOReturn : kern_return_t,
+                                              kSMC     : UInt8) {
+        var name = String()
+        let result = readSMC("F" + String(fanNum) + "ID")
+        
+                                                
+        /*
+        We know the data size is 16 bytes and the type is "{fds", a custom
+        struct defined by the AppleSMC.kext. See TMP enum sources for the
+        struct.
+        
+        The last 12 bytes contain the name of the fan, an array of chars, hence
+        the loop range.
+        
+        // TODO: Use dataSize value from readSMC()
+        */
+        for var i = 4; i < 16; ++i {
+            // Check if at the end (name may not be full 12 bytes)
+            if (result.data[i] <= 0) {
+                break
+            }
+            name.append(UnicodeScalar(UInt32(result.data[i])))
+        }
+
+
+        // Strip whitespace (some names have it)
+        let whitespace = NSCharacterSet.whitespaceCharacterSet()
+        name = name.stringByTrimmingCharactersInSet(whitespace)
+
+        return (name, result.IOReturn, result.kSMC)
+    }
+    
+    
     /**
     Get the current speed (RPM - revolutions per minute) of a fan.
     

        case kSMCGetKeyInfo      = 9
    }
    

    //--------------------------------------------------------------------------
    // MARK: PRIVATE STRUCTS
    //--------------------------------------------------------------------------

    public enum DataType : String {
        case FLAG = "flag"
        case FPE2 = "fpe2"
        case SFDS = "{fds"
        case SP78 = "sp78"
    }
    
