From 00cbd82cd9e5b65510c0282793a8e4d4aeb3faa9 Mon Sep 17 00:00:00 2001 From: ergo720 <45463469+ergo720@users.noreply.github.com> Date: Tue, 5 Mar 2019 16:16:57 +0100 Subject: [PATCH] Squashed commit (Update copyright texts) --- src/common/crypto/EmuDes.cpp | 29 +++++++++++++ src/common/crypto/EmuSha.cpp | 2 +- src/common/util/CxbxUtil.cpp | 23 ++++++++++- src/core/kernel/exports/EmuKrnlKe.cpp | 32 +++++++++++++++ src/core/kernel/exports/EmuKrnlKi.cpp | 43 ++++++++++++++++++++ src/core/kernel/memory-manager/VMManager.cpp | 8 +++- src/devices/usb/Hub.cpp | 26 +++++++++++- src/devices/usb/OHCI.cpp | 34 ++++++++++++---- src/devices/usb/USBDevice.cpp | 40 ++++++++++++++---- src/devices/usb/UsbCommon.h | 32 +++++++++++++-- src/devices/usb/XidGamepad.cpp | 23 ++++++++++- 11 files changed, 267 insertions(+), 25 deletions(-) diff --git a/src/common/crypto/EmuDes.cpp b/src/common/crypto/EmuDes.cpp index 3b5682c1b..c2808a3be 100644 --- a/src/common/crypto/EmuDes.cpp +++ b/src/common/crypto/EmuDes.cpp @@ -28,6 +28,35 @@ // Acknowledgment: ReactOS (GPLv2) // https://github.com/reactos/reactos +/* +* FIPS-46-3 compliant Triple-DES implementation +* +* Copyright (C) 2006-2015, ARM Limited, All Rights Reserved +* SPDX-License-Identifier: GPL-2.0 +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation; either version 2 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along +* with this program; if not, write to the Free Software Foundation, Inc., +* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +* +* This file is part of mbed TLS (https://tls.mbed.org) +*/ +/* +* DES, on which TDES is based, was originally designed by Horst Feistel +* at IBM in 1974, and was adopted as a standard by NIST (formerly NBS). +* +* http://csrc.nist.gov/publications/fips/fips46-3/fips46-3.pdf +*/ + // Changed from ReactOS: we never swap the subkeys in order to generate a decryption key schedule. Instead, we opt to simply read the subkeys // in reverse order during a decryption operation. This is necessary because XcKeyTable doesn't provide an "operation" argument, that is, it // always generates an encryption key schedule. diff --git a/src/common/crypto/EmuSha.cpp b/src/common/crypto/EmuSha.cpp index de3b8a968..caef45264 100644 --- a/src/common/crypto/EmuSha.cpp +++ b/src/common/crypto/EmuSha.cpp @@ -43,7 +43,7 @@ A million repetitions of "a" /* #define LITTLE_ENDIAN * This should be #define'd already, if true. */ /* #define SHA1HANDSOFF * Copies data before messing with it. */ -// Acknowledgment: see above +// Acknowledgment: Steve Reid // https://github.com/clibs/sha1 #define SHA1HANDSOFF diff --git a/src/common/util/CxbxUtil.cpp b/src/common/util/CxbxUtil.cpp index e2b20a49f..1e48d7ea4 100644 --- a/src/common/util/CxbxUtil.cpp +++ b/src/common/util/CxbxUtil.cpp @@ -25,9 +25,28 @@ // * // ****************************************************************** -// Acknowledgment: some of the functions present are from XQEMU (GPLv2) +// Acknowledgment: Muldiv64 is from qemu-common.h which doesn't have a license header, iovector functions are from iov.c file. +// Both files were originally taken from XQEMU (GPLv2) // https://xqemu.com/ +/* +* Helpers for getting linearized buffers from iov / filling buffers into iovs +* +* Copyright IBM, Corp. 2007, 2008 +* Copyright (C) 2010 Red Hat, Inc. +* +* Author(s): +* Anthony Liguori +* Amit Shah +* Michael Tokarev +* +* This work is licensed under the terms of the GNU GPL, version 2. See +* the COPYING file in the top-level directory. +* +* Contributions after 2012-01-13 are licensed under the terms of the +* GNU GPL, version 2 or (at your option) any later version. +*/ + // The intent of this file is to add general functions which are not kernel specific (for those CxbxKrnl.h should be used instead) @@ -40,7 +59,7 @@ // Disable a compiler warning relative to uint64_t -> uint32_t conversions in Muldiv64. This function is taken from -// XQEMU so it should be safe regardless +// QEMU so it should be safe regardless #pragma warning(push) #pragma warning(disable: 4244) diff --git a/src/core/kernel/exports/EmuKrnlKe.cpp b/src/core/kernel/exports/EmuKrnlKe.cpp index f39bbd938..57313f9d7 100644 --- a/src/core/kernel/exports/EmuKrnlKe.cpp +++ b/src/core/kernel/exports/EmuKrnlKe.cpp @@ -28,6 +28,38 @@ // Acknowledgment (timer functions): ReactOS (GPLv2) // https://github.com/reactos/reactos + +// KeSetSystemTime +/* +* PROJECT: ReactOS Kernel +* LICENSE: GPL - See COPYING in the top level directory +* FILE: ntoskrnl/ke/clock.c +* PURPOSE: System Clock Support +* PROGRAMMERS: Alex Ionescu (alex.ionescu@reactos.org) +*/ + +// KeInitializeTimerEx, KeSetTimer, KeSetTimerEx, KeCancelTimer +/* +* PROJECT: ReactOS Kernel +* LICENSE: GPL - See COPYING in the top level directory +* FILE: ntoskrnl/ke/timerobj.c +* PURPOSE: Handle Kernel Timers (Kernel-part of Executive Timers) +* PROGRAMMERS: Alex Ionescu (alex.ionescu@reactos.org) +*/ + +// COPYING file: +/* +GNU GENERAL PUBLIC LICENSE +Version 2, June 1991 + +ReactOS may be used, runtime linked, and distributed with non-free software +(meaning that such software has no obligations to open-source, or render +free, their non-free code) such as commercial device drivers and commercial +applications. This exception does not alter any other responsibilities of +the licensee under the GPL (meaning that such software must still obey +the GPL for the free ("open-sourced") code that has been integrated into +the said software). +*/ #define _XBOXKRNL_DEFEXTRN_ diff --git a/src/core/kernel/exports/EmuKrnlKi.cpp b/src/core/kernel/exports/EmuKrnlKi.cpp index d85d92829..543416bbd 100644 --- a/src/core/kernel/exports/EmuKrnlKi.cpp +++ b/src/core/kernel/exports/EmuKrnlKi.cpp @@ -30,6 +30,49 @@ // Acknowledgment (timer functions): ReactOS (GPLv2) // https://github.com/reactos/reactos +// KiCheckTimerTable, KiTimerExpiration, KiTimerListExpire +/* +* PROJECT: ReactOS Kernel +* LICENSE: GPL - See COPYING in the top level directory +* FILE: ntoskrnl/ke/dpc.c +* PURPOSE: Deferred Procedure Call (DPC) Support +* PROGRAMMERS: Alex Ionescu (alex.ionescu@reactos.org) +* Philip Susi (phreak@iag.net) +* Eric Kohl +*/ + +// KiInsertTreeTimer, KiInsertTimerTable, KiSignalTimer, KiCompleteTimer +/* +* PROJECT: ReactOS Kernel +* LICENSE: GPL - See COPYING in the top level directory +* FILE: ntoskrnl/ke/timerobj.c +* PURPOSE: Handle Kernel Timers (Kernel-part of Executive Timers) +* PROGRAMMERS: Alex Ionescu (alex.ionescu@reactos.org) +*/ + +// KiComputeDueTime, KiComputeTimerTableIndex, KxInsertTimer, KxRemoveTreeTimer, KiRemoveEntryTimer +/* +* PROJECT: ReactOS Kernel +* LICENSE: GPL - See COPYING in the top level directory +* FILE: ntoskrnl/include/internal/ke_x.h +* PURPOSE: Internal Inlined Functions for the Kernel +* PROGRAMMERS: Alex Ionescu (alex.ionescu@reactos.org) +*/ + +// COPYING file: +/* +GNU GENERAL PUBLIC LICENSE +Version 2, June 1991 + +ReactOS may be used, runtime linked, and distributed with non-free software +(meaning that such software has no obligations to open-source, or render +free, their non-free code) such as commercial device drivers and commercial +applications. This exception does not alter any other responsibilities of +the licensee under the GPL (meaning that such software must still obey +the GPL for the free ("open-sourced") code that has been integrated into +the said software). +*/ + // Changed from ReactOS: slight changes to the Hand parameter usage #define _XBOXKRNL_DEFEXTRN_ diff --git a/src/core/kernel/memory-manager/VMManager.cpp b/src/core/kernel/memory-manager/VMManager.cpp index 726825b21..35de293b6 100644 --- a/src/core/kernel/memory-manager/VMManager.cpp +++ b/src/core/kernel/memory-manager/VMManager.cpp @@ -27,8 +27,12 @@ // Acknowledgment: // The core logic of the VMManager class is based on the virtual page management code of the citra emulator (GPLv2 license), -// with heavy changes and the addition of real page tables to better suit Cxbx-Reloaded and Xbox emulation. -// Citra website: https://citra-emu.org/ +// with heavy changes and the addition of real page tables to better suit Cxbx-Reloaded and Xbox emulation. +// https://github.com/citra-emu/citra + +// Copyright 2015 Citra Emulator Project +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. #define LOG_PREFIX CXBXR_MODULE::VMEM diff --git a/src/devices/usb/Hub.cpp b/src/devices/usb/Hub.cpp index f48d5a9a1..d08238c99 100644 --- a/src/devices/usb/Hub.cpp +++ b/src/devices/usb/Hub.cpp @@ -25,8 +25,32 @@ // * // ****************************************************************** -// Acknowledgment: XQEMU (GPLv2) +// Acknowledgment: QEMU hub device emulation as used in XQEMU (GPLv2) // https://xqemu.com/ + +/* +* QEMU USB HUB emulation +* +* Copyright (c) 2005 Fabrice Bellard +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +* THE SOFTWARE. +*/ #define _XBOXKRNL_DEFEXTRN_ diff --git a/src/devices/usb/OHCI.cpp b/src/devices/usb/OHCI.cpp index 2eab91262..df05a2082 100644 --- a/src/devices/usb/OHCI.cpp +++ b/src/devices/usb/OHCI.cpp @@ -25,8 +25,28 @@ // * // ****************************************************************** -// Acknowledgment: XQEMU (GPLv2) +// Acknowledgment: QEMU ohci subsystem as used in XQEMU (GPLv2) // https://xqemu.com/ + +/* +* QEMU USB OHCI Emulation +* Copyright (c) 2004 Gianni Tedesco +* Copyright (c) 2006 CodeSourcery +* Copyright (c) 2006 Openedhand Ltd. +* +* This library is free software; you can redistribute it and/or +* modify it under the terms of the GNU Lesser General Public +* License as published by the Free Software Foundation; either +* version 2 of the License, or (at your option) any later version. +* +* This library is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +* Lesser General Public License for more details. +* +* You should have received a copy of the GNU Lesser General Public +* License along with this library; if not, see . +*/ #define _XBOXKRNL_DEFEXTRN_ @@ -287,7 +307,7 @@ void OHCI::OHCI_FrameBoundaryWorker() // From the OHCI standard: "The head pointer used for a particular frame is determined by using the last 5 bits of the // Frame Counter as an offset into the interrupt array within the HCCA." int n = m_Registers.HcFmNumber & 0x1F; - OHCI_ServiceEDlist(hcca.HccaInterrruptTable[n], 0); // dropped little -> big endian conversion from XQEMU + OHCI_ServiceEDlist(hcca.HccaInterrruptTable[n], 0); // dropped little -> big endian conversion from QEMU } // Cancel all pending packets if either of the lists has been disabled @@ -314,7 +334,7 @@ void OHCI::OHCI_FrameBoundaryWorker() // Increment frame number m_Registers.HcFmNumber = (m_Registers.HcFmNumber + 1) & 0xFFFF; // prevent overflow - hcca.HccaFrameNumber = m_Registers.HcFmNumber; // dropped big -> little endian conversion from XQEMU + hcca.HccaFrameNumber = m_Registers.HcFmNumber; // dropped big -> little endian conversion from QEMU if (m_DoneCount == 0 && !(m_Registers.HcInterruptStatus & OHCI_INTR_WD)) { if (!m_Registers.HcDoneHead) { @@ -331,7 +351,7 @@ void OHCI::OHCI_FrameBoundaryWorker() m_Registers.HcDoneHead |= 1; } - hcca.HccaDoneHead = m_Registers.HcDoneHead; // dropped big -> little endian conversion from XQEMU + hcca.HccaDoneHead = m_Registers.HcDoneHead; // dropped big -> little endian conversion from QEMU m_Registers.HcDoneHead = 0; m_DoneCount = 7; OHCI_SetInterrupt(OHCI_INTR_WD); @@ -658,7 +678,7 @@ int OHCI::OHCI_ServiceTD(OHCI_ED* Ed) } else { if (m_AsyncTD) { - // From XQEMU: "??? The hardware should allow one active packet per endpoint. + // From QEMU: "??? The hardware should allow one active packet per endpoint. // We only allow one active packet per controller. This should be sufficient // as long as devices respond in a timely manner." DBG_PRINTF("too many pending packets\n"); @@ -826,7 +846,7 @@ void OHCI::OHCI_StateReset() m_Registers.HcDoneHead = 0; m_Registers.HcFmInterval = 0; - m_Registers.HcFmInterval |= (0x2778 << 16); // TBD according to the standard, using what XQEMU sets (FSLargestDataPacket) + m_Registers.HcFmInterval |= (0x2778 << 16); // TBD according to the standard, using what QEMU sets (FSLargestDataPacket) m_Registers.HcFmInterval |= 0x2EDF; // bit-time of a frame. 1 frame = 1 ms (FrameInterval) m_Registers.HcFmRemaining = 0; m_Registers.HcFmNumber = 0; @@ -1404,7 +1424,7 @@ int OHCI::OHCI_PortSetIfConnected(int i, uint32_t Value) if (!(m_Registers.RhPort[i].HcRhPortStatus & OHCI_PORT_CCS)) { m_Registers.RhPort[i].HcRhPortStatus |= OHCI_PORT_CSC; if (m_Registers.HcRhStatus & OHCI_RHS_DRWE) { - // from XQEMU: TODO, CSC is a wakeup event + // from QEMU: TODO, CSC is a wakeup event } return 0; } diff --git a/src/devices/usb/USBDevice.cpp b/src/devices/usb/USBDevice.cpp index 8b2915820..f57452504 100644 --- a/src/devices/usb/USBDevice.cpp +++ b/src/devices/usb/USBDevice.cpp @@ -25,8 +25,34 @@ // * // ****************************************************************** -// Acknowledgment: XQEMU (GPLv2) +// Acknowledgment: QEMU usb subsystem as used in XQEMU (GPLv2) // https://xqemu.com/ + +/* +* QEMU USB emulation +* +* Copyright (c) 2005 Fabrice Bellard +* +* 2008 Generic packet handler rewrite by Max Krasnyansky +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +* THE SOFTWARE. +*/ #define _XBOXKRNL_DEFEXTRN_ @@ -588,7 +614,7 @@ void USBDevice::USB_EPsetMaxPacketSize(XboxDeviceState* dev, int pid, int ep, ui { USBEndpoint* uep = USB_GetEP(dev, pid, ep); - // Dropped from XQEMU the calculation max_packet_size = size * microframes since that's only true + // Dropped from QEMU the calculation max_packet_size = size * microframes since that's only true // for high speed (usb 2.0) devices uep->MaxPacketSize = raw & 0x7FF; @@ -658,7 +684,7 @@ void USBDevice::USB_EpReset(XboxDeviceState* dev) } /* -* From XQEMU: +* From QEMU: * This function creates a serial number for a usb device. * The serial number should: * (a) Be unique within the emulator. @@ -870,7 +896,7 @@ int USBDevice::USBDesc_HandleControl(XboxDeviceState* dev, USBPacket *p, case DeviceRequest | USB_REQ_GET_STATUS: { // From the USB 1.1 standard: "This request returns the status for the specified recipient. The Recipient bits of the bmRequestType field // specify the desired recipient. The data returned is the current status of the specified recipient." - // From XQEMU: + // From QEMU: /* Default state: Device behavior when this request is received while * the device is in the Default state is not specified. * We return the same value that a configured device would return if @@ -950,7 +976,7 @@ int USBDevice::USBDesc_HandleStandardGetDescriptor(XboxDeviceState* dev, USBPack int ret = -1; int flags = 0; - // Dropped from XQEMU bcdUSB check for usb 3.0 devices + // Dropped from QEMU bcdUSB check for usb 3.0 devices // From the USB 1.1 standard: "The standard request to a device supports three types of descriptors: DEVICE, CONFIGURATION, and STRING." @@ -975,7 +1001,7 @@ int USBDevice::USBDesc_HandleStandardGetDescriptor(XboxDeviceState* dev, USBPack break; } - // Dropped from XQEMU descriptor types USB_DT_DEVICE_QUALIFIER (6), USB_DT_OTHER_SPEED_CONFIG (7) -> usb 2.0 only and reserved in usb 3.0, + // Dropped from QEMU descriptor types USB_DT_DEVICE_QUALIFIER (6), USB_DT_OTHER_SPEED_CONFIG (7) -> usb 2.0 only and reserved in usb 3.0, // USB_DT_BOS (15) and USB_DT_DEBUG (10) -> usb 3.0 only default: @@ -1147,7 +1173,7 @@ int USBDevice::USB_ReadEndpointDesc(const USBDescEndpoint* ep, int flags, uint8_ d->u.endpoint.bSynchAddress = ep->bSynchAddress; } - // Dropped from XQEMU the reading of the SuperSpeed Endpoint Companion descriptors since those are usb 3.0 specific + // Dropped from QEMU the reading of the SuperSpeed Endpoint Companion descriptors since those are usb 3.0 specific if (ep->extra) { std::memcpy(dest + bLength, ep->extra, extralen); diff --git a/src/devices/usb/UsbCommon.h b/src/devices/usb/UsbCommon.h index 74e083ade..5f802caa6 100644 --- a/src/devices/usb/UsbCommon.h +++ b/src/devices/usb/UsbCommon.h @@ -25,8 +25,32 @@ // * // ****************************************************************** -// Acknowledgment: some of the functions present are from XQEMU (GPLv2) -// https://xqemu.com/ +// Acknowledgment: some these functions are from the QEMU usb api used in XQEMU (GPLv2) +// https://xqemu.com/ + +/* +* QEMU USB API +* +* Copyright (c) 2005 Fabrice Bellard +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +* THE SOFTWARE. +*/ #ifndef USBCOMMON_H_ #define USBCOMMON_H_ @@ -183,7 +207,7 @@ struct USBDescEndpoint { uint8_t is_audio; // has bRefresh + bSynchAddress uint8_t* extra; // class-specific descriptors (if any) associated with this endpoint - // Dropped from XQEMU the parameters bMaxBurst, bmAttributes_super and wBytesPerInterval because those are only defined for + // Dropped from QEMU the parameters bMaxBurst, bmAttributes_super and wBytesPerInterval because those are only defined for // superspeed (usb 3.0) devices in the superspeed endpoint companion }; @@ -249,7 +273,7 @@ struct USBDesc { #pragma pack(1) // Binary representation of the descriptors -// Dropped from XQEMU usb 2.0 and 3.0 only descriptors +// Dropped from QEMU usb 2.0 and 3.0 only descriptors struct USBDescriptor { uint8_t bLength; uint8_t bDescriptorType; diff --git a/src/devices/usb/XidGamepad.cpp b/src/devices/usb/XidGamepad.cpp index fcc732739..b24ce1052 100644 --- a/src/devices/usb/XidGamepad.cpp +++ b/src/devices/usb/XidGamepad.cpp @@ -25,9 +25,30 @@ // * // ****************************************************************** -// Acknowledgment: XQEMU (GPLv2) +// Acknowledgment: XQEMU xid emulation (GPLv2) // https://xqemu.com/ +/* +* QEMU USB XID Devices +* +* Copyright (c) 2013 espes +* Copyright (c) 2017 Jannik Vogel +* Copyright (c) 2018 Matt Borgerson +* +* This library is free software; you can redistribute it and/or +* modify it under the terms of the GNU Lesser General Public +* License as published by the Free Software Foundation; either +* version 2 of the License, or (at your option) any later version. +* +* This library is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +* Lesser General Public License for more details. +* +* You should have received a copy of the GNU Lesser General Public +* License along with this library; if not, see . +*/ + #define _XBOXKRNL_DEFEXTRN_ #define LOG_PREFIX CXBXR_MODULE::XIDCTRL