Exemple #1
0
 public static ushort GetMaxLength(UHCI_qTD_Struct* qTD)
 {
     return (ushort)((qTD->u2 & 0xFFE00000) >> 21);
 }
Exemple #2
0
 public static bool GetDataToggle(UHCI_qTD_Struct* qTD)
 {
     return (qTD->u2 & Utils.BIT(19)) != 0;
 }
Exemple #3
0
 public static void SetDataToggle(UHCI_qTD_Struct* qTD, bool val)
 {
     if (val)
     {
         qTD->u2 |= Utils.BIT(19);
     }
     else
     {
         qTD->u2 &= ~Utils.BIT(19);
     }
 }
Exemple #4
0
 public static byte GetEndpoint(UHCI_qTD_Struct* qTD)
 {
     return (byte)((qTD->u2 & 0x00078000) >> 15);
 }
Exemple #5
0
 public static void SetEndpoint(UHCI_qTD_Struct* qTD, byte val)
 {
     qTD->u2 = (qTD->u2 & 0xFFF87FFF) | ((uint)(val & 0x0F) << 15);
 }
Exemple #6
0
 //u1
 public static bool GetActive(UHCI_qTD_Struct* qTD)
 {
     return (qTD->u1 & Utils.BIT(23)) != 0;
 }
Exemple #7
0
 public static void SetDeviceAddress(UHCI_qTD_Struct* qTD, byte val)
 {
     qTD->u2 = (qTD->u2 & 0xFFFF80FF) | ((uint)(val & 0x7F) << 8);
 }
Exemple #8
0
 //u2
 public static byte GetPacketID(UHCI_qTD_Struct* qTD)
 {
     return (byte)(qTD->u2);
 }
Exemple #9
0
 public static void SetPacketID(UHCI_qTD_Struct* qTD, byte val)
 {
     qTD->u2 = (qTD->u2 & 0xFFFFFF00) | val;
 }
Exemple #10
0
 public static byte GetC_ERR(UHCI_qTD_Struct* qTD)
 {
     return (byte)((qTD->u1 & 0x18000000) >> 27);
 }
Exemple #11
0
 public static void SetC_ERR(UHCI_qTD_Struct* qTD, byte val)
 {
     qTD->u1 = (qTD->u1 & 0xE7FFFFFF) | ((uint)(val & 0x03) << 27);
 }
Exemple #12
0
 public static void SetIntOnComplete(UHCI_qTD_Struct* qTD, bool val)
 {
     if (val)
     {
         qTD->u1 |= Utils.BIT(24);
     }
     else
     {
         qTD->u1 &= ~Utils.BIT(24);
     }
 }
Exemple #13
0
 public static bool GetIntOnComplete(UHCI_qTD_Struct* qTD)
 {
     return (qTD->u1 & Utils.BIT(24)) != 0;
 }
Exemple #14
0
 public static void SetActive(UHCI_qTD_Struct* qTD, bool val)
 {
     if (val)
     {
         qTD->u1 |= Utils.BIT(23);
     }
     else
     {
         qTD->u1 &= ~Utils.BIT(23);
     }
 }
Exemple #15
0
 public static void SetMaxLength(UHCI_qTD_Struct* qTD, ushort val)
 {
     qTD->u2 = (qTD->u2 & 0x001FFFFF) | ((uint)val << 21);
 }
Exemple #16
0
 public static byte GetDeviceAddress(UHCI_qTD_Struct* qTD)
 {
     return (byte)((qTD->u2 & 0x00007F00) >> 8);
 }
Exemple #17
0
        protected static void* AllocQTDbuffer(UHCI_qTD_Struct* td)
        {
#if UHCI_TRACE
            BasicConsole.WriteLine("UHCI: Alloc qTD Buffer");
            BasicConsole.DelayOutput(5);
#endif

            td->virtBuffer = FOS_System.Heap.AllocZeroedAPB(0x1000, 0x1000, "UHCI : AllocQTDBuffer");
            td->buffer = (uint*)VirtMemManager.GetPhysicalAddress(td->virtBuffer);

            return td->virtBuffer;
        }
Exemple #18
0
        protected void CreateQH(UHCI_QueueHead_Struct* head, uint horizPtr, UHCI_qTD_Struct* firstTD)
        {
#if UHCI_TRACE
            BasicConsole.WriteLine("UHCI: Create QH");
            BasicConsole.DelayOutput(5);
#endif

            head->next = (UHCI_QueueHead_Struct*)UHCI_Consts.BIT_T; // (paging_getPhysAddr((void*)horizPtr) & 0xFFFFFFF0) | BIT_QH;

            if (firstTD == null)
            {
                head->transfer = (UHCI_qTD_Struct*)UHCI_Consts.BIT_T;
            }
            else
            {
                head->transfer = (UHCI_qTD_Struct*)((uint)VirtMemManager.GetPhysicalAddress(firstTD) & 0xFFFFFFF0);
                head->q_first = firstTD;
            }
        }