Beispiel #1
0
XVtc_Config Py_XVtc_LookupConfig(unsigned int vtc_baseaddr){
    XVtc_Config config =
    {
        0,
        getVirtualAddress(vtc_baseaddr)
    };
    return config;
}
/*
 *  ======== Memory_getBufferVirtualAddress ========
 *  Converts physical address to user virtual address.
 */
Ptr Memory_getBufferVirtualAddress(
                  UInt32 physicalAddress, Int sizeInBytes)
{
    /*
     * Do the reverse mapping by looking at our list of buffers; if not found,
     * result will be 0.
     */

    UInt32 virtualAddress = 0;

    Lock_acquire( moduleLock );

    Log_print2(Diags_ENTRY, "[+E] Memory_getBufferVirtualAddress> "
            "Enter(physAddr=0x%x, size=0x%x)",
            (IArg)physicalAddress, (IArg)sizeInBytes);

    if (Memory_skipVirtualAddressTranslation == TRUE) {
        virtualAddress = physicalAddress;
        goto Memory_getBufferVirtualAddress_return;
    }

    if (sizeInBytes == 0) {
        Log_print0(Diags_USER6, "[+6] Memory_getBufferVirtualAddress> "
                "invalid buffer size provided (0)");

        /* Note that virtualAddress is already initialized to zero */
        goto Memory_getBufferVirtualAddress_return;
    }

    virtualAddress = getVirtualAddress(physicalAddress, sizeInBytes);

Memory_getBufferVirtualAddress_return:

    Log_print1(Diags_EXIT, "[+X] Memory_getBufferVirtualAddress> "
            "return (0x%x)", (IArg)virtualAddress);

    Lock_release( moduleLock );

    return (Ptr)virtualAddress;
}
Beispiel #3
0
	virtual u64 getPhysicalAddress() { return getVirtualAddress(); };