public static bool IsRunningOn30()
        {
            var device = new PciDevice(_access, 0, 20, 0);
            var mask   = device.ReadUInt32(0xD4);
            var state  = device.ReadUInt32(0xD0);

            return(mask == state);
        }
        public static void SwitchTo30()
        {
            var device = new PciDevice(_access, 0, 20, 0);
            var mask   = device.ReadUInt32(0xD4);

            device.Write(0xD0, mask);
        }
        public static int GetNumberOfSwitchablePorts()
        {
            var device = new PciDevice(_access, 0, 20, 0);
            var mask   = device.ReadUInt32(0xD4);

            return(NumberOfSetBits((int)mask));
        }
        public static uint GetRouting()
        {
            var device = new PciDevice(_access, 0, 20, 0);

            return(device.ReadUInt32(0xD0));
        }