Skip to content
Permalink
Browse files

Squashed commit (Update copyright texts)

  • Loading branch information...
ergo720 committed Mar 5, 2019
1 parent bb8bb33 commit 00cbd82cd9e5b65510c0282793a8e4d4aeb3faa9
@@ -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.
@@ -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
@@ -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 <aliguori@us.ibm.com>
* Amit Shah <amit.shah@redhat.com>
* Michael Tokarev <mjt@tls.msk.ru>
*
* 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)

@@ -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_

@@ -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_
@@ -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
@@ -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_

@@ -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 <http://www.gnu.org/licenses/>.
*/

#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;
}
@@ -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);
Oops, something went wrong.

0 comments on commit 00cbd82

Please sign in to comment.
You can’t perform that action at this time.