mirror of https://github.com/PCSX2/pcsx2.git
USBqemu: Integrate into the build system for vs2010. Refactor the config stuff to use a system based on a modified SPU2-X CfgHelpers.cpp.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4902 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
parent
33b551e73f
commit
2134c43ab0
|
@ -117,6 +117,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ZZOgl", "plugins\zzogl-pg\o
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL", "3rdparty\SDL-1.3.0-5387\VisualC\SDL\SDL_VS2010.vcxproj", "{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL", "3rdparty\SDL-1.3.0-5387\VisualC\SDL\SDL_VS2010.vcxproj", "{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}"
|
||||||
EndProject
|
EndProject
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "USBqemu", "plugins\USBqemu\Win32\USBqemu.vcxproj", "{E613DA9F-41B4-4613-9911-E418EF5533BC}"
|
||||||
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug AVX|Win32 = Debug AVX|Win32
|
Debug AVX|Win32 = Debug AVX|Win32
|
||||||
|
@ -1235,6 +1237,39 @@ Global
|
||||||
{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|Win32.Build.0 = Release|Win32
|
{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|Win32.Build.0 = Release|Win32
|
||||||
{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|x64.ActiveCfg = Release|x64
|
{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|x64.ActiveCfg = Release|x64
|
||||||
{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|x64.Build.0 = Release|x64
|
{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|x64.Build.0 = Release|x64
|
||||||
|
{E613DA9F-41B4-4613-9911-E418EF5533BC}.Debug AVX|Win32.ActiveCfg = Debug|Win32
|
||||||
|
{E613DA9F-41B4-4613-9911-E418EF5533BC}.Debug AVX|Win32.Build.0 = Debug|Win32
|
||||||
|
{E613DA9F-41B4-4613-9911-E418EF5533BC}.Debug AVX|x64.ActiveCfg = Debug|Win32
|
||||||
|
{E613DA9F-41B4-4613-9911-E418EF5533BC}.Debug SSE2|Win32.ActiveCfg = Debug|Win32
|
||||||
|
{E613DA9F-41B4-4613-9911-E418EF5533BC}.Debug SSE2|Win32.Build.0 = Debug|Win32
|
||||||
|
{E613DA9F-41B4-4613-9911-E418EF5533BC}.Debug SSE2|x64.ActiveCfg = Debug|Win32
|
||||||
|
{E613DA9F-41B4-4613-9911-E418EF5533BC}.Debug SSE4|Win32.ActiveCfg = Debug|Win32
|
||||||
|
{E613DA9F-41B4-4613-9911-E418EF5533BC}.Debug SSE4|Win32.Build.0 = Debug|Win32
|
||||||
|
{E613DA9F-41B4-4613-9911-E418EF5533BC}.Debug SSE4|x64.ActiveCfg = Debug|Win32
|
||||||
|
{E613DA9F-41B4-4613-9911-E418EF5533BC}.Debug SSSE3|Win32.ActiveCfg = Debug|Win32
|
||||||
|
{E613DA9F-41B4-4613-9911-E418EF5533BC}.Debug SSSE3|Win32.Build.0 = Debug|Win32
|
||||||
|
{E613DA9F-41B4-4613-9911-E418EF5533BC}.Debug SSSE3|x64.ActiveCfg = Debug|Win32
|
||||||
|
{E613DA9F-41B4-4613-9911-E418EF5533BC}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
|
{E613DA9F-41B4-4613-9911-E418EF5533BC}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
|
{E613DA9F-41B4-4613-9911-E418EF5533BC}.Debug|x64.ActiveCfg = Debug|Win32
|
||||||
|
{E613DA9F-41B4-4613-9911-E418EF5533BC}.Devel|Win32.ActiveCfg = Devel|Win32
|
||||||
|
{E613DA9F-41B4-4613-9911-E418EF5533BC}.Devel|Win32.Build.0 = Devel|Win32
|
||||||
|
{E613DA9F-41B4-4613-9911-E418EF5533BC}.Devel|x64.ActiveCfg = Devel|Win32
|
||||||
|
{E613DA9F-41B4-4613-9911-E418EF5533BC}.Release AVX|Win32.ActiveCfg = Release|Win32
|
||||||
|
{E613DA9F-41B4-4613-9911-E418EF5533BC}.Release AVX|Win32.Build.0 = Release|Win32
|
||||||
|
{E613DA9F-41B4-4613-9911-E418EF5533BC}.Release AVX|x64.ActiveCfg = Release|Win32
|
||||||
|
{E613DA9F-41B4-4613-9911-E418EF5533BC}.Release SSE2|Win32.ActiveCfg = Release|Win32
|
||||||
|
{E613DA9F-41B4-4613-9911-E418EF5533BC}.Release SSE2|Win32.Build.0 = Release|Win32
|
||||||
|
{E613DA9F-41B4-4613-9911-E418EF5533BC}.Release SSE2|x64.ActiveCfg = Release|Win32
|
||||||
|
{E613DA9F-41B4-4613-9911-E418EF5533BC}.Release SSE4|Win32.ActiveCfg = Release|Win32
|
||||||
|
{E613DA9F-41B4-4613-9911-E418EF5533BC}.Release SSE4|Win32.Build.0 = Release|Win32
|
||||||
|
{E613DA9F-41B4-4613-9911-E418EF5533BC}.Release SSE4|x64.ActiveCfg = Release|Win32
|
||||||
|
{E613DA9F-41B4-4613-9911-E418EF5533BC}.Release SSSE3|Win32.ActiveCfg = Release|Win32
|
||||||
|
{E613DA9F-41B4-4613-9911-E418EF5533BC}.Release SSSE3|Win32.Build.0 = Release|Win32
|
||||||
|
{E613DA9F-41B4-4613-9911-E418EF5533BC}.Release SSSE3|x64.ActiveCfg = Release|Win32
|
||||||
|
{E613DA9F-41B4-4613-9911-E418EF5533BC}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
|
{E613DA9F-41B4-4613-9911-E418EF5533BC}.Release|Win32.Build.0 = Release|Win32
|
||||||
|
{E613DA9F-41B4-4613-9911-E418EF5533BC}.Release|x64.ActiveCfg = Release|Win32
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
|
@ -1252,6 +1287,7 @@ Global
|
||||||
{5CF88D5F-64DD-4EDC-9F1A-436BD502940A} = {703FD00B-D7A0-41E3-BD03-CEC86B385DAF}
|
{5CF88D5F-64DD-4EDC-9F1A-436BD502940A} = {703FD00B-D7A0-41E3-BD03-CEC86B385DAF}
|
||||||
{6C8D28E4-447E-4856-BD9E-6B8F5E7C58C9} = {703FD00B-D7A0-41E3-BD03-CEC86B385DAF}
|
{6C8D28E4-447E-4856-BD9E-6B8F5E7C58C9} = {703FD00B-D7A0-41E3-BD03-CEC86B385DAF}
|
||||||
{2D4E85B2-F47F-4D65-B091-701E5C031DAC} = {703FD00B-D7A0-41E3-BD03-CEC86B385DAF}
|
{2D4E85B2-F47F-4D65-B091-701E5C031DAC} = {703FD00B-D7A0-41E3-BD03-CEC86B385DAF}
|
||||||
|
{E613DA9F-41B4-4613-9911-E418EF5533BC} = {703FD00B-D7A0-41E3-BD03-CEC86B385DAF}
|
||||||
{E9B51944-7E6D-4BCD-83F2-7BBD5A46182D} = {78EBE642-7A4D-4EA7-86BE-5639C6646C38}
|
{E9B51944-7E6D-4BCD-83F2-7BBD5A46182D} = {78EBE642-7A4D-4EA7-86BE-5639C6646C38}
|
||||||
{2F6C0388-20CB-4242-9F6C-A6EBB6A83F47} = {78EBE642-7A4D-4EA7-86BE-5639C6646C38}
|
{2F6C0388-20CB-4242-9F6C-A6EBB6A83F47} = {78EBE642-7A4D-4EA7-86BE-5639C6646C38}
|
||||||
{F4EB4AB2-C595-4B05-8BC0-059024BC796C} = {78EBE642-7A4D-4EA7-86BE-5639C6646C38}
|
{F4EB4AB2-C595-4B05-8BC0-059024BC796C} = {78EBE642-7A4D-4EA7-86BE-5639C6646C38}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* USBlinuz
|
/* USBqemu
|
||||||
* Copyright (C) 2002-2004 USBlinuz Team
|
* Copyright (C) 2002-2011 PCSX2 Team
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
@ -16,32 +16,26 @@
|
||||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include "qemu-usb/USBinternal.h"
|
||||||
#include <string.h>
|
|
||||||
#include <errno.h>
|
|
||||||
|
|
||||||
#include "qemu-usb/vl.h"
|
#ifdef _MSC_VER
|
||||||
#include "USB.h"
|
# include "svnrev.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
const unsigned char version = PS2E_USB_VERSION;
|
const unsigned char version = PS2E_USB_VERSION;
|
||||||
const unsigned char revision = 0;
|
const unsigned char revision = 0;
|
||||||
const unsigned char build = 1; // increase that with each version
|
const unsigned char build = 1; // increase that with each version
|
||||||
|
|
||||||
static char *libraryName = "Qemu USB Driver by Gigaherz"
|
// PCSX2 expects ASNI, not unicode, so this MUST always be char...
|
||||||
#ifdef _DEBUG
|
static char libraryName[256];
|
||||||
" (debug)"
|
|
||||||
#endif
|
|
||||||
;
|
|
||||||
|
|
||||||
OHCIState *qemu_ohci;
|
OHCIState *qemu_ohci;
|
||||||
|
|
||||||
Config conf;
|
Config conf;
|
||||||
|
|
||||||
HWND gsWnd=NULL;
|
HWND gsWindowHandle=NULL;
|
||||||
|
|
||||||
u8 *usbR;
|
|
||||||
u8 *ram;
|
u8 *ram;
|
||||||
usbStruct usb;
|
|
||||||
USBcallback _USBirq;
|
USBcallback _USBirq;
|
||||||
FILE *usbLog;
|
FILE *usbLog;
|
||||||
int64_t usb_frame_time=0;
|
int64_t usb_frame_time=0;
|
||||||
|
@ -65,11 +59,64 @@ void __Log(char *fmt, ...) {
|
||||||
va_end(list);
|
va_end(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void InitLibraryName()
|
||||||
|
{
|
||||||
|
#ifdef SPU2X_PUBLIC_RELEASE
|
||||||
|
|
||||||
|
// Public Release!
|
||||||
|
// Output a simplified string that's just our name:
|
||||||
|
|
||||||
|
strcpy( libraryName, "USBqemu" );
|
||||||
|
|
||||||
|
#else
|
||||||
|
#ifdef SVN_REV_UNKNOWN
|
||||||
|
|
||||||
|
// Unknown revision.
|
||||||
|
// Output a name that includes devbuild status but not
|
||||||
|
// subversion revision tags:
|
||||||
|
|
||||||
|
strcpy( libraryName, "USBqemu"
|
||||||
|
#ifdef DEBUG_FAST
|
||||||
|
"-Debug"
|
||||||
|
#elif defined( PCSX2_DEBUG )
|
||||||
|
"-Debug/Strict" // strict debugging is slow!
|
||||||
|
#elif defined( PCSX2_DEVBUILD )
|
||||||
|
"-Dev"
|
||||||
|
#else
|
||||||
|
""
|
||||||
|
#endif
|
||||||
|
);
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
// Use TortoiseSVN's SubWCRev utility's output
|
||||||
|
// to label the specific revision:
|
||||||
|
|
||||||
|
sprintf_s( libraryName, "USBqemu r%d%s"
|
||||||
|
#ifdef DEBUG_FAST
|
||||||
|
"-Debug"
|
||||||
|
#elif defined( PCSX2_DEBUG )
|
||||||
|
"-Debug/Strict" // strict debugging is slow!
|
||||||
|
#elif defined( PCSX2_DEVBUILD )
|
||||||
|
"-Dev"
|
||||||
|
#else
|
||||||
|
""
|
||||||
|
#endif
|
||||||
|
,SVN_REV,
|
||||||
|
SVN_MODS ? "m" : ""
|
||||||
|
);
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
u32 CALLBACK PS2EgetLibType() {
|
u32 CALLBACK PS2EgetLibType() {
|
||||||
return PS2E_LT_USB;
|
return PS2E_LT_USB;
|
||||||
}
|
}
|
||||||
|
|
||||||
char* CALLBACK PS2EgetLibName() {
|
char* CALLBACK PS2EgetLibName()
|
||||||
|
{
|
||||||
|
InitLibraryName();
|
||||||
return libraryName;
|
return libraryName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -126,7 +173,7 @@ s32 CALLBACK USBopen(void *pDsp) {
|
||||||
while (GetWindowLong (hWnd, GWL_STYLE) & WS_CHILD)
|
while (GetWindowLong (hWnd, GWL_STYLE) & WS_CHILD)
|
||||||
hWnd = GetParent (hWnd);
|
hWnd = GetParent (hWnd);
|
||||||
}
|
}
|
||||||
gsWnd = hWnd;
|
gsWindowHandle = hWnd;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* USBlinuz
|
/* USBqemu
|
||||||
* Copyright (C) 2002-2004 USBlinuz Team
|
* Copyright (C) 2002-2011 PCSX2 Team
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
@ -27,46 +27,28 @@
|
||||||
#include "PS2Edefs.h"
|
#include "PS2Edefs.h"
|
||||||
|
|
||||||
#ifdef __WIN32__
|
#ifdef __WIN32__
|
||||||
|
# include <windows.h>
|
||||||
#define usleep(x) Sleep(x / 1000)
|
# include <windowsx.h>
|
||||||
#include <windows.h>
|
|
||||||
#include <windowsx.h>
|
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
# include <gtk/gtk.h>
|
||||||
#include <gtk/gtk.h>
|
# define __inline inline
|
||||||
|
|
||||||
#define __inline inline
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <errno.h>
|
||||||
|
|
||||||
#define USB_LOG __Log
|
#define USB_LOG __Log
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
int Log;
|
bool Log;
|
||||||
} Config;
|
} Config;
|
||||||
|
|
||||||
extern Config conf;
|
extern Config conf;
|
||||||
|
|
||||||
extern u8 *usbR;
|
|
||||||
extern u8 *ram;
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
int unused;
|
|
||||||
} usbStruct;
|
|
||||||
|
|
||||||
extern usbStruct usb;
|
|
||||||
|
|
||||||
#define usbRs8(mem) usbR[(mem) & 0xffff]
|
|
||||||
#define usbRs16(mem) (*(s16*)&usbR[(mem) & 0xffff])
|
|
||||||
#define usbRs32(mem) (*(s32*)&usbR[(mem) & 0xffff])
|
|
||||||
#define usbRu8(mem) (*(u8*) &usbR[(mem) & 0xffff])
|
|
||||||
#define usbRu16(mem) (*(u16*)&usbR[(mem) & 0xffff])
|
|
||||||
#define usbRu32(mem) (*(u32*)&usbR[(mem) & 0xffff])
|
|
||||||
|
|
||||||
#define PSXCLK 36864000 /* 36.864 Mhz */
|
#define PSXCLK 36864000 /* 36.864 Mhz */
|
||||||
|
|
||||||
extern USBcallback _USBirq;
|
|
||||||
void USBirq(int);
|
void USBirq(int);
|
||||||
|
|
||||||
void SaveConfig();
|
void SaveConfig();
|
||||||
|
@ -77,300 +59,6 @@ void __Log(char *fmt, ...);
|
||||||
|
|
||||||
void SysMessage(char *fmt, ...);
|
void SysMessage(char *fmt, ...);
|
||||||
|
|
||||||
#include "qemu-usb/vl.h"
|
extern HWND gsWindowHandle;
|
||||||
|
|
||||||
#define DEBUG_OHCI
|
|
||||||
/* Dump packet contents. */
|
|
||||||
//#define DEBUG_PACKET
|
|
||||||
/* This causes frames to occur 1000x slower */
|
|
||||||
//#define OHCI_TIME_WARP 1
|
|
||||||
|
|
||||||
/* Number of Downstream Ports on the root hub. */
|
|
||||||
|
|
||||||
#define OHCI_MAX_PORTS 15
|
|
||||||
|
|
||||||
extern int64_t usb_frame_time;
|
|
||||||
extern int64_t usb_bit_time;
|
|
||||||
|
|
||||||
typedef struct OHCIPort {
|
|
||||||
USBPort port;
|
|
||||||
uint32_t ctrl;
|
|
||||||
} OHCIPort;
|
|
||||||
|
|
||||||
typedef uint32_t target_phys_addr_t;
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
//USBBus bus;
|
|
||||||
//qemu_irq irq;
|
|
||||||
enum ohci_type type;
|
|
||||||
int mem;
|
|
||||||
int num_ports;
|
|
||||||
const char *name;
|
|
||||||
|
|
||||||
//QEMUTimer *eof_timer;
|
|
||||||
int64_t eof_timer;
|
|
||||||
int64_t sof_time;
|
|
||||||
|
|
||||||
/* OHCI state */
|
|
||||||
/* Control partition */
|
|
||||||
uint32_t ctl, status;
|
|
||||||
uint32_t intr_status;
|
|
||||||
uint32_t intr;
|
|
||||||
|
|
||||||
/* memory pointer partition */
|
|
||||||
uint32_t hcca;
|
|
||||||
uint32_t ctrl_head, ctrl_cur;
|
|
||||||
uint32_t bulk_head, bulk_cur;
|
|
||||||
uint32_t per_cur;
|
|
||||||
uint32_t done;
|
|
||||||
int done_count;
|
|
||||||
|
|
||||||
/* Frame counter partition */
|
|
||||||
uint32_t fsmps:15;
|
|
||||||
uint32_t fit:1;
|
|
||||||
uint32_t fi:14;
|
|
||||||
uint32_t frt:1;
|
|
||||||
uint16_t frame_number;
|
|
||||||
uint16_t padding;
|
|
||||||
uint32_t pstart;
|
|
||||||
uint32_t lst;
|
|
||||||
|
|
||||||
/* Root Hub partition */
|
|
||||||
uint32_t rhdesc_a, rhdesc_b;
|
|
||||||
uint32_t rhstatus;
|
|
||||||
OHCIPort rhport[OHCI_MAX_PORTS];
|
|
||||||
|
|
||||||
/* PXA27x Non-OHCI events */
|
|
||||||
uint32_t hstatus;
|
|
||||||
uint32_t hmask;
|
|
||||||
uint32_t hreset;
|
|
||||||
uint32_t htest;
|
|
||||||
|
|
||||||
/* SM501 local memory offset */
|
|
||||||
target_phys_addr_t localmem_base;
|
|
||||||
|
|
||||||
/* Active packets. */
|
|
||||||
uint32_t old_ctl;
|
|
||||||
USBPacket usb_packet;
|
|
||||||
uint8_t usb_buf[8192];
|
|
||||||
uint32_t async_td;
|
|
||||||
int async_complete;
|
|
||||||
|
|
||||||
} OHCIState;
|
|
||||||
|
|
||||||
/* Host Controller Communications Area */
|
|
||||||
struct ohci_hcca {
|
|
||||||
uint32_t intr[32];
|
|
||||||
uint16_t frame, pad;
|
|
||||||
uint32_t done;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
extern int64_t usb_frame_time;
|
|
||||||
extern int64_t usb_bit_time;
|
|
||||||
|
|
||||||
enum ohci_type {
|
|
||||||
OHCI_TYPE_PCI,
|
|
||||||
OHCI_TYPE_PXA,
|
|
||||||
OHCI_TYPE_SM501,
|
|
||||||
};
|
|
||||||
|
|
||||||
int64_t get_ticks_per_sec();
|
|
||||||
|
|
||||||
static void ohci_bus_stop(OHCIState *ohci);
|
|
||||||
|
|
||||||
/* Bitfields for the first word of an Endpoint Desciptor. */
|
|
||||||
#define OHCI_ED_FA_SHIFT 0
|
|
||||||
#define OHCI_ED_FA_MASK (0x7f<<OHCI_ED_FA_SHIFT)
|
|
||||||
#define OHCI_ED_EN_SHIFT 7
|
|
||||||
#define OHCI_ED_EN_MASK (0xf<<OHCI_ED_EN_SHIFT)
|
|
||||||
#define OHCI_ED_D_SHIFT 11
|
|
||||||
#define OHCI_ED_D_MASK (3<<OHCI_ED_D_SHIFT)
|
|
||||||
#define OHCI_ED_S (1<<13)
|
|
||||||
#define OHCI_ED_K (1<<14)
|
|
||||||
#define OHCI_ED_F (1<<15)
|
|
||||||
#define OHCI_ED_MPS_SHIFT 16
|
|
||||||
#define OHCI_ED_MPS_MASK (0x7ff<<OHCI_ED_MPS_SHIFT)
|
|
||||||
|
|
||||||
/* Flags in the head field of an Endpoint Desciptor. */
|
|
||||||
#define OHCI_ED_H 1
|
|
||||||
#define OHCI_ED_C 2
|
|
||||||
|
|
||||||
/* Bitfields for the first word of a Transfer Desciptor. */
|
|
||||||
#define OHCI_TD_R (1<<18)
|
|
||||||
#define OHCI_TD_DP_SHIFT 19
|
|
||||||
#define OHCI_TD_DP_MASK (3<<OHCI_TD_DP_SHIFT)
|
|
||||||
#define OHCI_TD_DI_SHIFT 21
|
|
||||||
#define OHCI_TD_DI_MASK (7<<OHCI_TD_DI_SHIFT)
|
|
||||||
#define OHCI_TD_T0 (1<<24)
|
|
||||||
#define OHCI_TD_T1 (1<<24)
|
|
||||||
#define OHCI_TD_EC_SHIFT 26
|
|
||||||
#define OHCI_TD_EC_MASK (3<<OHCI_TD_EC_SHIFT)
|
|
||||||
#define OHCI_TD_CC_SHIFT 28
|
|
||||||
#define OHCI_TD_CC_MASK (0xf<<OHCI_TD_CC_SHIFT)
|
|
||||||
|
|
||||||
/* Bitfields for the first word of an Isochronous Transfer Desciptor. */
|
|
||||||
/* CC & DI - same as in the General Transfer Desciptor */
|
|
||||||
#define OHCI_TD_SF_SHIFT 0
|
|
||||||
#define OHCI_TD_SF_MASK (0xffff<<OHCI_TD_SF_SHIFT)
|
|
||||||
#define OHCI_TD_FC_SHIFT 24
|
|
||||||
#define OHCI_TD_FC_MASK (7<<OHCI_TD_FC_SHIFT)
|
|
||||||
|
|
||||||
/* Isochronous Transfer Desciptor - Offset / PacketStatusWord */
|
|
||||||
#define OHCI_TD_PSW_CC_SHIFT 12
|
|
||||||
#define OHCI_TD_PSW_CC_MASK (0xf<<OHCI_TD_PSW_CC_SHIFT)
|
|
||||||
#define OHCI_TD_PSW_SIZE_SHIFT 0
|
|
||||||
#define OHCI_TD_PSW_SIZE_MASK (0xfff<<OHCI_TD_PSW_SIZE_SHIFT)
|
|
||||||
|
|
||||||
#define OHCI_PAGE_MASK 0xfffff000
|
|
||||||
#define OHCI_OFFSET_MASK 0xfff
|
|
||||||
|
|
||||||
#define OHCI_DPTR_MASK 0xfffffff0
|
|
||||||
|
|
||||||
#define OHCI_BM(val, field) \
|
|
||||||
(((val) & OHCI_##field##_MASK) >> OHCI_##field##_SHIFT)
|
|
||||||
|
|
||||||
#define OHCI_SET_BM(val, field, newval) do { \
|
|
||||||
val &= ~OHCI_##field##_MASK; \
|
|
||||||
val |= ((newval) << OHCI_##field##_SHIFT) & OHCI_##field##_MASK; \
|
|
||||||
} while(0)
|
|
||||||
|
|
||||||
/* endpoint descriptor */
|
|
||||||
struct ohci_ed {
|
|
||||||
uint32_t flags;
|
|
||||||
uint32_t tail;
|
|
||||||
uint32_t head;
|
|
||||||
uint32_t next;
|
|
||||||
};
|
|
||||||
|
|
||||||
/* General transfer descriptor */
|
|
||||||
struct ohci_td {
|
|
||||||
uint32_t flags;
|
|
||||||
uint32_t cbp;
|
|
||||||
uint32_t next;
|
|
||||||
uint32_t be;
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Isochronous transfer descriptor */
|
|
||||||
struct ohci_iso_td {
|
|
||||||
uint32_t flags;
|
|
||||||
uint32_t bp;
|
|
||||||
uint32_t next;
|
|
||||||
uint32_t be;
|
|
||||||
uint16_t offset[8];
|
|
||||||
};
|
|
||||||
|
|
||||||
#define USB_HZ 12000000
|
|
||||||
|
|
||||||
/* OHCI Local stuff */
|
|
||||||
#define OHCI_CTL_CBSR ((1<<0)|(1<<1))
|
|
||||||
#define OHCI_CTL_PLE (1<<2)
|
|
||||||
#define OHCI_CTL_IE (1<<3)
|
|
||||||
#define OHCI_CTL_CLE (1<<4)
|
|
||||||
#define OHCI_CTL_BLE (1<<5)
|
|
||||||
#define OHCI_CTL_HCFS ((1<<6)|(1<<7))
|
|
||||||
#define OHCI_USB_RESET 0x00
|
|
||||||
#define OHCI_USB_RESUME 0x40
|
|
||||||
#define OHCI_USB_OPERATIONAL 0x80
|
|
||||||
#define OHCI_USB_SUSPEND 0xc0
|
|
||||||
#define OHCI_CTL_IR (1<<8)
|
|
||||||
#define OHCI_CTL_RWC (1<<9)
|
|
||||||
#define OHCI_CTL_RWE (1<<10)
|
|
||||||
|
|
||||||
#define OHCI_STATUS_HCR (1<<0)
|
|
||||||
#define OHCI_STATUS_CLF (1<<1)
|
|
||||||
#define OHCI_STATUS_BLF (1<<2)
|
|
||||||
#define OHCI_STATUS_OCR (1<<3)
|
|
||||||
#define OHCI_STATUS_SOC ((1<<6)|(1<<7))
|
|
||||||
|
|
||||||
#define OHCI_INTR_SO (1<<0) /* Scheduling overrun */
|
|
||||||
#define OHCI_INTR_WD (1<<1) /* HcDoneHead writeback */
|
|
||||||
#define OHCI_INTR_SF (1<<2) /* Start of frame */
|
|
||||||
#define OHCI_INTR_RD (1<<3) /* Resume detect */
|
|
||||||
#define OHCI_INTR_UE (1<<4) /* Unrecoverable error */
|
|
||||||
#define OHCI_INTR_FNO (1<<5) /* Frame number overflow */
|
|
||||||
#define OHCI_INTR_RHSC (1<<6) /* Root hub status change */
|
|
||||||
#define OHCI_INTR_OC (1<<30) /* Ownership change */
|
|
||||||
#define OHCI_INTR_MIE (1<<31) /* Master Interrupt Enable */
|
|
||||||
|
|
||||||
#define OHCI_HCCA_SIZE 0x100
|
|
||||||
#define OHCI_HCCA_MASK 0xffffff00
|
|
||||||
|
|
||||||
#define OHCI_EDPTR_MASK 0xfffffff0
|
|
||||||
|
|
||||||
#define OHCI_FMI_FI 0x00003fff
|
|
||||||
#define OHCI_FMI_FSMPS 0xffff0000
|
|
||||||
#define OHCI_FMI_FIT 0x80000000
|
|
||||||
|
|
||||||
#define OHCI_FR_RT (1<<31)
|
|
||||||
|
|
||||||
#define OHCI_LS_THRESH 0x628
|
|
||||||
|
|
||||||
#define OHCI_RHA_RW_MASK 0x00000000 /* Mask of supported features. */
|
|
||||||
#define OHCI_RHA_PSM (1<<8)
|
|
||||||
#define OHCI_RHA_NPS (1<<9)
|
|
||||||
#define OHCI_RHA_DT (1<<10)
|
|
||||||
#define OHCI_RHA_OCPM (1<<11)
|
|
||||||
#define OHCI_RHA_NOCP (1<<12)
|
|
||||||
#define OHCI_RHA_POTPGT_MASK 0xff000000
|
|
||||||
|
|
||||||
#define OHCI_RHS_LPS (1<<0)
|
|
||||||
#define OHCI_RHS_OCI (1<<1)
|
|
||||||
#define OHCI_RHS_DRWE (1<<15)
|
|
||||||
#define OHCI_RHS_LPSC (1<<16)
|
|
||||||
#define OHCI_RHS_OCIC (1<<17)
|
|
||||||
#define OHCI_RHS_CRWE (1<<31)
|
|
||||||
|
|
||||||
#define OHCI_PORT_CCS (1<<0)
|
|
||||||
#define OHCI_PORT_PES (1<<1)
|
|
||||||
#define OHCI_PORT_PSS (1<<2)
|
|
||||||
#define OHCI_PORT_POCI (1<<3)
|
|
||||||
#define OHCI_PORT_PRS (1<<4)
|
|
||||||
#define OHCI_PORT_PPS (1<<8)
|
|
||||||
#define OHCI_PORT_LSDA (1<<9)
|
|
||||||
#define OHCI_PORT_CSC (1<<16)
|
|
||||||
#define OHCI_PORT_PESC (1<<17)
|
|
||||||
#define OHCI_PORT_PSSC (1<<18)
|
|
||||||
#define OHCI_PORT_OCIC (1<<19)
|
|
||||||
#define OHCI_PORT_PRSC (1<<20)
|
|
||||||
#define OHCI_PORT_WTC (OHCI_PORT_CSC|OHCI_PORT_PESC|OHCI_PORT_PSSC \
|
|
||||||
|OHCI_PORT_OCIC|OHCI_PORT_PRSC)
|
|
||||||
|
|
||||||
#define OHCI_TD_DIR_SETUP 0x0
|
|
||||||
#define OHCI_TD_DIR_OUT 0x1
|
|
||||||
#define OHCI_TD_DIR_IN 0x2
|
|
||||||
#define OHCI_TD_DIR_RESERVED 0x3
|
|
||||||
|
|
||||||
#define OHCI_CC_NOERROR 0x0
|
|
||||||
#define OHCI_CC_CRC 0x1
|
|
||||||
#define OHCI_CC_BITSTUFFING 0x2
|
|
||||||
#define OHCI_CC_DATATOGGLEMISMATCH 0x3
|
|
||||||
#define OHCI_CC_STALL 0x4
|
|
||||||
#define OHCI_CC_DEVICENOTRESPONDING 0x5
|
|
||||||
#define OHCI_CC_PIDCHECKFAILURE 0x6
|
|
||||||
#define OHCI_CC_UNDEXPETEDPID 0x7
|
|
||||||
#define OHCI_CC_DATAOVERRUN 0x8
|
|
||||||
#define OHCI_CC_DATAUNDERRUN 0x9
|
|
||||||
#define OHCI_CC_BUFFEROVERRUN 0xc
|
|
||||||
#define OHCI_CC_BUFFERUNDERRUN 0xd
|
|
||||||
|
|
||||||
#define OHCI_HRESET_FSBIR (1 << 0)
|
|
||||||
|
|
||||||
|
|
||||||
int64_t get_clock();
|
|
||||||
|
|
||||||
OHCIState *ohci_create(uint32_t base, int ports);
|
|
||||||
|
|
||||||
uint32_t ohci_mem_read(void *ptr, target_phys_addr_t addr);
|
|
||||||
void ohci_mem_write(void *ptr, target_phys_addr_t addr, uint32_t val);
|
|
||||||
void ohci_frame_boundary(void *opaque);
|
|
||||||
|
|
||||||
int ohci_bus_start(OHCIState *ohci);
|
|
||||||
void ohci_bus_stop(OHCIState *ohci);
|
|
||||||
|
|
||||||
USBDevice *usb_hub_init(int nb_ports);
|
|
||||||
USBDevice *usb_msd_init(const char *filename);
|
|
||||||
USBDevice *eyetoy_init(void);
|
|
||||||
USBDevice *usb_mouse_init(void);
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -0,0 +1,160 @@
|
||||||
|
/* SPU2-X, A plugin for Emulating the Sound Processing Unit of the Playstation 2
|
||||||
|
* Developed and maintained by the Pcsx2 Development Team.
|
||||||
|
*
|
||||||
|
* Original portions from SPU2ghz are (c) 2008 by David Quintana [gigaherz]
|
||||||
|
*
|
||||||
|
* SPU2-X 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 Found-
|
||||||
|
* ation, either version 3 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* SPU2-X 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 SPU2-X. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#include "../USB.h"
|
||||||
|
|
||||||
|
void SysMessage(const char *fmt, ...)
|
||||||
|
{
|
||||||
|
va_list list;
|
||||||
|
char tmp[512];
|
||||||
|
wchar_t wtmp[512];
|
||||||
|
|
||||||
|
va_start(list,fmt);
|
||||||
|
vsprintf_s(tmp,fmt,list);
|
||||||
|
va_end(list);
|
||||||
|
swprintf_s(wtmp, L"%S", tmp);
|
||||||
|
MessageBox( (!!gsWindowHandle) ? (HWND)gsWindowHandle : GetActiveWindow(), wtmp,
|
||||||
|
L"SPU2-X System Message", MB_OK | MB_SETFOREGROUND);
|
||||||
|
}
|
||||||
|
|
||||||
|
void SysMessage(const wchar_t *fmt, ...)
|
||||||
|
{
|
||||||
|
va_list list;
|
||||||
|
wchar_t tmp[512];
|
||||||
|
|
||||||
|
va_start(list,fmt);
|
||||||
|
vswprintf_s(tmp,fmt,list);
|
||||||
|
va_end(list);
|
||||||
|
|
||||||
|
MessageBox( (!!gsWindowHandle) ? (HWND)gsWindowHandle : GetActiveWindow(), tmp,
|
||||||
|
L"SPU2-X System Message", MB_OK | MB_SETFOREGROUND);
|
||||||
|
}
|
||||||
|
|
||||||
|
//////
|
||||||
|
|
||||||
|
static TCHAR CfgFile[260] = L"inis/SPU2-X.ini";
|
||||||
|
|
||||||
|
void CfgSetSettingsDir( const char* dir )
|
||||||
|
{
|
||||||
|
if(dir == NULL)
|
||||||
|
{
|
||||||
|
wcscpy(CfgFile, L"inis/SPU2-X.ini");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
swprintf_s(CfgFile, L"%S", dir);
|
||||||
|
TCHAR term = CfgFile[wcslen(CfgFile)-1];
|
||||||
|
if(term != L'\\' && term != L'/')
|
||||||
|
wcscat(CfgFile, L"\\");
|
||||||
|
wcscat(CfgFile, L"USBQemu.ini" );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*| Config File Format: |¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*\
|
||||||
|
+--+---------------------+------------------------+
|
||||||
|
| |
|
||||||
|
| Option=Value |
|
||||||
|
| |
|
||||||
|
| |
|
||||||
|
| Boolean Values: TRUE,YES,1,T,Y mean 'true', |
|
||||||
|
| everything else means 'false'. |
|
||||||
|
| |
|
||||||
|
| All Values are limited to 255 chars. |
|
||||||
|
| |
|
||||||
|
+-------------------------------------------------+
|
||||||
|
\*_____________________________________________*/
|
||||||
|
|
||||||
|
|
||||||
|
void CfgWriteBool(const TCHAR* Section, const TCHAR* Name, bool Value)
|
||||||
|
{
|
||||||
|
const TCHAR *Data = Value ? L"TRUE" : L"FALSE";
|
||||||
|
WritePrivateProfileString( Section, Name, Data, CfgFile );
|
||||||
|
}
|
||||||
|
|
||||||
|
void CfgWriteInt(const TCHAR* Section, const TCHAR* Name, int Value)
|
||||||
|
{
|
||||||
|
TCHAR Data[32];
|
||||||
|
_itow( Value, Data, 10 );
|
||||||
|
WritePrivateProfileString(Section,Name,Data,CfgFile);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CfgWriteStr(const TCHAR* Section, const TCHAR* Name, const TCHAR *Data)
|
||||||
|
{
|
||||||
|
WritePrivateProfileString( Section, Name, Data, CfgFile );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
bool CfgReadBool(const TCHAR *Section,const TCHAR* Name, bool Default)
|
||||||
|
{
|
||||||
|
TCHAR Data[255] = {0};
|
||||||
|
|
||||||
|
GetPrivateProfileString( Section, Name, L"", Data, 255, CfgFile );
|
||||||
|
Data[254]=0;
|
||||||
|
if(wcslen(Data)==0) {
|
||||||
|
CfgWriteBool(Section,Name,Default);
|
||||||
|
return Default;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(wcscmp(Data,L"1")==0) return true;
|
||||||
|
if(wcscmp(Data,L"Y")==0) return true;
|
||||||
|
if(wcscmp(Data,L"T")==0) return true;
|
||||||
|
if(wcscmp(Data,L"YES")==0) return true;
|
||||||
|
if(wcscmp(Data,L"TRUE")==0) return true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int CfgReadInt(const TCHAR* Section, const TCHAR* Name,int Default)
|
||||||
|
{
|
||||||
|
TCHAR Data[255]={0};
|
||||||
|
GetPrivateProfileString(Section,Name,L"",Data,255,CfgFile);
|
||||||
|
Data[254]=0;
|
||||||
|
|
||||||
|
if(wcslen(Data)==0) {
|
||||||
|
CfgWriteInt(Section,Name,Default);
|
||||||
|
return Default;
|
||||||
|
}
|
||||||
|
|
||||||
|
return _wtoi(Data);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CfgReadStr(const TCHAR* Section, const TCHAR* Name, TCHAR* Data, int DataSize, const TCHAR* Default)
|
||||||
|
{
|
||||||
|
wchar_t workspace[512];
|
||||||
|
int chars = GetPrivateProfileString(Section,Name,L"",Data,DataSize,CfgFile);
|
||||||
|
|
||||||
|
if(!chars)
|
||||||
|
{
|
||||||
|
wcscpy(Data, Default);
|
||||||
|
CfgWriteStr( Section, Name, Default );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Tries to read the requested value.
|
||||||
|
// Returns FALSE if the value isn't found.
|
||||||
|
bool CfgFindName( const TCHAR *Section, const TCHAR* Name)
|
||||||
|
{
|
||||||
|
// Only load 24 characters. No need to load more.
|
||||||
|
TCHAR Data[24]={0};
|
||||||
|
GetPrivateProfileString(Section,Name,L"",Data,24,CfgFile);
|
||||||
|
Data[23]=0;
|
||||||
|
|
||||||
|
if(wcslen(Data)==0) return false;
|
||||||
|
return true;
|
||||||
|
}
|
|
@ -0,0 +1,16 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <tchar.h>
|
||||||
|
|
||||||
|
extern void CfgSetSettingsDir( const char* dir );
|
||||||
|
extern void CfgSetLogDir( const char* dir );
|
||||||
|
|
||||||
|
extern bool CfgFindName( const TCHAR *Section, const TCHAR* Name);
|
||||||
|
|
||||||
|
extern void CfgWriteBool(const TCHAR* Section, const TCHAR* Name, bool Value);
|
||||||
|
extern void CfgWriteInt(const TCHAR* Section, const TCHAR* Name, int Value);
|
||||||
|
extern void CfgWriteStr(const TCHAR* Section, const TCHAR* Name, const TCHAR *Data);
|
||||||
|
|
||||||
|
extern bool CfgReadBool(const TCHAR *Section,const TCHAR* Name, bool Default);
|
||||||
|
extern void CfgReadStr(const TCHAR* Section, const TCHAR* Name, TCHAR* Data, int DataSize, const TCHAR* Default);
|
||||||
|
extern int CfgReadInt(const TCHAR* Section, const TCHAR* Name,int Default);
|
|
@ -1,51 +1,21 @@
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
#include "USB.h"
|
#include "../USB.h"
|
||||||
|
|
||||||
|
#include "CfgHelpers.h"
|
||||||
|
|
||||||
|
void CALLBACK USBsetSettingsDir( const char* dir )
|
||||||
|
{
|
||||||
|
CfgSetSettingsDir(dir);
|
||||||
|
}
|
||||||
|
|
||||||
extern HINSTANCE hInst;
|
|
||||||
void SaveConfig()
|
void SaveConfig()
|
||||||
{
|
{
|
||||||
|
CfgWriteBool(L"Interface", L"Logging", conf.Log);
|
||||||
Config *Conf1 = &conf;
|
|
||||||
char *szTemp;
|
|
||||||
char szIniFile[256], szValue[256];
|
|
||||||
|
|
||||||
GetModuleFileName(GetModuleHandle((LPCSTR)hInst), szIniFile, 256);
|
|
||||||
szTemp = strrchr(szIniFile, '\\');
|
|
||||||
|
|
||||||
if(!szTemp) return;
|
|
||||||
strcpy(szTemp, "\\inis\\usblinuz.ini");
|
|
||||||
sprintf(szValue,"%u",Conf1->Log);
|
|
||||||
WritePrivateProfileString("Interface", "Logging",szValue,szIniFile);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void LoadConfig() {
|
void LoadConfig()
|
||||||
FILE *fp;
|
{
|
||||||
|
conf.Log = CfgReadBool(L"Interface", L"Logging", false);
|
||||||
|
|
||||||
Config *Conf1 = &conf;
|
|
||||||
char *szTemp;
|
|
||||||
char szIniFile[256], szValue[256];
|
|
||||||
|
|
||||||
GetModuleFileName(GetModuleHandle((LPCSTR)hInst), szIniFile, 256);
|
|
||||||
szTemp = strrchr(szIniFile, '\\');
|
|
||||||
|
|
||||||
if(!szTemp) return ;
|
|
||||||
strcpy(szTemp, "\\inis\\usblinuz.ini");
|
|
||||||
fp=fopen("inis\\usblinuz.ini","rt");//check if usbnull.ini really exists
|
|
||||||
if (!fp)
|
|
||||||
{
|
|
||||||
CreateDirectory("inis",NULL);
|
|
||||||
memset(&conf, 0, sizeof(conf));
|
|
||||||
conf.Log = 0;//default value
|
|
||||||
SaveConfig();//save and return
|
|
||||||
return ;
|
|
||||||
}
|
|
||||||
fclose(fp);
|
|
||||||
GetPrivateProfileString("Interface", "Logging", NULL, szValue, 20, szIniFile);
|
|
||||||
Conf1->Log = strtoul(szValue, NULL, 10);
|
|
||||||
return ;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,16 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup Label="UserMacros">
|
||||||
|
<ProjectRootDir>$(ProjectDir)..</ProjectRootDir>
|
||||||
|
<SvnRootDir>$(ProjectRootDir)\..\..</SvnRootDir>
|
||||||
|
<SvnCommonDir>$(SvnRootDir)\common</SvnCommonDir>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<_ProjectFileVersion>10.0.30128.1</_ProjectFileVersion>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<BuildMacro Include="SvnRootDir">
|
||||||
|
<Value>$(SvnRootDir)</Value>
|
||||||
|
</BuildMacro>
|
||||||
|
</ItemGroup>
|
||||||
|
</Project>
|
|
@ -1,19 +0,0 @@
|
||||||
Microsoft Visual Studio Solution File, Format Version 11.00
|
|
||||||
# Visual Studio 2010
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "USBqemu", "USBqemu.vcxproj", "{BF7B81A5-E348-4F7C-A69F-F74C8EEEAD70}"
|
|
||||||
EndProject
|
|
||||||
Global
|
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
|
||||||
Debug|Win32 = Debug|Win32
|
|
||||||
Release|Win32 = Release|Win32
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
|
||||||
{BF7B81A5-E348-4F7C-A69F-F74C8EEEAD70}.Debug|Win32.ActiveCfg = Debug|Win32
|
|
||||||
{BF7B81A5-E348-4F7C-A69F-F74C8EEEAD70}.Debug|Win32.Build.0 = Debug|Win32
|
|
||||||
{BF7B81A5-E348-4F7C-A69F-F74C8EEEAD70}.Release|Win32.ActiveCfg = Release|Win32
|
|
||||||
{BF7B81A5-E348-4F7C-A69F-F74C8EEEAD70}.Release|Win32.Build.0 = Release|Win32
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
|
||||||
HideSolutionNode = FALSE
|
|
||||||
EndGlobalSection
|
|
||||||
EndGlobal
|
|
|
@ -5,107 +5,113 @@
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Devel|Win32">
|
||||||
|
<Configuration>Devel</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
<Configuration>Release</Configuration>
|
<Configuration>Release</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<PropertyGroup Label="Globals">
|
<PropertyGroup Label="Globals">
|
||||||
<ProjectGuid>{BF7B81A5-E348-4F7C-A69F-F74C8EEEAD70}</ProjectGuid>
|
<ProjectName>USBqemu</ProjectName>
|
||||||
|
<ProjectGuid>{E613DA9F-41B4-4613-9911-E418EF5533BC}</ProjectGuid>
|
||||||
<RootNamespace>USBlinuz</RootNamespace>
|
<RootNamespace>USBlinuz</RootNamespace>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
|
<WholeProgramOptimization>false</WholeProgramOptimization>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
<WholeProgramOptimization>false</WholeProgramOptimization>
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'" Label="PropertySheets">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
<Import Project="..\..\..\common\vsprops\plugin_svnroot.props" />
|
||||||
|
<Import Project="ProjectRootDir.props" />
|
||||||
|
<Import Project="..\..\..\common\vsprops\BaseProperties.props" />
|
||||||
|
<Import Project="..\..\..\common\vsprops\3rdpartyDeps.props" />
|
||||||
|
<Import Project="..\..\..\common\vsprops\CodeGen_Devel.props" />
|
||||||
|
<Import Project="..\..\..\common\vsprops\IncrementalLinking.props" />
|
||||||
|
</ImportGroup>
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
|
<Import Project="..\..\..\common\vsprops\plugin_svnroot.props" />
|
||||||
|
<Import Project="ProjectRootDir.props" />
|
||||||
|
<Import Project="..\..\..\common\vsprops\BaseProperties.props" />
|
||||||
|
<Import Project="..\..\..\common\vsprops\3rdpartyDeps.props" />
|
||||||
|
<Import Project="..\..\..\common\vsprops\CodeGen_Release.props" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
|
<Import Project="..\..\..\common\vsprops\plugin_svnroot.props" />
|
||||||
|
<Import Project="ProjectRootDir.props" />
|
||||||
|
<Import Project="..\..\..\common\vsprops\BaseProperties.props" />
|
||||||
|
<Import Project="..\..\..\common\vsprops\3rdpartyDeps.props" />
|
||||||
|
<Import Project="..\..\..\common\vsprops\CodeGen_Debug.props" />
|
||||||
|
<Import Project="..\..\..\common\vsprops\IncrementalLinking.props" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<PropertyGroup Label="UserMacros" />
|
<PropertyGroup Label="UserMacros" />
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
|
<_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
|
<TargetName Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">$(ProjectName)-dev</TargetName>
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\..\bin\plugins\</OutDir>
|
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</LinkIncremental>
|
|
||||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
|
||||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
|
||||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
|
||||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
|
||||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
|
||||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
|
||||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)-dbg</TargetName>
|
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\..\bin\plugins\</OutDir>
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<CustomBuildStep>
|
||||||
|
<Command>
|
||||||
|
</Command>
|
||||||
|
</CustomBuildStep>
|
||||||
|
<ClCompile />
|
||||||
|
<Link>
|
||||||
|
<ModuleDefinitionFile>USBqemu.def</ModuleDefinitionFile>
|
||||||
|
<SubSystem>Windows</SubSystem>
|
||||||
|
<DataExecutionPrevention>
|
||||||
|
</DataExecutionPrevention>
|
||||||
|
<TargetMachine>MachineX86</TargetMachine>
|
||||||
|
</Link>
|
||||||
|
<ClCompile />
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<Optimization>Disabled</Optimization>
|
<PrecompiledHeader>
|
||||||
<WholeProgramOptimization>false</WholeProgramOptimization>
|
</PrecompiledHeader>
|
||||||
<AdditionalIncludeDirectories>..\;h:\pcsx2-trunk\common\include\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<PreprocessorDefinitions>__WIN32__;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<MinimalRebuild>true</MinimalRebuild>
|
|
||||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
|
||||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
|
||||||
<WarningLevel>Level4</WarningLevel>
|
|
||||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<ModuleDefinitionFile>USBqemu.def</ModuleDefinitionFile>
|
<ModuleDefinitionFile>USBqemu.def</ModuleDefinitionFile>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Windows</SubSystem>
|
||||||
<DataExecutionPrevention>
|
<DataExecutionPrevention>
|
||||||
</DataExecutionPrevention>
|
</DataExecutionPrevention>
|
||||||
<TargetMachine>MachineX86</TargetMachine>
|
<TargetMachine>MachineX86</TargetMachine>
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<Optimization>MaxSpeed</Optimization>
|
|
||||||
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
|
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
|
||||||
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
|
||||||
<EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
|
|
||||||
<WholeProgramOptimization>false</WholeProgramOptimization>
|
|
||||||
<AdditionalIncludeDirectories>..\;h:\pcsx2-trunk\common\include\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<PreprocessorDefinitions>__WIN32__;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<MinimalRebuild>false</MinimalRebuild>
|
|
||||||
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
|
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
|
||||||
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
|
|
||||||
<PrecompiledHeader>
|
<PrecompiledHeader>
|
||||||
</PrecompiledHeader>
|
</PrecompiledHeader>
|
||||||
<WarningLevel>Level4</WarningLevel>
|
|
||||||
<DebugInformationFormat>
|
|
||||||
</DebugInformationFormat>
|
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<ModuleDefinitionFile>USBqemu.def</ModuleDefinitionFile>
|
<ModuleDefinitionFile>USBqemu.def</ModuleDefinitionFile>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Windows</SubSystem>
|
||||||
<RandomizedBaseAddress>false</RandomizedBaseAddress>
|
|
||||||
<DataExecutionPrevention>
|
<DataExecutionPrevention>
|
||||||
</DataExecutionPrevention>
|
</DataExecutionPrevention>
|
||||||
<ImportLibrary>$(OutDir)USBlinuz.lib</ImportLibrary>
|
|
||||||
<TargetMachine>MachineX86</TargetMachine>
|
<TargetMachine>MachineX86</TargetMachine>
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<ClCompile Include="CfgHelpers.cpp" />
|
||||||
<ClCompile Include="Config.cpp" />
|
<ClCompile Include="Config.cpp" />
|
||||||
<ClCompile Include="..\USB.cpp" />
|
<ClCompile Include="..\USB.cpp" />
|
||||||
<ClCompile Include="Win32.cpp" />
|
<ClCompile Include="Win32.cpp" />
|
||||||
|
@ -113,16 +119,19 @@
|
||||||
<ClCompile Include="..\usb-eyetoy\usb-eyetoy.cpp">
|
<ClCompile Include="..\usb-eyetoy\usb-eyetoy.cpp">
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">true</ExcludedFromBuild>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\qemu-usb\usb-hid.cpp">
|
<ClCompile Include="..\qemu-usb\usb-hid.cpp">
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">true</ExcludedFromBuild>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\qemu-usb\usb-hub.cpp" />
|
<ClCompile Include="..\qemu-usb\usb-hub.cpp" />
|
||||||
<ClCompile Include="..\qemu-usb\usb-kbd.cpp" />
|
<ClCompile Include="..\qemu-usb\usb-kbd.cpp" />
|
||||||
<ClCompile Include="..\usb-mic\usb-mic-dummy.cpp">
|
<ClCompile Include="..\usb-mic\usb-mic-dummy.cpp">
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">true</ExcludedFromBuild>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\qemu-usb\usb-ohci.cpp" />
|
<ClCompile Include="..\qemu-usb\usb-ohci.cpp" />
|
||||||
<ClCompile Include="..\qemu-usb\vl.cpp" />
|
<ClCompile Include="..\qemu-usb\vl.cpp" />
|
||||||
|
@ -132,6 +141,8 @@
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="..\qemu-usb\qemu-queue.h" />
|
<ClInclude Include="..\qemu-usb\qemu-queue.h" />
|
||||||
|
<ClInclude Include="..\qemu-usb\USBinternal.h" />
|
||||||
|
<ClInclude Include="CfgHelpers.h" />
|
||||||
<ClInclude Include="resource.h" />
|
<ClInclude Include="resource.h" />
|
||||||
<ClInclude Include="..\USB.h" />
|
<ClInclude Include="..\USB.h" />
|
||||||
<ClInclude Include="..\qemu-usb\usb-ohci.h" />
|
<ClInclude Include="..\qemu-usb\usb-ohci.h" />
|
||||||
|
|
|
@ -54,6 +54,9 @@
|
||||||
<ClCompile Include="..\qemu-usb\vl.cpp">
|
<ClCompile Include="..\qemu-usb\vl.cpp">
|
||||||
<Filter>Source Files\qemu-usb</Filter>
|
<Filter>Source Files\qemu-usb</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="CfgHelpers.cpp">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="USBqemu.def">
|
<None Include="USBqemu.def">
|
||||||
|
@ -79,6 +82,12 @@
|
||||||
<ClInclude Include="..\qemu-usb\qemu-queue.h">
|
<ClInclude Include="..\qemu-usb\qemu-queue.h">
|
||||||
<Filter>Header Files\qemu-usb</Filter>
|
<Filter>Header Files\qemu-usb</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="CfgHelpers.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\qemu-usb\USBinternal.h">
|
||||||
|
<Filter>Header Files\qemu-usb</Filter>
|
||||||
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ResourceCompile Include="USBqemu.rc">
|
<ResourceCompile Include="USBqemu.rc">
|
||||||
|
|
|
@ -2,19 +2,19 @@
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#include <windowsx.h>
|
#include <windowsx.h>
|
||||||
|
|
||||||
#include "USB.h"
|
#include "../USB.h"
|
||||||
#include "resource.h"
|
#include "resource.h"
|
||||||
|
|
||||||
HINSTANCE hInst;
|
HINSTANCE hInst;
|
||||||
|
|
||||||
void SysMessage(char *fmt, ...) {
|
void SysMessage(TCHAR *fmt, ...) {
|
||||||
va_list list;
|
va_list list;
|
||||||
char tmp[512];
|
TCHAR tmp[512];
|
||||||
|
|
||||||
va_start(list,fmt);
|
va_start(list,fmt);
|
||||||
vsprintf(tmp,fmt,list);
|
_vswprintf(tmp,fmt,list);
|
||||||
va_end(list);
|
va_end(list);
|
||||||
MessageBox(0, tmp, "USBlinuz Msg", 0);
|
MessageBox(0, tmp, L"USBqemu Msg", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL CALLBACK ConfigureDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam) {
|
BOOL CALLBACK ConfigureDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam) {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
//{{NO_DEPENDENCIES}}
|
//{{NO_DEPENDENCIES}}
|
||||||
// Microsoft Visual C++ generated include file.
|
// Microsoft Visual C++ generated include file.
|
||||||
// Used by USBlinuz.rc
|
// Used by USBqemu.rc
|
||||||
//
|
//
|
||||||
#define IDD_CONFDLG 101
|
#define IDD_CONFDLG 101
|
||||||
#define IDD_CONFIG 101
|
#define IDD_CONFIG 101
|
||||||
|
|
|
@ -0,0 +1,300 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "../USB.h"
|
||||||
|
#include "vl.h"
|
||||||
|
|
||||||
|
#ifdef PCSX2_DEVBUILD
|
||||||
|
# define DEBUG_OHCI
|
||||||
|
#endif
|
||||||
|
/* Dump packet contents. */
|
||||||
|
//#define DEBUG_PACKET
|
||||||
|
/* This causes frames to occur 1000x slower */
|
||||||
|
//#define OHCI_TIME_WARP 1
|
||||||
|
|
||||||
|
/* Number of Downstream Ports on the root hub. */
|
||||||
|
|
||||||
|
#define OHCI_MAX_PORTS 2
|
||||||
|
|
||||||
|
extern int64_t usb_frame_time;
|
||||||
|
extern int64_t usb_bit_time;
|
||||||
|
|
||||||
|
typedef struct OHCIPort {
|
||||||
|
USBPort port;
|
||||||
|
uint32_t ctrl;
|
||||||
|
} OHCIPort;
|
||||||
|
|
||||||
|
typedef uint32_t target_phys_addr_t;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
//USBBus bus;
|
||||||
|
//qemu_irq irq;
|
||||||
|
enum ohci_type type;
|
||||||
|
int mem;
|
||||||
|
int num_ports;
|
||||||
|
const char *name;
|
||||||
|
|
||||||
|
//QEMUTimer *eof_timer;
|
||||||
|
int64_t eof_timer;
|
||||||
|
int64_t sof_time;
|
||||||
|
|
||||||
|
/* OHCI state */
|
||||||
|
/* Control partition */
|
||||||
|
uint32_t ctl, status;
|
||||||
|
uint32_t intr_status;
|
||||||
|
uint32_t intr;
|
||||||
|
|
||||||
|
/* memory pointer partition */
|
||||||
|
uint32_t hcca;
|
||||||
|
uint32_t ctrl_head, ctrl_cur;
|
||||||
|
uint32_t bulk_head, bulk_cur;
|
||||||
|
uint32_t per_cur;
|
||||||
|
uint32_t done;
|
||||||
|
int done_count;
|
||||||
|
|
||||||
|
/* Frame counter partition */
|
||||||
|
uint32_t fsmps:15;
|
||||||
|
uint32_t fit:1;
|
||||||
|
uint32_t fi:14;
|
||||||
|
uint32_t frt:1;
|
||||||
|
uint16_t frame_number;
|
||||||
|
uint16_t padding;
|
||||||
|
uint32_t pstart;
|
||||||
|
uint32_t lst;
|
||||||
|
|
||||||
|
/* Root Hub partition */
|
||||||
|
uint32_t rhdesc_a, rhdesc_b;
|
||||||
|
uint32_t rhstatus;
|
||||||
|
OHCIPort rhport[OHCI_MAX_PORTS];
|
||||||
|
|
||||||
|
/* PXA27x Non-OHCI events */
|
||||||
|
uint32_t hstatus;
|
||||||
|
uint32_t hmask;
|
||||||
|
uint32_t hreset;
|
||||||
|
uint32_t htest;
|
||||||
|
|
||||||
|
/* SM501 local memory offset */
|
||||||
|
target_phys_addr_t localmem_base;
|
||||||
|
|
||||||
|
/* Active packets. */
|
||||||
|
uint32_t old_ctl;
|
||||||
|
USBPacket usb_packet;
|
||||||
|
uint8_t usb_buf[8192];
|
||||||
|
uint32_t async_td;
|
||||||
|
int async_complete;
|
||||||
|
|
||||||
|
} OHCIState;
|
||||||
|
|
||||||
|
/* Host Controller Communications Area */
|
||||||
|
struct ohci_hcca {
|
||||||
|
uint32_t intr[32];
|
||||||
|
uint16_t frame, pad;
|
||||||
|
uint32_t done;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
extern int64_t usb_frame_time;
|
||||||
|
extern int64_t usb_bit_time;
|
||||||
|
|
||||||
|
enum ohci_type {
|
||||||
|
OHCI_TYPE_PCI,
|
||||||
|
OHCI_TYPE_PXA,
|
||||||
|
OHCI_TYPE_SM501,
|
||||||
|
};
|
||||||
|
|
||||||
|
int64_t get_ticks_per_sec();
|
||||||
|
|
||||||
|
static void ohci_bus_stop(OHCIState *ohci);
|
||||||
|
|
||||||
|
/* Bitfields for the first word of an Endpoint Desciptor. */
|
||||||
|
#define OHCI_ED_FA_SHIFT 0
|
||||||
|
#define OHCI_ED_FA_MASK (0x7f<<OHCI_ED_FA_SHIFT)
|
||||||
|
#define OHCI_ED_EN_SHIFT 7
|
||||||
|
#define OHCI_ED_EN_MASK (0xf<<OHCI_ED_EN_SHIFT)
|
||||||
|
#define OHCI_ED_D_SHIFT 11
|
||||||
|
#define OHCI_ED_D_MASK (3<<OHCI_ED_D_SHIFT)
|
||||||
|
#define OHCI_ED_S (1<<13)
|
||||||
|
#define OHCI_ED_K (1<<14)
|
||||||
|
#define OHCI_ED_F (1<<15)
|
||||||
|
#define OHCI_ED_MPS_SHIFT 16
|
||||||
|
#define OHCI_ED_MPS_MASK (0x7ff<<OHCI_ED_MPS_SHIFT)
|
||||||
|
|
||||||
|
/* Flags in the head field of an Endpoint Desciptor. */
|
||||||
|
#define OHCI_ED_H 1
|
||||||
|
#define OHCI_ED_C 2
|
||||||
|
|
||||||
|
/* Bitfields for the first word of a Transfer Desciptor. */
|
||||||
|
#define OHCI_TD_R (1<<18)
|
||||||
|
#define OHCI_TD_DP_SHIFT 19
|
||||||
|
#define OHCI_TD_DP_MASK (3<<OHCI_TD_DP_SHIFT)
|
||||||
|
#define OHCI_TD_DI_SHIFT 21
|
||||||
|
#define OHCI_TD_DI_MASK (7<<OHCI_TD_DI_SHIFT)
|
||||||
|
#define OHCI_TD_T0 (1<<24)
|
||||||
|
#define OHCI_TD_T1 (1<<24)
|
||||||
|
#define OHCI_TD_EC_SHIFT 26
|
||||||
|
#define OHCI_TD_EC_MASK (3<<OHCI_TD_EC_SHIFT)
|
||||||
|
#define OHCI_TD_CC_SHIFT 28
|
||||||
|
#define OHCI_TD_CC_MASK (0xf<<OHCI_TD_CC_SHIFT)
|
||||||
|
|
||||||
|
/* Bitfields for the first word of an Isochronous Transfer Desciptor. */
|
||||||
|
/* CC & DI - same as in the General Transfer Desciptor */
|
||||||
|
#define OHCI_TD_SF_SHIFT 0
|
||||||
|
#define OHCI_TD_SF_MASK (0xffff<<OHCI_TD_SF_SHIFT)
|
||||||
|
#define OHCI_TD_FC_SHIFT 24
|
||||||
|
#define OHCI_TD_FC_MASK (7<<OHCI_TD_FC_SHIFT)
|
||||||
|
|
||||||
|
/* Isochronous Transfer Desciptor - Offset / PacketStatusWord */
|
||||||
|
#define OHCI_TD_PSW_CC_SHIFT 12
|
||||||
|
#define OHCI_TD_PSW_CC_MASK (0xf<<OHCI_TD_PSW_CC_SHIFT)
|
||||||
|
#define OHCI_TD_PSW_SIZE_SHIFT 0
|
||||||
|
#define OHCI_TD_PSW_SIZE_MASK (0xfff<<OHCI_TD_PSW_SIZE_SHIFT)
|
||||||
|
|
||||||
|
#define OHCI_PAGE_MASK 0xfffff000
|
||||||
|
#define OHCI_OFFSET_MASK 0xfff
|
||||||
|
|
||||||
|
#define OHCI_DPTR_MASK 0xfffffff0
|
||||||
|
|
||||||
|
#define OHCI_BM(val, field) \
|
||||||
|
(((val) & OHCI_##field##_MASK) >> OHCI_##field##_SHIFT)
|
||||||
|
|
||||||
|
#define OHCI_SET_BM(val, field, newval) do { \
|
||||||
|
val &= ~OHCI_##field##_MASK; \
|
||||||
|
val |= ((newval) << OHCI_##field##_SHIFT) & OHCI_##field##_MASK; \
|
||||||
|
} while(0)
|
||||||
|
|
||||||
|
/* endpoint descriptor */
|
||||||
|
struct ohci_ed {
|
||||||
|
uint32_t flags;
|
||||||
|
uint32_t tail;
|
||||||
|
uint32_t head;
|
||||||
|
uint32_t next;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* General transfer descriptor */
|
||||||
|
struct ohci_td {
|
||||||
|
uint32_t flags;
|
||||||
|
uint32_t cbp;
|
||||||
|
uint32_t next;
|
||||||
|
uint32_t be;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Isochronous transfer descriptor */
|
||||||
|
struct ohci_iso_td {
|
||||||
|
uint32_t flags;
|
||||||
|
uint32_t bp;
|
||||||
|
uint32_t next;
|
||||||
|
uint32_t be;
|
||||||
|
uint16_t offset[8];
|
||||||
|
};
|
||||||
|
|
||||||
|
#define USB_HZ 12000000
|
||||||
|
|
||||||
|
/* OHCI Local stuff */
|
||||||
|
#define OHCI_CTL_CBSR ((1<<0)|(1<<1))
|
||||||
|
#define OHCI_CTL_PLE (1<<2)
|
||||||
|
#define OHCI_CTL_IE (1<<3)
|
||||||
|
#define OHCI_CTL_CLE (1<<4)
|
||||||
|
#define OHCI_CTL_BLE (1<<5)
|
||||||
|
#define OHCI_CTL_HCFS ((1<<6)|(1<<7))
|
||||||
|
#define OHCI_USB_RESET 0x00
|
||||||
|
#define OHCI_USB_RESUME 0x40
|
||||||
|
#define OHCI_USB_OPERATIONAL 0x80
|
||||||
|
#define OHCI_USB_SUSPEND 0xc0
|
||||||
|
#define OHCI_CTL_IR (1<<8)
|
||||||
|
#define OHCI_CTL_RWC (1<<9)
|
||||||
|
#define OHCI_CTL_RWE (1<<10)
|
||||||
|
|
||||||
|
#define OHCI_STATUS_HCR (1<<0)
|
||||||
|
#define OHCI_STATUS_CLF (1<<1)
|
||||||
|
#define OHCI_STATUS_BLF (1<<2)
|
||||||
|
#define OHCI_STATUS_OCR (1<<3)
|
||||||
|
#define OHCI_STATUS_SOC ((1<<6)|(1<<7))
|
||||||
|
|
||||||
|
#define OHCI_INTR_SO (1<<0) /* Scheduling overrun */
|
||||||
|
#define OHCI_INTR_WD (1<<1) /* HcDoneHead writeback */
|
||||||
|
#define OHCI_INTR_SF (1<<2) /* Start of frame */
|
||||||
|
#define OHCI_INTR_RD (1<<3) /* Resume detect */
|
||||||
|
#define OHCI_INTR_UE (1<<4) /* Unrecoverable error */
|
||||||
|
#define OHCI_INTR_FNO (1<<5) /* Frame number overflow */
|
||||||
|
#define OHCI_INTR_RHSC (1<<6) /* Root hub status change */
|
||||||
|
#define OHCI_INTR_OC (1<<30) /* Ownership change */
|
||||||
|
#define OHCI_INTR_MIE (1<<31) /* Master Interrupt Enable */
|
||||||
|
|
||||||
|
#define OHCI_HCCA_SIZE 0x100
|
||||||
|
#define OHCI_HCCA_MASK 0xffffff00
|
||||||
|
|
||||||
|
#define OHCI_EDPTR_MASK 0xfffffff0
|
||||||
|
|
||||||
|
#define OHCI_FMI_FI 0x00003fff
|
||||||
|
#define OHCI_FMI_FSMPS 0xffff0000
|
||||||
|
#define OHCI_FMI_FIT 0x80000000
|
||||||
|
|
||||||
|
#define OHCI_FR_RT (1<<31)
|
||||||
|
|
||||||
|
#define OHCI_LS_THRESH 0x628
|
||||||
|
|
||||||
|
#define OHCI_RHA_RW_MASK 0x00000000 /* Mask of supported features. */
|
||||||
|
#define OHCI_RHA_PSM (1<<8)
|
||||||
|
#define OHCI_RHA_NPS (1<<9)
|
||||||
|
#define OHCI_RHA_DT (1<<10)
|
||||||
|
#define OHCI_RHA_OCPM (1<<11)
|
||||||
|
#define OHCI_RHA_NOCP (1<<12)
|
||||||
|
#define OHCI_RHA_POTPGT_MASK 0xff000000
|
||||||
|
|
||||||
|
#define OHCI_RHS_LPS (1<<0)
|
||||||
|
#define OHCI_RHS_OCI (1<<1)
|
||||||
|
#define OHCI_RHS_DRWE (1<<15)
|
||||||
|
#define OHCI_RHS_LPSC (1<<16)
|
||||||
|
#define OHCI_RHS_OCIC (1<<17)
|
||||||
|
#define OHCI_RHS_CRWE (1<<31)
|
||||||
|
|
||||||
|
#define OHCI_PORT_CCS (1<<0)
|
||||||
|
#define OHCI_PORT_PES (1<<1)
|
||||||
|
#define OHCI_PORT_PSS (1<<2)
|
||||||
|
#define OHCI_PORT_POCI (1<<3)
|
||||||
|
#define OHCI_PORT_PRS (1<<4)
|
||||||
|
#define OHCI_PORT_PPS (1<<8)
|
||||||
|
#define OHCI_PORT_LSDA (1<<9)
|
||||||
|
#define OHCI_PORT_CSC (1<<16)
|
||||||
|
#define OHCI_PORT_PESC (1<<17)
|
||||||
|
#define OHCI_PORT_PSSC (1<<18)
|
||||||
|
#define OHCI_PORT_OCIC (1<<19)
|
||||||
|
#define OHCI_PORT_PRSC (1<<20)
|
||||||
|
#define OHCI_PORT_WTC (OHCI_PORT_CSC|OHCI_PORT_PESC|OHCI_PORT_PSSC \
|
||||||
|
|OHCI_PORT_OCIC|OHCI_PORT_PRSC)
|
||||||
|
|
||||||
|
#define OHCI_TD_DIR_SETUP 0x0
|
||||||
|
#define OHCI_TD_DIR_OUT 0x1
|
||||||
|
#define OHCI_TD_DIR_IN 0x2
|
||||||
|
#define OHCI_TD_DIR_RESERVED 0x3
|
||||||
|
|
||||||
|
#define OHCI_CC_NOERROR 0x0
|
||||||
|
#define OHCI_CC_CRC 0x1
|
||||||
|
#define OHCI_CC_BITSTUFFING 0x2
|
||||||
|
#define OHCI_CC_DATATOGGLEMISMATCH 0x3
|
||||||
|
#define OHCI_CC_STALL 0x4
|
||||||
|
#define OHCI_CC_DEVICENOTRESPONDING 0x5
|
||||||
|
#define OHCI_CC_PIDCHECKFAILURE 0x6
|
||||||
|
#define OHCI_CC_UNDEXPETEDPID 0x7
|
||||||
|
#define OHCI_CC_DATAOVERRUN 0x8
|
||||||
|
#define OHCI_CC_DATAUNDERRUN 0x9
|
||||||
|
#define OHCI_CC_BUFFEROVERRUN 0xc
|
||||||
|
#define OHCI_CC_BUFFERUNDERRUN 0xd
|
||||||
|
|
||||||
|
#define OHCI_HRESET_FSBIR (1 << 0)
|
||||||
|
|
||||||
|
|
||||||
|
int64_t get_clock();
|
||||||
|
|
||||||
|
OHCIState *ohci_create(uint32_t base, int ports);
|
||||||
|
|
||||||
|
uint32_t ohci_mem_read(void *ptr, target_phys_addr_t addr);
|
||||||
|
void ohci_mem_write(void *ptr, target_phys_addr_t addr, uint32_t val);
|
||||||
|
void ohci_frame_boundary(void *opaque);
|
||||||
|
|
||||||
|
int ohci_bus_start(OHCIState *ohci);
|
||||||
|
void ohci_bus_stop(OHCIState *ohci);
|
||||||
|
|
||||||
|
USBDevice *usb_hub_init(int nb_ports);
|
||||||
|
USBDevice *usb_msd_init(const char *filename);
|
||||||
|
USBDevice *eyetoy_init(void);
|
||||||
|
USBDevice *usb_mouse_init(void);
|
|
@ -23,7 +23,7 @@
|
||||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
* THE SOFTWARE.
|
* THE SOFTWARE.
|
||||||
*/
|
*/
|
||||||
#include "vl.h"
|
#include "USBinternal.h"
|
||||||
//#include "usb.h"
|
//#include "usb.h"
|
||||||
|
|
||||||
void usb_attach(USBPort *port, USBDevice *dev)
|
void usb_attach(USBPort *port, USBDevice *dev)
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
* THE SOFTWARE.
|
* THE SOFTWARE.
|
||||||
*/
|
*/
|
||||||
#include "vl.h"
|
#include "USBinternal.h"
|
||||||
|
|
||||||
//#define DEBUG
|
//#define DEBUG
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
* THE SOFTWARE.
|
* THE SOFTWARE.
|
||||||
*/
|
*/
|
||||||
#include "vl.h"
|
#include "USBinternal.h"
|
||||||
|
|
||||||
/* HID interface requests */
|
/* HID interface requests */
|
||||||
#define GET_REPORT 0xa101
|
#define GET_REPORT 0xa101
|
||||||
|
@ -40,7 +40,6 @@ typedef struct USBKeyboardState {
|
||||||
|
|
||||||
USBDeviceInfo devinfo;
|
USBDeviceInfo devinfo;
|
||||||
|
|
||||||
extern HWND gsWnd;
|
|
||||||
|
|
||||||
#define VK_BASED
|
#define VK_BASED
|
||||||
|
|
||||||
|
@ -624,7 +623,7 @@ static int usb_keyboard_poll(USBKeyboardState *s, uint8_t *buf, int len)
|
||||||
s->keyboard_grabbed = 1;
|
s->keyboard_grabbed = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(gsWnd != GetForegroundWindow())
|
if(gsWindowHandle != GetForegroundWindow())
|
||||||
{
|
{
|
||||||
for(int i=0;i<256;i++)
|
for(int i=0;i<256;i++)
|
||||||
{
|
{
|
||||||
|
|
|
@ -28,8 +28,7 @@
|
||||||
|
|
||||||
//typedef CPUReadMemoryFunc
|
//typedef CPUReadMemoryFunc
|
||||||
|
|
||||||
#include "vl.h"
|
#include "USBinternal.h"
|
||||||
#include "../USB.h"
|
|
||||||
|
|
||||||
s64 last_cycle = 0;
|
s64 last_cycle = 0;
|
||||||
#define MIN_IRQ_INTERVAL 64 /* hack */
|
#define MIN_IRQ_INTERVAL 64 /* hack */
|
||||||
|
|
|
@ -58,7 +58,7 @@ typedef unsigned __int64 uint64_t;
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#define fsync _commit
|
#define fsync _commit
|
||||||
#define lseek _lseeki64
|
//#define lseek _lseeki64
|
||||||
//#define ENOTSUP 4096
|
//#define ENOTSUP 4096
|
||||||
extern int qemu_ftruncate64(int, int64_t);
|
extern int qemu_ftruncate64(int, int64_t);
|
||||||
#define ftruncate qemu_ftruncate64
|
#define ftruncate qemu_ftruncate64
|
||||||
|
|
Loading…
Reference in New Issue