예제 #1
0
 public RTL8139_Old(PCIDevice device)
 {
     if (device == null) {
         throw new ArgumentException("PCI Device is null. Unable to get RTL8139 card");
     }
     pciCard = device;
     mem = device.GetAddressSpace(1) as Kernel.MemoryAddressSpace;
     valueReg = Register.ValueTypeRegisters.Load(mem);
     imr = Register.InterruptMaskRegister.Load(mem);
     isr = Register.InterruptStatusRegister.Load(mem);
 }
예제 #2
0
 public RTL8139_Old(PCIDevice device)
 {
     if (device == null)
     {
         throw new ArgumentException("PCI Device is null. Unable to get RTL8139 card");
     }
     pciCard  = device;
     mem      = device.GetAddressSpace(1) as Kernel.MemoryAddressSpace;
     valueReg = Register.ValueTypeRegisters.Load(mem);
     imr      = Register.InterruptMaskRegister.Load(mem);
     isr      = Register.InterruptStatusRegister.Load(mem);
 }
예제 #3
0
 private CommandRegister(Kernel.MemoryAddressSpace aMem)
 {
     xMem = aMem;
 }
예제 #4
0
 public static TransmitStatusDescriptor Load(Kernel.MemoryAddressSpace aMem)
 {
     return(new TransmitStatusDescriptor(aMem));
 }
예제 #5
0
        /// <summary>
        /// Creates the AddressSpaces for this device.
        /// </summary>
        private void LayoutIO()
        {
            //Console.WriteLine("Checking AdressSpaces of PCI(" + Bus + ", " + Slot + ", " + Function + ")");
            IOMaps = new Kernel.AddressSpace[NumberOfBaseAddresses()];

            for (byte i = 0; i < NumberOfBaseAddresses(); i++)
            {
                UInt32 address = GetBaseAddressInternal(i);
                SetBaseAddressInternal(i, 0xffffffff);
                UInt32 flags = GetBaseAddressInternal(i);
                SetBaseAddressInternal(i, address);
                if (address == 0)
                {
                    //Console.WriteLine("register " + i + " - none " + PCIBus.ToHex(flags,8));

                    IOMaps[i] = null;
                }
                else if ((address & PCI_BASE_ADDRESS_SPACE) == PCI_BASE_ADDRESS_SPACE_MEMORY)
                {
                    UInt32 size = (~(PCI_BASE_ADDRESS_MEM_MASK & flags))+1;
                    IOMaps[i] = new Kernel.MemoryAddressSpace(address, size);
                    //Console.WriteLine("register " + i + " - " + size + "b mem");

                    NeedsMemory = true;
                }
                else if ((address & PCI_BASE_ADDRESS_SPACE) == PCI_BASE_ADDRESS_SPACE_IO)
                {
                    UInt32 size = (~(PCI_BASE_ADDRESS_IO_MASK & flags)) & 0xFF;
                    IOMaps[i] = new Kernel.IOAddressSpace(address-1, ((uint)size));
                    NeedsIO = true;
                }
            }

            _NeedsLayingout = false;
        }
 private InterruptStatusRegister(Kernel.MemoryAddressSpace aMem)
 {
     xMem = aMem;
 }
 private SerialInterfaceRegister(Kernel.MemoryAddressSpace aMem)
 {
     xMem = aMem;
 }
 private ConfigurationRegister1(Kernel.MemoryAddressSpace aMem)
 {
     xMem = aMem;
 }
예제 #9
0
 public static ReceiveConfigurationRegister Load(Kernel.MemoryAddressSpace aMem)
 {
     return(new ReceiveConfigurationRegister(aMem));
 }
예제 #10
0
 private SerialInterfaceRegister(Kernel.MemoryAddressSpace aMem)
 {
     xMem = aMem;
 }
 private TransmitConfigurationRegister(Kernel.MemoryAddressSpace aMem)
 {
     xMem = aMem;
 }
 private TransmitStatusDescriptor(Kernel.MemoryAddressSpace aMem)
 {
     xMem = aMem;
 }
예제 #13
0
 private ValueTypeRegisters(Kernel.MemoryAddressSpace aMem)
 {
     this.xMem = aMem;
 }
예제 #14
0
 private MediaStatusRegister(Kernel.MemoryAddressSpace aMem)
 {
     xMem = aMem;
 }
예제 #15
0
 private ControlRegister(Kernel.MemoryAddressSpace aMem)
 {
     xMem = aMem;
 }
예제 #16
0
 private TransmitStatusDescriptor(Kernel.MemoryAddressSpace aMem)
 {
     xMem = aMem;
 }
예제 #17
0
 public static MediaStatusRegister Load(Kernel.MemoryAddressSpace aMem)
 {
     return(new MediaStatusRegister(aMem));
 }
 public static TransmitConfigurationRegister Load(Kernel.MemoryAddressSpace aMem)
 {
     return(new TransmitConfigurationRegister(aMem));
 }
예제 #19
0
 private MediaStatusRegister(Kernel.MemoryAddressSpace aMem)
 {
     xMem = aMem;
 }
예제 #20
0
 //private char[] buffer;
 //bool dacEnabled;
 public AK4531Manager(Cosmos.Hardware2.Audio.Devices.ES1370.Components.DACak4531 dacEntity, Kernel.MemoryAddressSpace aMem, byte dacPage, byte dacAddress, byte dacByteSize) : base(dacEntity)
 {
     xMem = aMem;
 }
예제 #21
0
 private ControlRegister(Kernel.MemoryAddressSpace aMem)
 {
     xMem = aMem;
 }
 private TransmitConfigurationRegister(Kernel.MemoryAddressSpace aMem)
 {
     xMem = aMem;
 }
예제 #23
0
 private ReceiveConfigurationRegister(Kernel.MemoryAddressSpace aMem)
 {
     xMem = aMem;
 }
예제 #24
0
 private InterruptMaskRegister(Kernel.MemoryAddressSpace aMem)
 {
     xMem = aMem;
 }
 public static SerialInterfaceRegister Load(Kernel.MemoryAddressSpace aMem)
 {
     return(new SerialInterfaceRegister(aMem));
 }
예제 #26
0
 private ValueTypeRegisters(Kernel.MemoryAddressSpace aMem)
 {
     this.xMem = aMem;
 }
예제 #27
0
 public static InterruptMaskRegister Load(Kernel.MemoryAddressSpace aMem)
 {
     return(new InterruptMaskRegister(aMem));
 }
예제 #28
0
 //private char[] buffer;
 //bool dacEnabled;
 public AK4531Manager(Cosmos.Hardware2.Audio.Devices.ES1370.Components.DACak4531 dacEntity, Kernel.MemoryAddressSpace aMem, byte dacPage,byte dacAddress, byte dacByteSize) : base(dacEntity)
 {
     xMem = aMem;
 }
예제 #29
0
 public static ValueTypeRegisters Load(Kernel.MemoryAddressSpace aMem)
 {
     return(new ValueTypeRegisters(aMem));
 }
예제 #30
0
 public static ConfigurationRegister1 Load(Kernel.MemoryAddressSpace aMem)
 {
     return(new ConfigurationRegister1(aMem));
 }
예제 #31
0
 public static CommandRegister Load(Kernel.MemoryAddressSpace aMem)
 {
     return(new CommandRegister(aMem));
 }
예제 #32
0
 private CommandRegister(Kernel.MemoryAddressSpace aMem)
 {
     xMem = aMem;
 }