     case BOTH="both"
 }
 
+public enum GPIOPull: UInt {
+    case neither = 0
+    case down    = 1
+    case up      = 2
+}
+
 public enum ByteOrder {
     case MSBFIRST
     case LSBFIRST

        let ptr = gpioBasePointer.advanced(by: id/10)       // GPFSELn 0..5
        let d = (ptr.pointee & (7<<((UInt(id)%10)*3)))
        return (d == 0) ? .IN : .OUT
    }

    private func gpioGet() -> Int {

        }
    }

    public override var pull: GPIOPull {
        set(pull) {
            if !exported {enableIO(id)}
            setGpioPull(pull)
        }
        get{
            fatalError("Parameter cannot be read.")
        }
    }

    public override func isMemoryMapped() -> Bool {
        return true
    }
