mirror of
https://github.com/reactos/reactos.git
synced 2025-02-22 16:36:33 +00:00
Initial revision
svn path=/trunk/; revision=19
This commit is contained in:
parent
b4be455beb
commit
bbddb2c838
11 changed files with 4293 additions and 0 deletions
3
reactos/include/ddk/dbgfuncs.h
Normal file
3
reactos/include/ddk/dbgfuncs.h
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
|
||||||
|
VOID DbgBreakPoint(VOID);
|
||||||
|
ULONG DbgPrint(PCH Format,...);
|
16
reactos/include/devices.h
Normal file
16
reactos/include/devices.h
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
LPSTR LeftVolumeName;
|
||||||
|
LPSTR RightVolumeName;
|
||||||
|
ULONG DefaultVolume;
|
||||||
|
ULONG Type;
|
||||||
|
ULONG DeviceType;
|
||||||
|
char Key[4];
|
||||||
|
LPSTR PrototypeName;
|
||||||
|
PVOID DeferredRoutine;
|
||||||
|
PVOID ExclusionRoutine;
|
||||||
|
PVOID DispatchRoutine;
|
||||||
|
PVOID DevCapsRoutine;
|
||||||
|
PVOID HwSetVolume;
|
||||||
|
ULONG IoMethod;
|
||||||
|
}SOUND_DEVICE_INIT;
|
491
reactos/include/in.h
Normal file
491
reactos/include/in.h
Normal file
|
@ -0,0 +1,491 @@
|
||||||
|
unsigned int wavelength=3891;
|
||||||
|
|
||||||
|
unsigned char wave[]={
|
||||||
|
0x52,0x49,0x46,0x46,0x2b,0xf,0x0,0x0,
|
||||||
|
0x57,0x41,0x56,0x45,0x66,0x6d,0x74,0x20,
|
||||||
|
0x10,0x0,0x0,0x0,0x1,0x0,0x1,0x0,
|
||||||
|
0x22,0x56,0x0,0x0,0x22,0x56,0x0,0x0,
|
||||||
|
0x1,0x0,0x8,0x0,0x64,0x61,0x74,0x61,
|
||||||
|
0x7,0xf,0x0,0x0,0x80,0xce,0xb2,0x53,
|
||||||
|
0x2e,0x75,0xca,0xbb,0x5d,0x2c,0x6a,0xc4,
|
||||||
|
0xc2,0x68,0x2c,0x5f,0xbd,0xc8,0x74,0x2e,
|
||||||
|
0x51,0xad,0xd0,0x8a,0x36,0x3f,0x98,0xd2,
|
||||||
|
0xa2,0x46,0x33,0x81,0xcd,0xb5,0x58,0x2d,
|
||||||
|
0x67,0xbe,0xc8,0x78,0x30,0x49,0xa3,0xd2,
|
||||||
|
0x9b,0x43,0x34,0x80,0xcc,0xb9,0x60,0x2c,
|
||||||
|
0x5e,0xb6,0xce,0x89,0x39,0x3b,0x8b,0xce,
|
||||||
|
0xb4,0x5c,0x2d,0x5e,0xb6,0xce,0x89,0x39,
|
||||||
|
0x3a,0x8b,0xce,0xb7,0x62,0x2d,0x54,0xaa,
|
||||||
|
0xd1,0x9b,0x46,0x31,0x74,0xc2,0xc7,0x7b,
|
||||||
|
0x34,0x41,0x94,0xcf,0xb3,0x61,0x2e,0x53,
|
||||||
|
0xa6,0xd1,0xa3,0x4f,0x2e,0x65,0xb7,0xce,
|
||||||
|
0x90,0x41,0x33,0x78,0xc3,0xc8,0x83,0x3a,
|
||||||
|
0x38,0x80,0xc6,0xc4,0x7d,0x36,0x3c,0x86,
|
||||||
|
0xc9,0xc0,0x76,0x34,0x40,0x8d,0xcb,0xbe,
|
||||||
|
0x74,0x34,0x3e,0x87,0xc9,0xc1,0x78,0x36,
|
||||||
|
0x3b,0x83,0xc7,0xc4,0x7e,0x39,0x39,0x7d,
|
||||||
|
0xc2,0xc9,0x8a,0x42,0x32,0x6a,0xb6,0xce,
|
||||||
|
0x9c,0x4f,0x2e,0x5b,0xa8,0xd0,0xab,0x5d,
|
||||||
|
0x2f,0x49,0x94,0xcb,0xbe,0x78,0x39,0x38,
|
||||||
|
0x77,0xbd,0xcc,0x95,0x4a,0x2f,0x5c,0xa7,
|
||||||
|
0xcf,0xb0,0x68,0x33,0x40,0x83,0xc3,0xc9,
|
||||||
|
0x8e,0x47,0x30,0x5c,0xa6,0xcf,0xb2,0x6b,
|
||||||
|
0x34,0x3e,0x7e,0xbf,0xcc,0x99,0x51,0x2f,
|
||||||
|
0x4f,0x96,0xcb,0xc1,0x81,0x40,0x32,0x64,
|
||||||
|
0xab,0xcf,0xb0,0x6c,0x36,0x39,0x74,0xb7,
|
||||||
|
0xce,0xa7,0x61,0x32,0x40,0x80,0xbe,0xcc,
|
||||||
|
0x9d,0x56,0x30,0x48,0x88,0xc3,0xca,0x99,
|
||||||
|
0x54,0x30,0x47,0x88,0xc2,0xca,0x98,0x55,
|
||||||
|
0x30,0x47,0x87,0xc1,0xca,0x9a,0x58,0x31,
|
||||||
|
0x42,0x80,0xbb,0xcd,0xa5,0x63,0x34,0x3b,
|
||||||
|
0x73,0xb3,0xce,0xb1,0x6f,0x39,0x36,0x66,
|
||||||
|
0xa6,0xcc,0xbe,0x84,0x47,0x30,0x50,0x8f,
|
||||||
|
0xc4,0xc9,0x9b,0x5c,0x33,0x3f,0x77,0xb4,
|
||||||
|
0xce,0xb2,0x77,0x40,0x32,0x57,0x96,0xc6,
|
||||||
|
0xc7,0x99,0x5a,0x33,0x3e,0x73,0xb0,0xcd,
|
||||||
|
0xb7,0x7e,0x45,0x31,0x4e,0x88,0xbe,0xcc,
|
||||||
|
0xa9,0x6c,0x3b,0x34,0x5d,0x99,0xc7,0xc7,
|
||||||
|
0x99,0x5d,0x35,0x3a,0x69,0xa3,0xca,0xc3,
|
||||||
|
0x93,0x58,0x33,0x3c,0x6e,0xa8,0xcb,0xc0,
|
||||||
|
0x8f,0x54,0x33,0x3f,0x6f,0xa8,0xcb,0xc1,
|
||||||
|
0x91,0x58,0x34,0x3b,0x69,0xa3,0xc9,0xc5,
|
||||||
|
0x98,0x5f,0x37,0x38,0x61,0x99,0xc4,0xc9,
|
||||||
|
0xa5,0x6d,0x3e,0x33,0x52,0x88,0xba,0xcc,
|
||||||
|
0xb3,0x80,0x4b,0x32,0x44,0x76,0xac,0xca,
|
||||||
|
0xc2,0x96,0x5f,0x38,0x36,0x5b,0x91,0xbf,
|
||||||
|
0xcb,0xaf,0x7b,0x49,0x32,0x44,0x75,0xa9,
|
||||||
|
0xc9,0xc4,0x9d,0x68,0x3d,0x34,0x50,0x83,
|
||||||
|
0xb5,0xcb,0xbc,0x8f,0x59,0x37,0x38,0x5d,
|
||||||
|
0x91,0xbd,0xcb,0xb6,0x85,0x53,0x35,0x3a,
|
||||||
|
0x60,0x94,0xbe,0xcb,0xb3,0x83,0x51,0x34,
|
||||||
|
0x3c,0x62,0x95,0xbe,0xcb,0xb6,0x87,0x56,
|
||||||
|
0x37,0x39,0x5a,0x8c,0xb9,0xcb,0xbb,0x90,
|
||||||
|
0x5d,0x3a,0x35,0x52,0x80,0xb0,0xc9,0xc3,
|
||||||
|
0x9f,0x6e,0x44,0x33,0x43,0x6d,0x9f,0xc2,
|
||||||
|
0xc9,0xaf,0x81,0x53,0x37,0x39,0x57,0x85,
|
||||||
|
0xb2,0xc9,0xc2,0x9f,0x6e,0x45,0x34,0x41,
|
||||||
|
0x68,0x98,0xbe,0xca,0xb8,0x8e,0x61,0x3d,
|
||||||
|
0x34,0x49,0x72,0xa1,0xc2,0xc9,0xb2,0x88,
|
||||||
|
0x5a,0x3b,0x36,0x4e,0x7a,0xa6,0xc4,0xc8,
|
||||||
|
0xb0,0x85,0x59,0x3b,0x36,0x4d,0x76,0xa3,
|
||||||
|
0xc3,0xc9,0xb3,0x89,0x5d,0x3d,0x35,0x49,
|
||||||
|
0x70,0x9c,0xbe,0xc9,0xba,0x96,0x6a,0x44,
|
||||||
|
0x35,0x40,0x61,0x8d,0xb4,0xc8,0xc2,0xa4,
|
||||||
|
0x7a,0x51,0x38,0x38,0x4f,0x78,0xa2,0xc0,
|
||||||
|
0xc9,0xb8,0x93,0x68,0x45,0x35,0x3f,0x5f,
|
||||||
|
0x89,0xaf,0xc6,0xc6,0xad,0x86,0x5e,0x3f,
|
||||||
|
0x35,0x43,0x66,0x8f,0xb4,0xc7,0xc3,0xa9,
|
||||||
|
0x81,0x58,0x3d,0x36,0x46,0x67,0x8f,0xb4,
|
||||||
|
0xc7,0xc4,0xab,0x85,0x5d,0x3f,0x36,0x43,
|
||||||
|
0x63,0x8a,0xb0,0xc5,0xc6,0xb1,0x8e,0x66,
|
||||||
|
0x46,0x36,0x3c,0x56,0x7d,0xa2,0xbf,0xc8,
|
||||||
|
0xbc,0x9c,0x77,0x51,0x3a,0x37,0x48,0x69,
|
||||||
|
0x8f,0xb2,0xc5,0xc5,0xb2,0x8f,0x69,0x48,
|
||||||
|
0x37,0x3b,0x51,0x75,0x9b,0xba,0xc7,0xc1,
|
||||||
|
0xaa,0x86,0x62,0x44,0x37,0x3d,0x55,0x79,
|
||||||
|
0x9d,0xba,0xc7,0xc1,0xa8,0x85,0x61,0x44,
|
||||||
|
0x37,0x3c,0x54,0x75,0x99,0xb7,0xc6,0xc3,
|
||||||
|
0xae,0x8e,0x69,0x4a,0x39,0x3a,0x4c,0x6b,
|
||||||
|
0x8f,0xaf,0xc3,0xc6,0xb8,0x9c,0x79,0x57,
|
||||||
|
0x3f,0x37,0x41,0x59,0x7c,0x9e,0xb9,0xc6,
|
||||||
|
0xc2,0xad,0x8e,0x6c,0x4d,0x3b,0x38,0x46,
|
||||||
|
0x61,0x82,0xa4,0xbc,0xc7,0xc0,0xaa,0x8a,
|
||||||
|
0x68,0x4b,0x3a,0x39,0x48,0x62,0x84,0xa4,
|
||||||
|
0xbc,0xc6,0xc1,0xad,0x8d,0x6d,0x4f,0x3c,
|
||||||
|
0x38,0x44,0x5d,0x7d,0x9d,0xb6,0xc5,0xc4,
|
||||||
|
0xb5,0x99,0x79,0x5b,0x43,0x38,0x3d,0x50,
|
||||||
|
0x6c,0x8c,0xab,0xbf,0xc6,0xbf,0xaa,0x8d,
|
||||||
|
0x6e,0x52,0x3e,0x38,0x41,0x56,0x73,0x92,
|
||||||
|
0xae,0xc1,0xc6,0xbc,0xa5,0x87,0x6a,0x4f,
|
||||||
|
0x3d,0x39,0x41,0x57,0x73,0x92,0xad,0xbf,
|
||||||
|
0xc5,0xbe,0xa9,0x8d,0x70,0x53,0x40,0x39,
|
||||||
|
0x3f,0x50,0x6b,0x88,0xa5,0xba,0xc5,0xc2,
|
||||||
|
0xb3,0x9a,0x7e,0x61,0x49,0x3b,0x3a,0x46,
|
||||||
|
0x5b,0x78,0x94,0xae,0xbf,0xc5,0xbe,0xad,
|
||||||
|
0x93,0x77,0x5b,0x46,0x3b,0x3b,0x47,0x5b,
|
||||||
|
0x77,0x92,0xac,0xbe,0xc5,0xc0,0xb1,0x9a,
|
||||||
|
0x7e,0x63,0x4c,0x3e,0x3a,0x41,0x52,0x6a,
|
||||||
|
0x85,0x9f,0xb4,0xc1,0xc4,0xbc,0xab,0x93,
|
||||||
|
0x79,0x5f,0x4a,0x3d,0x3a,0x42,0x53,0x6a,
|
||||||
|
0x82,0x9c,0xb1,0xc0,0xc4,0xbf,0xb0,0x9a,
|
||||||
|
0x80,0x68,0x51,0x42,0x3a,0x3d,0x48,0x5c,
|
||||||
|
0x73,0x8d,0xa4,0xb7,0xc2,0xc3,0xbc,0xac,
|
||||||
|
0x96,0x7e,0x67,0x51,0x42,0x3b,0x3d,0x48,
|
||||||
|
0x5a,0x70,0x88,0x9f,0xb2,0xbf,0xc3,0xbf,
|
||||||
|
0xb3,0xa1,0x89,0x72,0x5c,0x4a,0x3e,0x3b,
|
||||||
|
0x3f,0x4c,0x5e,0x75,0x8a,0xa1,0xb3,0xbf,
|
||||||
|
0xc3,0xbf,0xb5,0xa3,0x8e,0x77,0x61,0x4e,
|
||||||
|
0x41,0x3b,0x3d,0x46,0x55,0x69,0x80,0x95,
|
||||||
|
0xa9,0xb8,0xc1,0xc3,0xbd,0xb0,0x9f,0x8a,
|
||||||
|
0x75,0x61,0x4e,0x42,0x3c,0x3d,0x44,0x52,
|
||||||
|
0x65,0x7a,0x8e,0xa2,0xb2,0xbd,0xc2,0xc0,
|
||||||
|
0xb8,0xaa,0x98,0x83,0x6f,0x5c,0x4c,0x41,
|
||||||
|
0x3c,0x3d,0x45,0x52,0x63,0x77,0x8b,0x9e,
|
||||||
|
0xaf,0xbb,0xc1,0xc1,0xbc,0xb1,0xa1,0x8f,
|
||||||
|
0x7b,0x67,0x56,0x48,0x3f,0x3c,0x3f,0x47,
|
||||||
|
0x54,0x65,0x77,0x8a,0x9d,0xad,0xb9,0xc0,
|
||||||
|
0xc2,0xbe,0xb5,0xa7,0x97,0x83,0x72,0x60,
|
||||||
|
0x50,0x45,0x3e,0x3d,0x40,0x49,0x56,0x66,
|
||||||
|
0x78,0x8a,0x9c,0xab,0xb7,0xbf,0xc1,0xbf,
|
||||||
|
0xb8,0xac,0x9d,0x8c,0x7b,0x6a,0x59,0x4c,
|
||||||
|
0x43,0x3d,0x3d,0x42,0x4b,0x57,0x67,0x79,
|
||||||
|
0x89,0x9a,0xa8,0xb5,0xbd,0xc1,0xc0,0xbb,
|
||||||
|
0xb1,0xa5,0x95,0x84,0x74,0x63,0x56,0x4a,
|
||||||
|
0x42,0x3e,0x3e,0x43,0x4b,0x57,0x66,0x75,
|
||||||
|
0x85,0x95,0xa4,0xb0,0xba,0xbf,0xc0,0xbe,
|
||||||
|
0xb7,0xad,0xa0,0x92,0x81,0x72,0x63,0x55,
|
||||||
|
0x4a,0x42,0x3e,0x3e,0x42,0x48,0x53,0x60,
|
||||||
|
0x6e,0x7e,0x8d,0x9b,0xa9,0xb4,0xbb,0xbf,
|
||||||
|
0xc0,0xbd,0xb7,0xad,0xa1,0x93,0x84,0x75,
|
||||||
|
0x67,0x5a,0x4f,0x46,0x40,0x3e,0x3f,0x44,
|
||||||
|
0x4b,0x56,0x63,0x71,0x80,0x8d,0x9a,0xa7,
|
||||||
|
0xb1,0xb9,0xbe,0xc0,0xbe,0xb9,0xb2,0xa7,
|
||||||
|
0x9c,0x8e,0x80,0x73,0x65,0x59,0x4f,0x47,
|
||||||
|
0x41,0x3f,0x3f,0x43,0x49,0x53,0x5d,0x69,
|
||||||
|
0x76,0x84,0x91,0x9e,0xa9,0xb3,0xba,0xbe,
|
||||||
|
0xbf,0xbe,0xba,0xb3,0xaa,0xa0,0x93,0x86,
|
||||||
|
0x7a,0x6d,0x60,0x55,0x4d,0x46,0x41,0x3f,
|
||||||
|
0x40,0x44,0x49,0x51,0x5c,0x66,0x72,0x80,
|
||||||
|
0x8b,0x97,0xa2,0xac,0xb4,0xba,0xbd,0xbe,
|
||||||
|
0xbd,0xb9,0xb4,0xab,0xa1,0x96,0x8b,0x80,
|
||||||
|
0x73,0x68,0x5d,0x52,0x4b,0x45,0x41,0x40,
|
||||||
|
0x41,0x44,0x49,0x50,0x58,0x63,0x6e,0x7a,
|
||||||
|
0x85,0x90,0x9b,0xa5,0xae,0xb5,0xba,0xbd,
|
||||||
|
0xbe,0xbd,0xba,0xb4,0xae,0xa5,0x9b,0x91,
|
||||||
|
0x85,0x7b,0x70,0x65,0x5b,0x53,0x4b,0x46,
|
||||||
|
0x42,0x41,0x41,0x43,0x47,0x4c,0x54,0x5d,
|
||||||
|
0x67,0x71,0x7c,0x86,0x90,0x9a,0xa3,0xac,
|
||||||
|
0xb3,0xb8,0xbb,0xbd,0xbd,0xbb,0xb7,0xb2,
|
||||||
|
0xac,0xa3,0x9b,0x91,0x87,0x7d,0x72,0x69,
|
||||||
|
0x5f,0x57,0x50,0x4a,0x45,0x42,0x41,0x42,
|
||||||
|
0x43,0x47,0x4c,0x53,0x5b,0x63,0x6c,0x76,
|
||||||
|
0x80,0x88,0x93,0x9c,0xa4,0xab,0xb1,0xb6,
|
||||||
|
0xba,0xbc,0xbd,0xbc,0xb9,0xb5,0xb0,0xaa,
|
||||||
|
0xa2,0x9a,0x91,0x87,0x80,0x76,0x6c,0x63,
|
||||||
|
0x5c,0x55,0x4e,0x49,0x45,0x43,0x42,0x42,
|
||||||
|
0x44,0x47,0x4b,0x50,0x57,0x5e,0x66,0x6f,
|
||||||
|
0x78,0x80,0x89,0x92,0x9a,0xa2,0xa8,0xae,
|
||||||
|
0xb4,0xb7,0xba,0xbc,0xbc,0xbb,0xb8,0xb5,
|
||||||
|
0xb0,0xab,0xa4,0x9d,0x95,0x8d,0x85,0x7c,
|
||||||
|
0x74,0x6c,0x64,0x5c,0x56,0x51,0x4c,0x48,
|
||||||
|
0x45,0x43,0x43,0x43,0x45,0x48,0x4b,0x50,
|
||||||
|
0x56,0x5d,0x63,0x6b,0x73,0x7b,0x82,0x8a,
|
||||||
|
0x92,0x99,0xa0,0xa7,0xac,0xb1,0xb5,0xb8,
|
||||||
|
0xba,0xbb,0xbb,0xba,0xb8,0xb4,0xb1,0xac,
|
||||||
|
0xa6,0xa0,0x9a,0x92,0x8b,0x83,0x7c,0x75,
|
||||||
|
0x6d,0x66,0x60,0x5a,0x54,0x4f,0x4b,0x48,
|
||||||
|
0x45,0x44,0x43,0x44,0x45,0x47,0x4a,0x4e,
|
||||||
|
0x53,0x58,0x5e,0x64,0x6b,0x72,0x79,0x80,
|
||||||
|
0x87,0x8d,0x94,0x9b,0xa1,0xa6,0xac,0xaf,
|
||||||
|
0xb3,0xb6,0xb8,0xba,0xba,0xba,0xb9,0xb7,
|
||||||
|
0xb4,0xb0,0xad,0xa8,0xa2,0x9d,0x97,0x90,
|
||||||
|
0x8a,0x83,0x7d,0x76,0x70,0x69,0x64,0x5d,
|
||||||
|
0x59,0x53,0x50,0x4c,0x49,0x47,0x45,0x44,
|
||||||
|
0x44,0x45,0x46,0x48,0x4b,0x4f,0x52,0x57,
|
||||||
|
0x5c,0x61,0x67,0x6c,0x72,0x79,0x80,0x85,
|
||||||
|
0x8b,0x91,0x96,0x9c,0xa2,0xa7,0xab,0xaf,
|
||||||
|
0xb2,0xb5,0xb7,0xb8,0xb9,0xb9,0xb9,0xb8,
|
||||||
|
0xb6,0xb4,0xb1,0xae,0xaa,0xa6,0xa1,0x9c,
|
||||||
|
0x96,0x91,0x8c,0x86,0x80,0x7a,0x75,0x6f,
|
||||||
|
0x6a,0x64,0x5f,0x5b,0x56,0x52,0x4f,0x4c,
|
||||||
|
0x4a,0x48,0x46,0x46,0x45,0x46,0x47,0x48,
|
||||||
|
0x4a,0x4c,0x4f,0x52,0x56,0x5a,0x5e,0x63,
|
||||||
|
0x68,0x6e,0x72,0x78,0x7d,0x82,0x88,0x8c,
|
||||||
|
0x92,0x97,0x9b,0xa0,0xa4,0xa8,0xac,0xaf,
|
||||||
|
0xb1,0xb3,0xb6,0xb7,0xb8,0xb8,0xb8,0xb7,
|
||||||
|
0xb6,0xb5,0xb3,0xb0,0xad,0xaa,0xa7,0xa3,
|
||||||
|
0x9f,0x9b,0x97,0x92,0x8c,0x87,0x82,0x7f,
|
||||||
|
0x7a,0x75,0x70,0x6b,0x66,0x62,0x5e,0x5a,
|
||||||
|
0x56,0x54,0x51,0x4e,0x4c,0x4a,0x49,0x47,
|
||||||
|
0x47,0x47,0x47,0x47,0x48,0x4a,0x4b,0x4d,
|
||||||
|
0x50,0x53,0x55,0x59,0x5d,0x61,0x64,0x68,
|
||||||
|
0x6d,0x71,0x76,0x7b,0x7f,0x82,0x87,0x8b,
|
||||||
|
0x90,0x95,0x98,0x9c,0xa0,0xa3,0xa7,0xaa,
|
||||||
|
0xad,0xaf,0xb1,0xb3,0xb4,0xb5,0xb6,0xb7,
|
||||||
|
0xb7,0xb6,0xb6,0xb5,0xb3,0xb2,0xb0,0xad,
|
||||||
|
0xab,0xa8,0xa5,0xa2,0x9e,0x9a,0x96,0x93,
|
||||||
|
0x8e,0x8a,0x86,0x81,0x7f,0x7a,0x76,0x72,
|
||||||
|
0x6d,0x6a,0x65,0x62,0x5e,0x5b,0x58,0x55,
|
||||||
|
0x53,0x50,0x4e,0x4c,0x4b,0x4a,0x49,0x48,
|
||||||
|
0x48,0x48,0x49,0x49,0x4a,0x4b,0x4d,0x4f,
|
||||||
|
0x51,0x54,0x56,0x59,0x5c,0x5f,0x63,0x66,
|
||||||
|
0x6a,0x6e,0x72,0x76,0x7a,0x7e,0x80,0x85,
|
||||||
|
0x89,0x8d,0x90,0x94,0x98,0x9c,0x9f,0xa2,
|
||||||
|
0xa5,0xa7,0xaa,0xac,0xae,0xb0,0xb2,0xb3,
|
||||||
|
0xb4,0xb5,0xb5,0xb5,0xb5,0xb5,0xb4,0xb3,
|
||||||
|
0xb2,0xb0,0xaf,0xad,0xab,0xa8,0xa6,0xa3,
|
||||||
|
0xa0,0x9d,0x9a,0x96,0x93,0x8f,0x8c,0x88,
|
||||||
|
0x84,0x80,0x7e,0x7a,0x76,0x72,0x6f,0x6b,
|
||||||
|
0x68,0x65,0x62,0x5f,0x5c,0x59,0x57,0x54,
|
||||||
|
0x52,0x50,0x4f,0x4d,0x4c,0x4b,0x4a,0x4a,
|
||||||
|
0x4a,0x4a,0x4a,0x4a,0x4b,0x4c,0x4d,0x4f,
|
||||||
|
0x50,0x52,0x54,0x56,0x59,0x5c,0x5e,0x61,
|
||||||
|
0x64,0x67,0x6a,0x6d,0x71,0x74,0x77,0x7b,
|
||||||
|
0x7f,0x81,0x84,0x88,0x8b,0x8e,0x92,0x95,
|
||||||
|
0x98,0x9b,0x9e,0xa1,0xa3,0xa5,0xa8,0xaa,
|
||||||
|
0xac,0xad,0xaf,0xb0,0xb1,0xb2,0xb3,0xb3,
|
||||||
|
0xb3,0xb3,0xb3,0xb3,0xb2,0xb2,0xb1,0xb0,
|
||||||
|
0xae,0xac,0xab,0xa9,0xa7,0xa4,0xa2,0xa0,
|
||||||
|
0x9d,0x9a,0x97,0x95,0x91,0x8f,0x8b,0x89,
|
||||||
|
0x85,0x82,0x80,0x7d,0x79,0x76,0x73,0x70,
|
||||||
|
0x6d,0x6a,0x68,0x65,0x62,0x5f,0x5d,0x5b,
|
||||||
|
0x59,0x56,0x55,0x53,0x51,0x50,0x4f,0x4e,
|
||||||
|
0x4d,0x4c,0x4c,0x4c,0x4b,0x4b,0x4c,0x4c,
|
||||||
|
0x4d,0x4e,0x4e,0x50,0x51,0x53,0x54,0x56,
|
||||||
|
0x58,0x5a,0x5b,0x5d,0x60,0x63,0x65,0x68,
|
||||||
|
0x6a,0x6d,0x70,0x73,0x76,0x78,0x7c,0x7f,
|
||||||
|
0x80,0x84,0x87,0x89,0x8c,0x8f,0x92,0x94,
|
||||||
|
0x97,0x99,0x9c,0x9e,0xa0,0xa2,0xa5,0xa6,
|
||||||
|
0xa8,0xaa,0xab,0xad,0xae,0xaf,0xaf,0xb0,
|
||||||
|
0xb1,0xb1,0xb2,0xb2,0xb2,0xb1,0xb1,0xb1,
|
||||||
|
0xb0,0xaf,0xae,0xad,0xac,0xab,0xa9,0xa8,
|
||||||
|
0xa5,0xa4,0xa2,0xa0,0x9e,0x9c,0x99,0x97,
|
||||||
|
0x95,0x92,0x90,0x8d,0x8b,0x88,0x86,0x82,
|
||||||
|
0x80,0x7e,0x7b,0x78,0x76,0x73,0x71,0x6e,
|
||||||
|
0x6c,0x69,0x67,0x65,0x63,0x60,0x5e,0x5d,
|
||||||
|
0x5b,0x59,0x57,0x56,0x54,0x53,0x52,0x51,
|
||||||
|
0x50,0x50,0x4f,0x4e,0x4e,0x4e,0x4d,0x4d,
|
||||||
|
0x4e,0x4e,0x4e,0x4f,0x4f,0x50,0x51,0x52,
|
||||||
|
0x53,0x54,0x56,0x57,0x58,0x5a,0x5c,0x5e,
|
||||||
|
0x60,0x62,0x63,0x65,0x67,0x6a,0x6c,0x6f,
|
||||||
|
0x71,0x73,0x75,0x78,0x7a,0x7d,0x7f,0x80,
|
||||||
|
0x83,0x85,0x88,0x8a,0x8c,0x8f,0x91,0x93,
|
||||||
|
0x95,0x97,0x99,0x9b,0x9d,0x9f,0xa1,0xa2,
|
||||||
|
0xa4,0xa5,0xa7,0xa8,0xa9,0xaa,0xab,0xac,
|
||||||
|
0xad,0xae,0xae,0xaf,0xaf,0xaf,0xaf,0xaf,
|
||||||
|
0xaf,0xaf,0xaf,0xae,0xae,0xad,0xad,0xac,
|
||||||
|
0xab,0xaa,0xa9,0xa8,0xa7,0xa5,0xa4,0xa3,
|
||||||
|
0xa1,0x9f,0x9e,0x9c,0x9a,0x98,0x96,0x95,
|
||||||
|
0x92,0x91,0x8e,0x8c,0x8a,0x88,0x86,0x84,
|
||||||
|
0x81,0x80,0x7e,0x7c,0x7a,0x78,0x75,0x73,
|
||||||
|
0x71,0x6f,0x6d,0x6b,0x6a,0x67,0x66,0x64,
|
||||||
|
0x63,0x61,0x5f,0x5e,0x5c,0x5b,0x5a,0x58,
|
||||||
|
0x57,0x56,0x55,0x54,0x53,0x53,0x52,0x51,
|
||||||
|
0x51,0x50,0x50,0x50,0x50,0x50,0x50,0x50,
|
||||||
|
0x50,0x50,0x51,0x51,0x52,0x53,0x53,0x54,
|
||||||
|
0x55,0x56,0x57,0x58,0x59,0x5a,0x5c,0x5d,
|
||||||
|
0x5f,0x60,0x61,0x63,0x64,0x66,0x68,0x69,
|
||||||
|
0x6c,0x6d,0x6f,0x71,0x73,0x74,0x77,0x78,
|
||||||
|
0x7a,0x7c,0x7e,0x80,0x81,0x83,0x84,0x87,
|
||||||
|
0x88,0x8a,0x8c,0x8e,0x8f,0x92,0x93,0x94,
|
||||||
|
0x96,0x98,0x99,0x9b,0x9d,0x9e,0x9f,0xa0,
|
||||||
|
0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,
|
||||||
|
0xa9,0xaa,0xaa,0xab,0xac,0xac,0xac,0xac,
|
||||||
|
0xad,0xad,0xad,0xad,0xad,0xac,0xac,0xac,
|
||||||
|
0xac,0xab,0xab,0xaa,0xaa,0xa9,0xa8,0xa7,
|
||||||
|
0xa6,0xa6,0xa5,0xa4,0xa2,0xa1,0xa0,0x9f,
|
||||||
|
0x9e,0x9d,0x9b,0x99,0x98,0x97,0x95,0x94,
|
||||||
|
0x93,0x90,0x8f,0x8d,0x8c,0x8a,0x89,0x87,
|
||||||
|
0x86,0x83,0x82,0x80,0x80,0x7e,0x7c,0x7b,
|
||||||
|
0x79,0x78,0x76,0x75,0x72,0x71,0x6f,0x6e,
|
||||||
|
0x6c,0x6b,0x6a,0x68,0x67,0x66,0x64,0x63,
|
||||||
|
0x62,0x61,0x60,0x5e,0x5d,0x5c,0x5b,0x5a,
|
||||||
|
0x59,0x59,0x58,0x57,0x56,0x56,0x55,0x55,
|
||||||
|
0x54,0x54,0x54,0x53,0x53,0x53,0x53,0x53,
|
||||||
|
0x53,0x53,0x53,0x53,0x53,0x54,0x54,0x54,
|
||||||
|
0x55,0x55,0x56,0x56,0x56,0x57,0x58,0x59,
|
||||||
|
0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,0x60,
|
||||||
|
0x61,0x62,0x64,0x64,0x65,0x67,0x68,0x69,
|
||||||
|
0x6b,0x6c,0x6e,0x6f,0x70,0x71,0x73,0x74,
|
||||||
|
0x76,0x77,0x79,0x7a,0x7c,0x7d,0x7e,0x80,
|
||||||
|
0x80,0x82,0x83,0x85,0x86,0x88,0x89,0x8a,
|
||||||
|
0x8b,0x8d,0x8e,0x90,0x91,0x92,0x93,0x94,
|
||||||
|
0x96,0x97,0x98,0x99,0x9a,0x9b,0x9c,0x9d,
|
||||||
|
0x9e,0x9f,0xa0,0xa1,0xa2,0xa2,0xa3,0xa4,
|
||||||
|
0xa5,0xa5,0xa6,0xa6,0xa7,0xa7,0xa8,0xa8,
|
||||||
|
0xa8,0xa9,0xa9,0xa9,0xa9,0xa9,0xaa,0xaa,
|
||||||
|
0xaa,0xa9,0xa9,0xa9,0xa9,0xa9,0xa9,0xa8,
|
||||||
|
0xa8,0xa8,0xa7,0xa7,0xa6,0xa6,0xa5,0xa4,
|
||||||
|
0xa4,0xa3,0xa2,0xa1,0xa1,0xa0,0x9f,0x9e,
|
||||||
|
0x9d,0x9d,0x9c,0x9a,0x99,0x99,0x97,0x96,
|
||||||
|
0x95,0x94,0x93,0x92,0x90,0x8f,0x8e,0x8d,
|
||||||
|
0x8c,0x8a,0x89,0x88,0x87,0x85,0x84,0x83,
|
||||||
|
0x81,0x80,0x80,0x7f,0x7d,0x7d,0x7b,0x7a,
|
||||||
|
0x78,0x77,0x76,0x75,0x74,0x73,0x71,0x70,
|
||||||
|
0x6f,0x6e,0x6c,0x6c,0x6b,0x69,0x68,0x68,
|
||||||
|
0x66,0x65,0x65,0x64,0x63,0x62,0x61,0x60,
|
||||||
|
0x5f,0x5f,0x5e,0x5d,0x5d,0x5c,0x5b,0x5b,
|
||||||
|
0x5a,0x5a,0x59,0x59,0x58,0x58,0x58,0x57,
|
||||||
|
0x57,0x57,0x57,0x57,0x56,0x56,0x56,0x56,
|
||||||
|
0x56,0x56,0x56,0x57,0x57,0x57,0x57,0x57,
|
||||||
|
0x58,0x58,0x58,0x59,0x59,0x5a,0x5a,0x5a,
|
||||||
|
0x5b,0x5c,0x5c,0x5d,0x5d,0x5e,0x5f,0x5f,
|
||||||
|
0x60,0x61,0x62,0x63,0x64,0x64,0x65,0x66,
|
||||||
|
0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,
|
||||||
|
0x6f,0x70,0x71,0x72,0x73,0x74,0x75,0x76,
|
||||||
|
0x77,0x78,0x7a,0x7b,0x7c,0x7d,0x7e,0x80,
|
||||||
|
0x80,0x81,0x81,0x83,0x84,0x85,0x86,0x87,
|
||||||
|
0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,
|
||||||
|
0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x96,
|
||||||
|
0x98,0x98,0x99,0x9a,0x9b,0x9b,0x9c,0x9d,
|
||||||
|
0x9d,0x9e,0x9f,0x9f,0xa0,0xa0,0xa1,0xa1,
|
||||||
|
0xa2,0xa2,0xa3,0xa3,0xa3,0xa4,0xa4,0xa4,
|
||||||
|
0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa6,0xa6,
|
||||||
|
0xa6,0xa6,0xa6,0xa6,0xa6,0xa5,0xa5,0xa5,
|
||||||
|
0xa5,0xa5,0xa5,0xa4,0xa4,0xa4,0xa3,0xa3,
|
||||||
|
0xa3,0xa2,0xa2,0xa1,0xa1,0xa0,0xa0,0x9f,
|
||||||
|
0x9f,0x9e,0x9e,0x9d,0x9d,0x9c,0x9b,0x9a,
|
||||||
|
0x9a,0x99,0x98,0x97,0x97,0x96,0x95,0x95,
|
||||||
|
0x93,0x93,0x92,0x91,0x90,0x8f,0x8e,0x8d,
|
||||||
|
0x8d,0x8c,0x8b,0x8a,0x89,0x88,0x87,0x86,
|
||||||
|
0x85,0x84,0x83,0x82,0x81,0x80,0x80,0x80,
|
||||||
|
0x7e,0x7e,0x7d,0x7c,0x7b,0x7a,0x79,0x78,
|
||||||
|
0x77,0x76,0x75,0x74,0x74,0x73,0x72,0x71,
|
||||||
|
0x70,0x70,0x6e,0x6e,0x6d,0x6c,0x6b,0x6a,
|
||||||
|
0x6a,0x69,0x68,0x67,0x67,0x66,0x65,0x65,
|
||||||
|
0x64,0x64,0x63,0x62,0x62,0x62,0x61,0x61,
|
||||||
|
0x60,0x60,0x5f,0x5f,0x5e,0x5e,0x5d,0x5d,
|
||||||
|
0x5d,0x5d,0x5c,0x5c,0x5c,0x5c,0x5b,0x5b,
|
||||||
|
0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,
|
||||||
|
0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,
|
||||||
|
0x5b,0x5c,0x5c,0x5c,0x5c,0x5d,0x5d,0x5d,
|
||||||
|
0x5e,0x5e,0x5e,0x5f,0x5f,0x60,0x60,0x60,
|
||||||
|
0x61,0x61,0x62,0x62,0x63,0x63,0x64,0x64,
|
||||||
|
0x65,0x65,0x66,0x67,0x67,0x68,0x69,0x69,
|
||||||
|
0x6a,0x6b,0x6b,0x6c,0x6d,0x6d,0x6e,0x6f,
|
||||||
|
0x70,0x70,0x71,0x72,0x73,0x73,0x74,0x75,
|
||||||
|
0x76,0x77,0x77,0x78,0x79,0x7a,0x7b,0x7b,
|
||||||
|
0x7c,0x7d,0x7e,0x7e,0x80,0x80,0x80,0x81,
|
||||||
|
0x82,0x82,0x83,0x84,0x85,0x85,0x86,0x87,
|
||||||
|
0x88,0x88,0x89,0x8a,0x8b,0x8b,0x8c,0x8d,
|
||||||
|
0x8d,0x8e,0x8f,0x90,0x90,0x91,0x92,0x92,
|
||||||
|
0x93,0x93,0x94,0x95,0x95,0x96,0x96,0x97,
|
||||||
|
0x97,0x98,0x99,0x99,0x99,0x9a,0x9a,0x9b,
|
||||||
|
0x9b,0x9b,0x9c,0x9c,0x9d,0x9d,0x9d,0x9e,
|
||||||
|
0x9e,0x9e,0x9e,0x9f,0x9f,0x9f,0x9f,0xa0,
|
||||||
|
0xa0,0xa0,0xa0,0xa0,0xa0,0xa1,0xa1,0xa1,
|
||||||
|
0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,
|
||||||
|
0xa1,0xa1,0xa1,0xa1,0xa0,0xa0,0xa0,0xa0,
|
||||||
|
0xa0,0xa0,0x9f,0x9f,0x9f,0x9f,0x9f,0x9e,
|
||||||
|
0x9e,0x9e,0x9d,0x9d,0x9d,0x9c,0x9c,0x9c,
|
||||||
|
0x9b,0x9b,0x9a,0x9a,0x9a,0x99,0x99,0x98,
|
||||||
|
0x98,0x97,0x97,0x96,0x96,0x95,0x95,0x94,
|
||||||
|
0x94,0x93,0x93,0x92,0x92,0x91,0x90,0x90,
|
||||||
|
0x8f,0x8f,0x8e,0x8d,0x8d,0x8c,0x8c,0x8b,
|
||||||
|
0x8a,0x8a,0x89,0x88,0x88,0x87,0x87,0x86,
|
||||||
|
0x85,0x85,0x84,0x83,0x83,0x82,0x81,0x81,
|
||||||
|
0x80,0x80,0x80,0x7f,0x7e,0x7e,0x7d,0x7d,
|
||||||
|
0x7c,0x7b,0x7a,0x7a,0x79,0x79,0x78,0x78,
|
||||||
|
0x77,0x76,0x75,0x75,0x74,0x74,0x73,0x73,
|
||||||
|
0x72,0x72,0x71,0x71,0x70,0x6f,0x6f,0x6e,
|
||||||
|
0x6e,0x6d,0x6d,0x6c,0x6c,0x6b,0x6b,0x6a,
|
||||||
|
0x6a,0x69,0x69,0x69,0x68,0x68,0x68,0x67,
|
||||||
|
0x67,0x66,0x66,0x65,0x65,0x65,0x65,0x64,
|
||||||
|
0x64,0x64,0x63,0x63,0x63,0x63,0x62,0x62,
|
||||||
|
0x62,0x62,0x62,0x61,0x61,0x61,0x61,0x61,
|
||||||
|
0x61,0x61,0x60,0x60,0x60,0x60,0x60,0x60,
|
||||||
|
0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,
|
||||||
|
0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x61,
|
||||||
|
0x61,0x61,0x61,0x61,0x61,0x62,0x62,0x62,
|
||||||
|
0x62,0x62,0x63,0x63,0x63,0x63,0x64,0x64,
|
||||||
|
0x64,0x64,0x65,0x65,0x65,0x66,0x66,0x66,
|
||||||
|
0x66,0x67,0x67,0x67,0x68,0x68,0x69,0x69,
|
||||||
|
0x69,0x6a,0x6a,0x6b,0x6b,0x6b,0x6c,0x6c,
|
||||||
|
0x6d,0x6d,0x6e,0x6e,0x6e,0x6f,0x6f,0x70,
|
||||||
|
0x70,0x71,0x71,0x72,0x72,0x73,0x73,0x74,
|
||||||
|
0x74,0x75,0x75,0x76,0x76,0x77,0x77,0x78,
|
||||||
|
0x78,0x79,0x79,0x7a,0x7a,0x7b,0x7b,0x7c,
|
||||||
|
0x7c,0x7d,0x7d,0x7e,0x7e,0x7f,0x80,0x80,
|
||||||
|
0x80,0x80,0x81,0x81,0x82,0x82,0x83,0x83,
|
||||||
|
0x84,0x84,0x84,0x85,0x85,0x86,0x86,0x87,
|
||||||
|
0x87,0x88,0x88,0x89,0x89,0x8a,0x8a,0x8b,
|
||||||
|
0x8b,0x8b,0x8c,0x8c,0x8d,0x8d,0x8e,0x8e,
|
||||||
|
0x8e,0x8e,0x8f,0x8f,0x90,0x90,0x91,0x91,
|
||||||
|
0x91,0x92,0x92,0x92,0x93,0x93,0x93,0x94,
|
||||||
|
0x94,0x94,0x94,0x95,0x95,0x95,0x96,0x96,
|
||||||
|
0x96,0x96,0x97,0x97,0x97,0x97,0x98,0x98,
|
||||||
|
0x98,0x98,0x98,0x99,0x99,0x99,0x99,0x99,
|
||||||
|
0x99,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,
|
||||||
|
0x9a,0x9a,0x9a,0x9b,0x9b,0x9b,0x9b,0x9b,
|
||||||
|
0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,
|
||||||
|
0x9b,0x9b,0x9b,0x9b,0x9b,0x9a,0x9a,0x9a,
|
||||||
|
0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,
|
||||||
|
0x99,0x99,0x99,0x99,0x99,0x99,0x98,0x98,
|
||||||
|
0x98,0x98,0x98,0x98,0x97,0x97,0x97,0x97,
|
||||||
|
0x96,0x96,0x96,0x96,0x96,0x95,0x95,0x95,
|
||||||
|
0x94,0x94,0x94,0x94,0x94,0x93,0x93,0x93,
|
||||||
|
0x92,0x92,0x92,0x91,0x91,0x91,0x90,0x90,
|
||||||
|
0x90,0x90,0x8f,0x8f,0x8e,0x8e,0x8e,0x8e,
|
||||||
|
0x8d,0x8d,0x8c,0x8c,0x8c,0x8b,0x8b,0x8b,
|
||||||
|
0x8a,0x8a,0x89,0x89,0x89,0x89,0x88,0x88,
|
||||||
|
0x87,0x87,0x86,0x86,0x86,0x85,0x85,0x85,
|
||||||
|
0x84,0x84,0x84,0x83,0x83,0x82,0x82,0x82,
|
||||||
|
0x81,0x81,0x80,0x80,0x80,0x80,0x80,0x80,
|
||||||
|
0x7f,0x7f,0x7f,0x7e,0x7e,0x7d,0x7d,0x7d,
|
||||||
|
0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,
|
||||||
|
0x79,0x79,0x79,0x78,0x78,0x77,0x77,0x77,
|
||||||
|
0x77,0x76,0x76,0x75,0x75,0x75,0x75,0x74,
|
||||||
|
0x74,0x74,0x73,0x73,0x73,0x72,0x72,0x72,
|
||||||
|
0x72,0x71,0x71,0x71,0x70,0x70,0x70,0x6f,
|
||||||
|
0x6f,0x6f,0x6f,0x6e,0x6e,0x6e,0x6e,0x6e,
|
||||||
|
0x6d,0x6d,0x6d,0x6d,0x6c,0x6c,0x6c,0x6c,
|
||||||
|
0x6c,0x6b,0x6b,0x6b,0x6b,0x6b,0x6a,0x6a,
|
||||||
|
0x6a,0x6a,0x6a,0x6a,0x6a,0x69,0x69,0x69,
|
||||||
|
0x69,0x69,0x69,0x69,0x69,0x68,0x68,0x68,
|
||||||
|
0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x68,
|
||||||
|
0x68,0x67,0x67,0x67,0x67,0x67,0x67,0x67,
|
||||||
|
0x67,0x67,0x67,0x67,0x67,0x67,0x67,0x67,
|
||||||
|
0x67,0x67,0x67,0x67,0x67,0x67,0x67,0x67,
|
||||||
|
0x67,0x67,0x67,0x67,0x68,0x68,0x68,0x68,
|
||||||
|
0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x68,
|
||||||
|
0x68,0x69,0x69,0x69,0x69,0x69,0x69,0x69,
|
||||||
|
0x69,0x6a,0x6a,0x6a,0x6a,0x6a,0x6a,0x6a,
|
||||||
|
0x6b,0x6b,0x6b,0x6b,0x6b,0x6b,0x6c,0x6c,
|
||||||
|
0x6c,0x6c,0x6c,0x6d,0x6d,0x6d,0x6d,0x6d,
|
||||||
|
0x6d,0x6e,0x6e,0x6e,0x6e,0x6e,0x6f,0x6f,
|
||||||
|
0x6f,0x6f,0x6f,0x70,0x70,0x70,0x70,0x71,
|
||||||
|
0x71,0x71,0x71,0x72,0x72,0x72,0x72,0x73,
|
||||||
|
0x73,0x73,0x73,0x73,0x74,0x74,0x74,0x74,
|
||||||
|
0x75,0x75,0x75,0x76,0x76,0x76,0x76,0x77,
|
||||||
|
0x77,0x77,0x77,0x77,0x78,0x78,0x79,0x79,
|
||||||
|
0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7b,
|
||||||
|
0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7d,
|
||||||
|
0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,0x7f,0x7f,
|
||||||
|
0x7f,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
|
||||||
|
0x80,0x80,0x81,0x81,0x81,0x82,0x82,0x82,
|
||||||
|
0x82,0x82,0x83,0x83,0x83,0x83,0x84,0x84,
|
||||||
|
0x84,0x84,0x84,0x85,0x85,0x85,0x86,0x86,
|
||||||
|
0x86,0x86,0x87,0x87,0x87,0x87,0x87,0x88,
|
||||||
|
0x88,0x88,0x88,0x88,0x89,0x89,0x89,0x89,
|
||||||
|
0x89,0x89,0x8a,0x8a,0x8a,0x8a,0x8b,0x8b,
|
||||||
|
0x8b,0x8b,0x8b,0x8b,0x8b,0x8c,0x8c,0x8c,
|
||||||
|
0x8c,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,
|
||||||
|
0x8d,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,
|
||||||
|
0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,
|
||||||
|
0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
|
||||||
|
0x90,0x90,0x90,0x91,0x91,0x91,0x91,0x91,
|
||||||
|
0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,
|
||||||
|
0x92,0x91,0x92,0x92,0x92,0x92,0x92,0x92,
|
||||||
|
0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,
|
||||||
|
0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,
|
||||||
|
0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,
|
||||||
|
0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,
|
||||||
|
0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,
|
||||||
|
0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,
|
||||||
|
0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,
|
||||||
|
0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
|
||||||
|
0x90,0x90,0x90,0x90,0x8f,0x8f,0x8f,0x8f,
|
||||||
|
0x8f,0x8f,0x8f,0x8f,0x8f,0x8e,0x8e,0x8e,
|
||||||
|
0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8d,0x8d,
|
||||||
|
0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8c,
|
||||||
|
0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8b,0x8b,
|
||||||
|
0x8b,0x8b,0x8b,0x8b,0x8b,0x8a,0x8a,0x8a,
|
||||||
|
0x8a,0x8a,0x8a,0x8a,0x89,0x89,0x89,0x89,
|
||||||
|
0x89,0x89,0x88,0x88,0x88,0x88,0x88,0x88,
|
||||||
|
0x88,0x87,0x87,0x87,0x87,0x87,0x86,0x86,
|
||||||
|
0x86,0x86,0x86,0x86,0x86,0x86,0x85,0x85,
|
||||||
|
0x85,0x85,0x85,0x84,0x84,0x84,0x84,0x84,
|
||||||
|
0x84,0x84,0x84,0x83,0x83,0x83,0x83,0x83,
|
||||||
|
0x83,0x82,0x82,0x82,0x82,0x82,0x81,0x81,
|
||||||
|
0x81,0x81,0x81,0x81,0x81,0x81,0x80,0x80,
|
||||||
|
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
|
||||||
|
0x80,0x80,0x80,0x7f,0x7f,0x7f,0x7f,0x7f,
|
||||||
|
0x7f,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7d,
|
||||||
|
0x7e,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
|
||||||
|
0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
|
||||||
|
0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
|
||||||
|
0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7e,0x7d,
|
||||||
|
0x7d,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,
|
||||||
|
0x7e,0x7e,0x7e,0x7f,0x7f,0x7f,0x7f,0x7f,
|
||||||
|
0x7f,0x7f,0x80,0x80,0x80,0x80,0x80,0x80,
|
||||||
|
};
|
25
reactos/ntoskrnl/dbg/brkpoint.c
Normal file
25
reactos/ntoskrnl/dbg/brkpoint.c
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
/*
|
||||||
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
|
* PROJECT: ReactOS kernel
|
||||||
|
* FILE: ntoskrnl/dbg/brkpoints.c
|
||||||
|
* PURPOSE: Handles breakpoints
|
||||||
|
* PROGRAMMER: David Welch (welch@mcmail.com)
|
||||||
|
* UPDATE HISTORY:
|
||||||
|
* Created 22/05/98
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* INCLUDES *****************************************************************/
|
||||||
|
|
||||||
|
#include <internal/kernel.h>
|
||||||
|
#include <internal/linkage.h>
|
||||||
|
#include <ddk/ntddk.h>
|
||||||
|
|
||||||
|
#include <internal/debug.h>
|
||||||
|
|
||||||
|
/* FUNCTIONS *****************************************************************/
|
||||||
|
|
||||||
|
VOID DbgBreakPoint(VOID)
|
||||||
|
{
|
||||||
|
__asm__("int $3\n\t");
|
||||||
|
}
|
||||||
|
|
33
reactos/ntoskrnl/ex/callback.c
Normal file
33
reactos/ntoskrnl/ex/callback.c
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
/*
|
||||||
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
|
* PROJECT: ReactOS kernel
|
||||||
|
* FILE: ntoskrnl/ex/callback.c
|
||||||
|
* PURPOSE: User callbacks
|
||||||
|
* PROGRAMMER: David Welch (welch@mcmail.com)
|
||||||
|
* UPDATE HISTORY:
|
||||||
|
* Created 22/05/98
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* INCLUDES *****************************************************************/
|
||||||
|
|
||||||
|
#include <internal/kernel.h>
|
||||||
|
#include <internal/linkage.h>
|
||||||
|
#include <ddk/ntddk.h>
|
||||||
|
|
||||||
|
#include <internal/debug.h>
|
||||||
|
|
||||||
|
/* FUNCTIONS *****************************************************************/
|
||||||
|
|
||||||
|
VOID ExCallUserCallBack(PVOID fn)
|
||||||
|
/*
|
||||||
|
* FUNCTION: Transfer control to a user callback
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
VOID NtReturnFromCallBack(VOID)
|
||||||
|
/*
|
||||||
|
* FUNCTION: Returns from a user callback
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
}
|
125
reactos/ntoskrnl/io/fs.c
Normal file
125
reactos/ntoskrnl/io/fs.c
Normal file
|
@ -0,0 +1,125 @@
|
||||||
|
/*
|
||||||
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
|
* PROJECT: ReactOS kernel
|
||||||
|
* FILE: ntoskrnl/io/fs.c
|
||||||
|
* PURPOSE: Filesystem functions
|
||||||
|
* PROGRAMMER: David Welch (welch@mcmail.com)
|
||||||
|
* UPDATE HISTORY:
|
||||||
|
* Created 22/05/98
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* INCLUDES *****************************************************************/
|
||||||
|
|
||||||
|
#include <internal/kernel.h>
|
||||||
|
#include <internal/linkage.h>
|
||||||
|
#include <ddk/ntddk.h>
|
||||||
|
|
||||||
|
#include <internal/debug.h>
|
||||||
|
|
||||||
|
/* TYPES *******************************************************************/
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
PDEVICE_OBJECT DeviceObject;
|
||||||
|
LIST_ENTRY Entry;
|
||||||
|
} FILE_SYSTEM_OBJECT;
|
||||||
|
|
||||||
|
/* GLOBALS ******************************************************************/
|
||||||
|
|
||||||
|
static KSPIN_LOCK FileSystemListLock;
|
||||||
|
static LIST_ENTRY FileSystemListHead;
|
||||||
|
|
||||||
|
/* FUNCTIONS *****************************************************************/
|
||||||
|
|
||||||
|
VOID IoInitFileSystemImplementation(VOID)
|
||||||
|
{
|
||||||
|
InitializeListHead(&FileSystemListHead);
|
||||||
|
KeInitializeSpinLock(&FileSystemListLock);
|
||||||
|
}
|
||||||
|
|
||||||
|
NTSTATUS IoAskFileSystemToMountDevice(PDEVICE_OBJECT DeviceObject)
|
||||||
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
NTSTATUS IoAskFileSystemToLoad(PDEVICE_OBJECT DeviceObject)
|
||||||
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
NTSTATUS IoTryToMountStorageDevice(PDEVICE_OBJECT DeviceObject)
|
||||||
|
/*
|
||||||
|
* FUNCTION: Trys to mount a storage device
|
||||||
|
* ARGUMENTS:
|
||||||
|
* DeviceObject = Device to try and mount
|
||||||
|
* RETURNS: Status
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
KIRQL oldlvl;
|
||||||
|
PLIST_ENTRY current_entry;
|
||||||
|
FILE_SYSTEM_OBJECT* current;
|
||||||
|
NTSTATUS Status;
|
||||||
|
|
||||||
|
KeAcquireSpinLock(&FileSystemListLock,&oldlvl);
|
||||||
|
current_entry = FileSystemListHead.Flink;
|
||||||
|
while (current_entry!=NULL)
|
||||||
|
{
|
||||||
|
current = CONTAINING_RECORD(current_entry,FILE_SYSTEM_OBJECT,Entry);
|
||||||
|
Status = IoAskFileSystemToMountDevice(DeviceObject);
|
||||||
|
switch (Status)
|
||||||
|
{
|
||||||
|
case STATUS_FS_DRIVER_REQUIRED:
|
||||||
|
KeReleaseSpinLock(&FileSystemListLock,oldlvl);
|
||||||
|
(void)IoAskFileSystemToLoad(DeviceObject);
|
||||||
|
KeAcquireSpinLock(&FileSystemListLock,&oldlvl);
|
||||||
|
current_entry = FileSystemListHead.Flink;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case STATUS_SUCCESS:
|
||||||
|
KeReleaseSpinLock(&FileSystemListLock,oldlvl);
|
||||||
|
return(STATUS_SUCCESS);
|
||||||
|
|
||||||
|
case STATUS_UNRECOGNIZED_VOLUME:
|
||||||
|
default:
|
||||||
|
current_entry = current_entry->Flink;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
KeReleaseSpinLock(&FileSystemListLock,oldlvl);
|
||||||
|
return(STATUS_UNRECOGNIZED_VOLUME);
|
||||||
|
}
|
||||||
|
|
||||||
|
VOID IoRegisterFileSystem(PDEVICE_OBJECT DeviceObject)
|
||||||
|
{
|
||||||
|
FILE_SYSTEM_OBJECT* fs;
|
||||||
|
|
||||||
|
fs=ExAllocatePool(NonPagedPool,sizeof(FILE_SYSTEM_OBJECT));
|
||||||
|
assert(fs!=NULL);
|
||||||
|
|
||||||
|
fs->DeviceObject = DeviceObject;
|
||||||
|
ExInterlockedInsertTailList(&FileSystemListHead,&fs->Entry,
|
||||||
|
&FileSystemListLock);
|
||||||
|
}
|
||||||
|
|
||||||
|
VOID IoUnregisterFileSystem(PDEVICE_OBJECT DeviceObject)
|
||||||
|
{
|
||||||
|
KIRQL oldlvl;
|
||||||
|
PLIST_ENTRY current_entry;
|
||||||
|
FILE_SYSTEM_OBJECT* current;
|
||||||
|
|
||||||
|
KeAcquireSpinLock(&FileSystemListLock,&oldlvl);
|
||||||
|
current_entry = FileSystemListHead.Flink;
|
||||||
|
while (current_entry!=NULL)
|
||||||
|
{
|
||||||
|
current = CONTAINING_RECORD(current_entry,FILE_SYSTEM_OBJECT,Entry);
|
||||||
|
if (current->DeviceObject == DeviceObject)
|
||||||
|
{
|
||||||
|
RemoveEntryFromList(&FileSystemListHead,current_entry);
|
||||||
|
KeReleaseSpinLock(&FileSystemListLock,oldlvl);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
current_entry = current_entry->Flink;
|
||||||
|
}
|
||||||
|
KeReleaseSpinLock(&FileSystemListLock,oldlvl);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
2837
reactos/ntoskrnl/kernel.sym
Normal file
2837
reactos/ntoskrnl/kernel.sym
Normal file
File diff suppressed because it is too large
Load diff
53
reactos/ntoskrnl/ldr/loader.c
Normal file
53
reactos/ntoskrnl/ldr/loader.c
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
/*
|
||||||
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
|
* PROJECT: ReactOS kernel
|
||||||
|
* FILE: ntoskrnl/ldr/loader.c
|
||||||
|
* PURPOSE: Loaders for PE executables
|
||||||
|
* PROGRAMMER: David Welch (welch@mcmail.com)
|
||||||
|
* UPDATE HISTORY:
|
||||||
|
* Created 22/05/98
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* INCLUDES *****************************************************************/
|
||||||
|
|
||||||
|
#include <internal/kernel.h>
|
||||||
|
#include <internal/linkage.h>
|
||||||
|
#include <ddk/ntddk.h>
|
||||||
|
|
||||||
|
#include <internal/debug.h>
|
||||||
|
#include "pe.h"
|
||||||
|
|
||||||
|
/* FUNCTIONS *****************************************************************/
|
||||||
|
|
||||||
|
NTSTATUS LdrProcessImage(HANDLE SectionHandle, PVOID BaseAddress)
|
||||||
|
{
|
||||||
|
PIMAGE_DOS_HEADER dos_hdr = (PIMAGE_DOS_HEADER)BaseAddress;
|
||||||
|
PIMAGE_NT_HEADERS hdr = (PIMAGE_NT_HEADERS)(BaseAddress
|
||||||
|
+ dos_hdr->e_lfanew);
|
||||||
|
PIMAGE_SECTION_HEADER sections = (PIMAGE_SECTION_HEADER)(BaseAddress
|
||||||
|
+ dos_hdr->e_lfanew
|
||||||
|
+ sizeof(IMAGE_NT_HEADERS));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
NTSTATUS LdrLoadDriver(PUNICODE_STRING FileName)
|
||||||
|
/*
|
||||||
|
* FUNCTION: Loads a PE executable into the current process
|
||||||
|
* ARGUMENTS:
|
||||||
|
* FileName = Driver to load
|
||||||
|
* RETURNS: Status
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
NTSTATUS LdrLoadImage(PUNICODE_STRING FileName)
|
||||||
|
/*
|
||||||
|
* FUNCTION: Loads a PE executable into the current process
|
||||||
|
* ARGUMENTS:
|
||||||
|
* FileName = File to load
|
||||||
|
* RETURNS: Status
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
}
|
25
reactos/ntoskrnl/rtl/return.c
Normal file
25
reactos/ntoskrnl/rtl/return.c
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
/*
|
||||||
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
|
* PROJECT: ReactOS kernel
|
||||||
|
* FILE: kernel/base/bug.c
|
||||||
|
* PURPOSE: Graceful system shutdown if a bug is detected
|
||||||
|
* PROGRAMMER: David Welch (welch@mcmail.com)
|
||||||
|
* UPDATE HISTORY:
|
||||||
|
* Created 22/05/98
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* INCLUDES *****************************************************************/
|
||||||
|
|
||||||
|
#include <internal/kernel.h>
|
||||||
|
#include <internal/linkage.h>
|
||||||
|
#include <ddk/ntddk.h>
|
||||||
|
|
||||||
|
#include <internal/debug.h>
|
||||||
|
|
||||||
|
/* FUNCTIONS *****************************************************************/
|
||||||
|
|
||||||
|
VOID RtlGetCallersAddress(PVOID* CallersAddress)
|
||||||
|
{
|
||||||
|
PULONG stk = (PULONG)(&CallersAddress);
|
||||||
|
*CallersAddress = stk[-1];
|
||||||
|
}
|
574
reactos/ntoskrnl/rtl/wstring.c
Normal file
574
reactos/ntoskrnl/rtl/wstring.c
Normal file
|
@ -0,0 +1,574 @@
|
||||||
|
/*
|
||||||
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
|
* PROJECT: ReactOS kernel
|
||||||
|
* FILE: ntoskrnl/ke/wstring.c
|
||||||
|
* PURPOSE: Wide string functions
|
||||||
|
* PROGRAMMER: David Welch (welch@mcmail.com)
|
||||||
|
* UPDATE HISTORY:
|
||||||
|
* Created 22/05/98
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* INCLUDES *****************************************************************/
|
||||||
|
|
||||||
|
#include <internal/kernel.h>
|
||||||
|
#include <internal/linkage.h>
|
||||||
|
#include <ddk/ntddk.h>
|
||||||
|
#include <wstring.h>
|
||||||
|
|
||||||
|
#include <internal/debug.h>
|
||||||
|
|
||||||
|
/* FUNCTIONS *****************************************************************/
|
||||||
|
|
||||||
|
wchar_t* wcsrchr(const wchar_t* str, wchar_t ch)
|
||||||
|
{
|
||||||
|
unsigned int len = 0;
|
||||||
|
while (str[len]!=((wchar_t)0))
|
||||||
|
{
|
||||||
|
len++;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (;len>0;len--)
|
||||||
|
{
|
||||||
|
if (str[len-1]==ch)
|
||||||
|
{
|
||||||
|
return(&str[len-1]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return(NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
wchar_t* wcschr(wchar_t* str, wchar_t ch)
|
||||||
|
{
|
||||||
|
while ((*str)!=((wchar_t)0))
|
||||||
|
{
|
||||||
|
if ((*str)==ch)
|
||||||
|
{
|
||||||
|
return(str);
|
||||||
|
}
|
||||||
|
str++;
|
||||||
|
}
|
||||||
|
return(NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
wchar_t * wcscpy(wchar_t * str1,const wchar_t * str2)
|
||||||
|
{
|
||||||
|
while ( (*str1)==(*str2) )
|
||||||
|
{
|
||||||
|
str1++;
|
||||||
|
str2++;
|
||||||
|
if ( (*str1)==((wchar_t)0) && (*str1)==((wchar_t)0) )
|
||||||
|
{
|
||||||
|
return(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return( (*str1) - (*str2) );
|
||||||
|
}
|
||||||
|
|
||||||
|
unsigned long wstrlen(PWSTR s)
|
||||||
|
{
|
||||||
|
WCHAR c=' ';
|
||||||
|
unsigned int len=0;
|
||||||
|
|
||||||
|
while(c!=0) {
|
||||||
|
c=*s;
|
||||||
|
s++;
|
||||||
|
len++;
|
||||||
|
};
|
||||||
|
s-=len;
|
||||||
|
|
||||||
|
return len-1;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline int wcscmp(const wchar_t* cs,const wchar_t * ct)
|
||||||
|
{
|
||||||
|
register int __res;
|
||||||
|
__asm__ __volatile__(
|
||||||
|
"cld\n"
|
||||||
|
"1:\tlodsw\n\t"
|
||||||
|
"scasw\n\t"
|
||||||
|
"jne 2f\n\t"
|
||||||
|
"testw %%eax,%%eax\n\t"
|
||||||
|
"jne 1b\n\t"
|
||||||
|
"xorl %%eax,%%eax\n\t"
|
||||||
|
"jmp 3f\n"
|
||||||
|
"2:\tsbbl %%eax,%%eax\n\t"
|
||||||
|
"orw $1,%%eax\n"
|
||||||
|
"3:"
|
||||||
|
:"=a" (__res):"S" (cs),"D" (ct):"esi","edi");
|
||||||
|
return __res;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef __MACHINE_STRING_FUNCTIONS
|
||||||
|
/*
|
||||||
|
* Include machine specific inline routines
|
||||||
|
*/
|
||||||
|
//#ifndef _I386_STRING_H_
|
||||||
|
//#define _I386_STRING_H_
|
||||||
|
|
||||||
|
/*
|
||||||
|
* On a 486 or Pentium, we are better off not using the
|
||||||
|
* byte string operations. But on a 386 or a PPro the
|
||||||
|
* byte string ops are faster than doing it by hand
|
||||||
|
* (MUCH faster on a Pentium).
|
||||||
|
*
|
||||||
|
* Also, the byte strings actually work correctly. Forget
|
||||||
|
* the i486 routines for now as they may be broken..
|
||||||
|
*/
|
||||||
|
|
||||||
|
#if FIXED_486_STRING && (CPU == 486 || CPU == 586)
|
||||||
|
#include <asm/string-486.h>
|
||||||
|
#else
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This string-include defines all string functions as inline
|
||||||
|
* functions. Use gcc. It also assumes ds=es=data space, this should be
|
||||||
|
* normal. Most of the string-functions are rather heavily hand-optimized,
|
||||||
|
* see especially wcstok,wcsstr,wcs[c]spn. They should work, but are not
|
||||||
|
* very easy to understand. Everything is done entirely within the register
|
||||||
|
* set, making the functions fast and clean. String instructions have been
|
||||||
|
* used through-out, making for "slightly" unclear code :-)
|
||||||
|
*
|
||||||
|
* Copyright (C) 1991, 1992 Linus Torvalds
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#define __HAVE_ARCH_WCSCPY
|
||||||
|
extern inline wchar_t * wcscpy(wchar_t * dest,const wchar_t *src)
|
||||||
|
{
|
||||||
|
__asm__ __volatile__(
|
||||||
|
"cld\n"
|
||||||
|
"1:\tlodsw\n\t"
|
||||||
|
"stosw\n\t"
|
||||||
|
"testw %%eax,%%eax\n\t"
|
||||||
|
"jne 1b"
|
||||||
|
: /* no output */
|
||||||
|
:"S" (src),"D" (dest):"esi","edi","eax","memory");
|
||||||
|
return dest;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define __HAVE_ARCH_WCSNCPY
|
||||||
|
inline wchar_t * wcsncpy(wchar_t * dest,const wchar_t *src,size_t count)
|
||||||
|
{
|
||||||
|
__asm__ __volatile__(
|
||||||
|
"cld\n"
|
||||||
|
"1:\tdecl %2\n\t"
|
||||||
|
"js 2f\n\t"
|
||||||
|
"lodsw\n\t"
|
||||||
|
"stosw\n\t"
|
||||||
|
"testw %%eax,%%eax\n\t"
|
||||||
|
"jne 1b\n\t"
|
||||||
|
"rep\n\t"
|
||||||
|
"stosw\n"
|
||||||
|
"2:"
|
||||||
|
: /* no output */
|
||||||
|
:"S" (src),"D" (dest),"c" (count):"esi","edi","eax","ecx","memory");
|
||||||
|
return dest;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define __HAVE_ARCH_WCSCAT
|
||||||
|
inline wchar_t * wcscat(wchar_t * dest,const wchar_t * src)
|
||||||
|
{
|
||||||
|
__asm__ __volatile__(
|
||||||
|
"cld\n\t"
|
||||||
|
"repnz\n\t"
|
||||||
|
"scasw\n\t"
|
||||||
|
"decl %1\n"
|
||||||
|
"decl %1\n\t"
|
||||||
|
"1:\tlodsw\n\t"
|
||||||
|
"stosw\n\t"
|
||||||
|
"testw %%eax,%%eax\n\t"
|
||||||
|
"jne 1b"
|
||||||
|
: /* no output */
|
||||||
|
:"S" (src),"D" (dest),"a" (0),"c" (0xffffffff):"esi","edi","eax","ecx");
|
||||||
|
return dest;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define __HAVE_ARCH_WCSNCAT
|
||||||
|
inline wchar_t * wcsncat(wchar_t * dest,const wchar_t * src,size_t count)
|
||||||
|
{
|
||||||
|
__asm__ __volatile__(
|
||||||
|
"cld\n\t"
|
||||||
|
"repnz\n\t"
|
||||||
|
"scasw\n\t"
|
||||||
|
"decl %1\n\t"
|
||||||
|
"movl %4,%3\n"
|
||||||
|
"decl %1\n\t"
|
||||||
|
"1:\tdecl %3\n\t"
|
||||||
|
"js 2f\n\t"
|
||||||
|
"lodsw\n\t"
|
||||||
|
"stosw\n\t"
|
||||||
|
"testw %%eax,%%eax\n\t"
|
||||||
|
"jne 1b\n"
|
||||||
|
"2:\txorl %2,%2\n\t"
|
||||||
|
"stosw"
|
||||||
|
: /* no output */
|
||||||
|
:"S" (src),"D" (dest),"a" (0),"c" (0xffffffff),"g" (count)
|
||||||
|
:"esi","edi","eax","ecx","memory");
|
||||||
|
return dest;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define __HAVE_ARCH_WCSCMP
|
||||||
|
|
||||||
|
#define __HAVE_ARCH_WCSNCMP
|
||||||
|
inline int wcsncmp(const wchar_t * cs,const wchar_t * ct,size_t count)
|
||||||
|
{
|
||||||
|
register int __res;
|
||||||
|
__asm__ __volatile__(
|
||||||
|
"cld\n"
|
||||||
|
"1:\tdecl %3\n\t"
|
||||||
|
"js 2f\n\t"
|
||||||
|
"lodsw\n\t"
|
||||||
|
"scasw\n\t"
|
||||||
|
"jne 3f\n\t"
|
||||||
|
"testw %%eax,%%eax\n\t"
|
||||||
|
"jne 1b\n"
|
||||||
|
"2:\txorl %%eax,%%eax\n\t"
|
||||||
|
"jmp 4f\n"
|
||||||
|
"3:\tsbbl %%eax,%%eax\n\t"
|
||||||
|
"orw $1,%%eax\n"
|
||||||
|
"4:"
|
||||||
|
:"=a" (__res):"S" (cs),"D" (ct),"c" (count):"esi","edi","ecx");
|
||||||
|
return __res;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define __HAVE_ARCH_WCSCHR
|
||||||
|
inline wchar_t * wcschr(const wchar_t * s, int c)
|
||||||
|
{
|
||||||
|
register wchar_t * __res;
|
||||||
|
__asm__ __volatile__(
|
||||||
|
"cld\n\t"
|
||||||
|
"movw %%eax,%%edx\n"
|
||||||
|
"1:\tlodsw\n\t"
|
||||||
|
"cmpw %%edx,%%eax\n\t"
|
||||||
|
"je 2f\n\t"
|
||||||
|
"testw %%eax,%%eax\n\t"
|
||||||
|
"jne 1b\n\t"
|
||||||
|
"movl $1,%1\n"
|
||||||
|
"2:\tmovl %1,%0\n\t"
|
||||||
|
"decl %0\n\t"
|
||||||
|
"decl %0\n\t"
|
||||||
|
:"=a" (__res):"S" (s),"0" (c):"esi");
|
||||||
|
return __res;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define __HAVE_ARCH_WCSRCHR
|
||||||
|
inline wchar_t * wcsrchr(const wchar_t * s, int c)
|
||||||
|
{
|
||||||
|
register wchar_t * __res;
|
||||||
|
__asm__ __volatile__(
|
||||||
|
"cld\n\t"
|
||||||
|
"movw %%eax,%%edx\n"
|
||||||
|
"1:\tlodsw\n\t"
|
||||||
|
"cmpw %%edx,%%eax\n\t"
|
||||||
|
"jne 2f\n\t"
|
||||||
|
"leal -2(%%esi),%0\n"
|
||||||
|
"2:\ttestw %%eax,%%eax\n\t"
|
||||||
|
"jne 1b"
|
||||||
|
:"=d" (__res):"0" (0),"S" (s),"a" (c):"eax","esi");
|
||||||
|
return __res;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define __HAVE_ARCH_WCSSPN
|
||||||
|
inline size_t wcsspn(const wchar_t * cs, const wchar_t * ct)
|
||||||
|
{
|
||||||
|
register wchar_t * __res;
|
||||||
|
__asm__ __volatile__(
|
||||||
|
"cld\n\t"
|
||||||
|
"movl %4,%%edi\n\t"
|
||||||
|
"repne\n\t"
|
||||||
|
"scasw\n\t"
|
||||||
|
"notl %%ecx\n\t"
|
||||||
|
"decl %%ecx\n\t"
|
||||||
|
"movl %%ecx,%%edx\n"
|
||||||
|
"1:\tlodsw\n\t"
|
||||||
|
"testw %%eax,%%eax\n\t"
|
||||||
|
"je 2f\n\t"
|
||||||
|
"movl %4,%%edi\n\t"
|
||||||
|
"movl %%edx,%%ecx\n\t"
|
||||||
|
"repne\n\t"
|
||||||
|
"scasb\n\t"
|
||||||
|
"je 1b\n"
|
||||||
|
"2:\tdecl %0"
|
||||||
|
:"=S" (__res):"a" (0),"c" (0xffffffff),"0" (cs),"g" (ct)
|
||||||
|
:"eax","ecx","edx","edi");
|
||||||
|
return __res-cs;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define __HAVE_ARCH_WCSCSPN
|
||||||
|
inline size_t wcscspn(const wchar_t * cs, const wchar_t * ct)
|
||||||
|
{
|
||||||
|
register wchar_t * __res;
|
||||||
|
__asm__ __volatile__(
|
||||||
|
"cld\n\t"
|
||||||
|
"movl %4,%%edi\n\t"
|
||||||
|
"repne\n\t"
|
||||||
|
"scasw\n\t"
|
||||||
|
"notl %%ecx\n\t"
|
||||||
|
"decl %%ecx\n\t"
|
||||||
|
"movl %%ecx,%%edx\n"
|
||||||
|
"1:\tlodsw\n\t"
|
||||||
|
"testw %%eax,%%eax\n\t"
|
||||||
|
"je 2f\n\t"
|
||||||
|
"movl %4,%%edi\n\t"
|
||||||
|
"movl %%edx,%%ecx\n\t"
|
||||||
|
"repne\n\t"
|
||||||
|
"scasw\n\t"
|
||||||
|
"jne 1b\n"
|
||||||
|
"2:\tdecl %0"
|
||||||
|
:"=S" (__res):"a" (0),"c" (0xffffffff),"0" (cs),"g" (ct)
|
||||||
|
:"eax","ecx","edx","edi");
|
||||||
|
return __res-cs;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define __HAVE_ARCH_STRPBRK
|
||||||
|
inline wchar_t * wcspbrk(const wchar_t * cs,const wchar_t * ct)
|
||||||
|
{
|
||||||
|
register wchar_t * __res;
|
||||||
|
__asm__ __volatile__(
|
||||||
|
"cld\n\t"
|
||||||
|
"movl %4,%%edi\n\t"
|
||||||
|
"repne\n\t"
|
||||||
|
"scasw\n\t"
|
||||||
|
"notl %%ecx\n\t"
|
||||||
|
"decl %%ecx\n\t"
|
||||||
|
"movl %%ecx,%%edx\n"
|
||||||
|
"1:\tlodsw\n\t"
|
||||||
|
"testw %%eax,%%eax\n\t"
|
||||||
|
"je 2f\n\t"
|
||||||
|
"movl %4,%%edi\n\t"
|
||||||
|
"movl %%edx,%%ecx\n\t"
|
||||||
|
"repne\n\t"
|
||||||
|
"scasw\n\t"
|
||||||
|
"jne 1b\n\t"
|
||||||
|
"decl %0\n\t"
|
||||||
|
"jmp 3f\n"
|
||||||
|
"2:\txorl %0,%0\n"
|
||||||
|
"3:"
|
||||||
|
:"=S" (__res):"a" (0),"c" (0xffffffff),"0" (cs),"g" (ct)
|
||||||
|
:"eax","ecx","edx","edi");
|
||||||
|
return __res;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define __HAVE_ARCH_WCSSTR
|
||||||
|
inline wchar_t * wcsstr(const wchar_t * cs,const wchar_t * ct)
|
||||||
|
{
|
||||||
|
register wchar_t * __res;
|
||||||
|
__asm__ __volatile__(
|
||||||
|
"cld\n\t" \
|
||||||
|
"movl %4,%%edi\n\t"
|
||||||
|
"repne\n\t"
|
||||||
|
"scasw\n\t"
|
||||||
|
"notl %%ecx\n\t"
|
||||||
|
"decl %%ecx\n\t" /* NOTE! This also sets Z if searchstring='' */
|
||||||
|
"movl %%ecx,%%edx\n"
|
||||||
|
"1:\tmovl %4,%%edi\n\t"
|
||||||
|
"movl %%esi,%%eax\n\t"
|
||||||
|
"movl %%edx,%%ecx\n\t"
|
||||||
|
"repe\n\t"
|
||||||
|
"cmpsw\n\t"
|
||||||
|
"je 2f\n\t" /* also works for empty string, see above */
|
||||||
|
"xchgl %%eax,%%esi\n\t"
|
||||||
|
"incl %%esi\n\t"
|
||||||
|
"cmpw $0,-1(%%eax)\n\t"
|
||||||
|
"jne 1b\n\t"
|
||||||
|
"xorl %%eax,%%eax\n\t"
|
||||||
|
"2:"
|
||||||
|
:"=a" (__res):"0" (0),"c" (0xffffffff),"S" (cs),"g" (ct)
|
||||||
|
:"ecx","edx","edi","esi");
|
||||||
|
return __res;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#define __HAVE_ARCH_WCSLEN
|
||||||
|
inline size_t wcslen(const wchar_t * s)
|
||||||
|
{
|
||||||
|
register int __res;
|
||||||
|
__asm__ __volatile__(
|
||||||
|
"cld\n\t"
|
||||||
|
"repne\n\t"
|
||||||
|
"scasw\n\t"
|
||||||
|
"notl %0\n\t"
|
||||||
|
"decl %0"
|
||||||
|
:"=c" (__res):"D" (s),"a" (0),"0" (0xffffffff):"edi");
|
||||||
|
return __res;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#define __HAVE_ARCH_WCSTOK
|
||||||
|
|
||||||
|
|
||||||
|
inline wchar_t * wcstok(wchar_t * s,const wchar_t * ct)
|
||||||
|
{
|
||||||
|
|
||||||
|
register wchar_t * __res;
|
||||||
|
__asm__ __volatile__(
|
||||||
|
"testl %1,%1\n\t"
|
||||||
|
"jne 1f\n\t"
|
||||||
|
"testl %0,%0\n\t"
|
||||||
|
"je 8f\n\t"
|
||||||
|
"movl %0,%1\n"
|
||||||
|
"1:\txorl %0,%0\n\t"
|
||||||
|
"movl $-1,%%ecx\n\t"
|
||||||
|
"xorl %%eax,%%eax\n\t"
|
||||||
|
"cld\n\t"
|
||||||
|
"movl %4,%%edi\n\t"
|
||||||
|
"repnz\n\t"
|
||||||
|
"scasw\n\t"
|
||||||
|
"notl %%ecx\n\t"
|
||||||
|
"decl %%ecx\n\t"
|
||||||
|
"decl %%ecx\n\t"
|
||||||
|
"je 7f\n\t" /* empty delimiter-string */
|
||||||
|
"movl %%ecx,%%edx\n"
|
||||||
|
"2:\tlodsw\n\t"
|
||||||
|
"testw %%eax,%%eax\n\t"
|
||||||
|
"je 7f\n\t"
|
||||||
|
"movl %4,%%edi\n\t"
|
||||||
|
"movl %%edx,%%ecx\n\t"
|
||||||
|
"repne\n\t"
|
||||||
|
"scasw\n\t"
|
||||||
|
"je 2b\n\t"
|
||||||
|
"decl %1\n\t"
|
||||||
|
"decl %1\n\t"
|
||||||
|
"cmpw $0,(%1)\n\t"
|
||||||
|
"je 7f\n\t"
|
||||||
|
"movl %1,%0\n"
|
||||||
|
"3:\tlodsw\n\t"
|
||||||
|
"testw %%eax,%%eax\n\t"
|
||||||
|
"je 5f\n\t"
|
||||||
|
"movl %4,%%edi\n\t"
|
||||||
|
"movl %%edx,%%ecx\n\t"
|
||||||
|
"repne\n\t"
|
||||||
|
"scasw\n\t"
|
||||||
|
"jne 3b\n\t"
|
||||||
|
"decl %1\n\t"
|
||||||
|
"decl %1\n\t"
|
||||||
|
"decl %1\n\t"
|
||||||
|
"decl %1\n\t"
|
||||||
|
"cmpw $0,(%1)\n\t"
|
||||||
|
"je 5f\n\t"
|
||||||
|
"movw $0,(%1)\n\t"
|
||||||
|
"incl %1\n\t"
|
||||||
|
"incl %1\n\t"
|
||||||
|
"jmp 6f\n"
|
||||||
|
"5:\txorl %1,%1\n"
|
||||||
|
"6:\tcmpw $0,(%0)\n\t"
|
||||||
|
"jne 7f\n\t"
|
||||||
|
"xorl %0,%0\n"
|
||||||
|
"7:\ttestl %0,%0\n\t"
|
||||||
|
"jne 8f\n\t"
|
||||||
|
"movl %0,%1\n"
|
||||||
|
"8:"
|
||||||
|
:"=b" (__res),"=S" (___wcstok)
|
||||||
|
:"0" (___wcstok),"1" (s),"g" (ct)
|
||||||
|
:"eax","ecx","edx","edi","memory");
|
||||||
|
|
||||||
|
return __res;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#define __HAVE_ARCH_WCSNNLEN
|
||||||
|
inline size_t wcsnlen(const wchar_t * s, size_t count)
|
||||||
|
{
|
||||||
|
register int __res;
|
||||||
|
__asm__ __volatile__(
|
||||||
|
"movl %1,%0\n\t"
|
||||||
|
"jmp 2f\n"
|
||||||
|
"1:\tcmpw $0,(%0)\n\t"
|
||||||
|
"je 3f\n\t"
|
||||||
|
"incl %0\n"
|
||||||
|
"2:\tdecl %2\n\t"
|
||||||
|
"cmpl $-1,%2\n\t"
|
||||||
|
"jne 1b\n"
|
||||||
|
"3:\tsubl %1,%0"
|
||||||
|
:"=a" (__res)
|
||||||
|
:"c" (s),"d" (count)
|
||||||
|
:"edx");
|
||||||
|
return __res;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#define __HAVE_ARCH_WCSICMP
|
||||||
|
inline int wcsicmp(const wchar_t* cs,const wchar_t * ct)
|
||||||
|
{
|
||||||
|
register int __res;
|
||||||
|
|
||||||
|
|
||||||
|
__asm__ __volatile__(
|
||||||
|
"cld\n"
|
||||||
|
"1:\tmovw (%%esi), %%eax\n\t"
|
||||||
|
"movw (%%edi), %%edx \n\t"
|
||||||
|
"cmpw $0x5A, %%eax\n\t"
|
||||||
|
"ja 2f\t\n"
|
||||||
|
"cmpw $0x40, %%eax\t\n"
|
||||||
|
"jbe 2f\t\n"
|
||||||
|
"addw $0x20, %%eax\t\n"
|
||||||
|
"2:\t cmpw $0x5A, %%edx\t\n"
|
||||||
|
"ja 3f\t\n"
|
||||||
|
"cmpw $0x40, %%edx\t\n"
|
||||||
|
"jbe 3f\t\n"
|
||||||
|
"addw $0x20, %%edx\t\n"
|
||||||
|
"3:\t inc %%esi\t\n"
|
||||||
|
"inc %%esi\t\n"
|
||||||
|
"inc %%edi\t\n"
|
||||||
|
"inc %%edi\t\n"
|
||||||
|
"cmpw %%eax, %%edx\t\n"
|
||||||
|
"jne 4f\n\t"
|
||||||
|
"cmpw $00, %%eax\n\t"
|
||||||
|
"jne 1b\n\t"
|
||||||
|
"xorl %%eax,%%eax\n\t"
|
||||||
|
"jmp 5f\n"
|
||||||
|
"4:\tsbbl %%eax,%%eax\n\t"
|
||||||
|
"orw $1,%%eax\n"
|
||||||
|
"5:"
|
||||||
|
:"=a" (__res):"S" (cs),"D" (ct):"esi","edi");
|
||||||
|
|
||||||
|
return __res;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#define __HAVE_ARCH_WCSNICMP
|
||||||
|
inline int wcsnicmp(const wchar_t* cs,const wchar_t * ct, size_t count)
|
||||||
|
{
|
||||||
|
register int __res;
|
||||||
|
|
||||||
|
|
||||||
|
__asm__ __volatile__(
|
||||||
|
"cld\n"
|
||||||
|
"1:\t decl %3\n\t"
|
||||||
|
"js 6f\n\t"
|
||||||
|
"movw (%%esi), %%eax\n\t"
|
||||||
|
"movw (%%edi), %%edx \n\t"
|
||||||
|
"cmpw $0x5A, %%eax\n\t"
|
||||||
|
"ja 2f\t\n"
|
||||||
|
"cmpw $0x40, %%eax\t\n"
|
||||||
|
"jbe 2f\t\n"
|
||||||
|
"addw $0x20, %%eax\t\n"
|
||||||
|
"2:\t cmpw $0x5A, %%edx\t\n"
|
||||||
|
"ja 3f\t\n"
|
||||||
|
"cmpw $0x40, %%edx\t\n"
|
||||||
|
"jbe 3f\t\n"
|
||||||
|
"addw $0x20, %%edx\t\n"
|
||||||
|
"3:\t inc %%esi\t\n"
|
||||||
|
"inc %%esi\t\n"
|
||||||
|
"inc %%edi\t\n"
|
||||||
|
"inc %%edi\t\n"
|
||||||
|
"cmpw %%eax, %%edx\t\n"
|
||||||
|
"jne 4f\n\t"
|
||||||
|
"cmpw $00, %%eax\n\t"
|
||||||
|
"jne 1b\n\t"
|
||||||
|
"6:xorl %%eax,%%eax\n\t"
|
||||||
|
"jmp 5f\n"
|
||||||
|
"4:\tsbbl %%eax,%%eax\n\t"
|
||||||
|
"orw $1,%%eax\n"
|
||||||
|
"5:"
|
||||||
|
:"=a" (__res):"S" (cs),"D" (ct), "c" (count):"esi","edi", "ecx");
|
||||||
|
|
||||||
|
|
||||||
|
return __res;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
#endif
|
111
reactos/ntoskrnl/tst/sshell.c
Normal file
111
reactos/ntoskrnl/tst/sshell.c
Normal file
|
@ -0,0 +1,111 @@
|
||||||
|
/*
|
||||||
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
|
* PROJECT: ReactOS kernel
|
||||||
|
* FILE: ntoskrnl/tst/sshell.c
|
||||||
|
* PURPOSE: Simple kernel mode shell
|
||||||
|
* PROGRAMMER: David Welch (welch@mcmail.com)
|
||||||
|
* UPDATE HISTORY:
|
||||||
|
* 28/05/98: Created
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* INCLUDES *****************************************************************/
|
||||||
|
|
||||||
|
#include <windows.h>
|
||||||
|
#include <ddk/ntddk.h>
|
||||||
|
#include <internal/kernel.h>
|
||||||
|
#include <internal/string.h>
|
||||||
|
|
||||||
|
#define NDEBUG
|
||||||
|
#include <internal/debug.h>
|
||||||
|
|
||||||
|
#include <in.h>
|
||||||
|
|
||||||
|
int ShellChangeDir(char* args);
|
||||||
|
int ShellListDir(char* args);
|
||||||
|
|
||||||
|
/* GLOBALS ******************************************************************/
|
||||||
|
|
||||||
|
static HANDLE CurrentDirHandle;
|
||||||
|
static UNICODE_STRING CurrentDirName;
|
||||||
|
static HANDLE KeyboardHandle;
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
char* name;
|
||||||
|
int (*fn)(char* args);
|
||||||
|
} command;
|
||||||
|
|
||||||
|
command commands[]=
|
||||||
|
{
|
||||||
|
{"cd",ShellChangeDir},
|
||||||
|
{"dir",ShellListDir},
|
||||||
|
{NULL,NULL},
|
||||||
|
};
|
||||||
|
|
||||||
|
/* FUNCTIONS ****************************************************************/
|
||||||
|
|
||||||
|
int ShellChangeDir(char* args)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
int ShellListDir(char* args)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
VOID ShellDisplayPrompt()
|
||||||
|
{
|
||||||
|
printk("%w# ",CurrentDirName->Buffer);
|
||||||
|
}
|
||||||
|
|
||||||
|
VOID ShellGetCommand(char* cmd)
|
||||||
|
{
|
||||||
|
do
|
||||||
|
{
|
||||||
|
ZwReadFile(hfile,NULL,NULL,NULL,NULL,cmd,1,0,0);
|
||||||
|
printk("%c",*cmd);
|
||||||
|
cmd++;
|
||||||
|
} while((*cmd)!='\n');
|
||||||
|
*cmd=0;
|
||||||
|
}
|
||||||
|
|
||||||
|
VOID ShellProcessCommand(char* cmd)
|
||||||
|
{
|
||||||
|
unsigned int i=0;
|
||||||
|
while (commands[i].name!=NULL)
|
||||||
|
{
|
||||||
|
if (strncmp(cmd,commands[i].name,strlen(commands[i].name))==0)
|
||||||
|
{
|
||||||
|
commands[i].fn(cmd+strlen(commands[i].name));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
NTSTATUS TstShell(VOID)
|
||||||
|
{
|
||||||
|
ANSI_STRING astr;
|
||||||
|
ANSI_STRING afilename;
|
||||||
|
UNICODE_STRING ufilename;
|
||||||
|
OBJECT_ATTRIBUTES attr;
|
||||||
|
char cmd[255];
|
||||||
|
|
||||||
|
RtlInitAnsiString(&astr,"\\");
|
||||||
|
RtlAnsiStringToUnicodeString(&CurrentDirName,&astr,TRUE);
|
||||||
|
|
||||||
|
RtlInitAnsiString(&afilename,"\\");
|
||||||
|
RtlAnsiStringToUnicodeString(&ufilename,&afilename,TRUE);
|
||||||
|
InitializeObjectAttributes(&attr,&ufilename,0,NULL,NULL);
|
||||||
|
ZwOpenDirectoryObject(&CurrentDirHandle,0,&attr);
|
||||||
|
|
||||||
|
RtlInitAnsiString(&afilename,"\\Device\\Keyboard");
|
||||||
|
RtlAnsiStringToUnicodeString(&ufilename,&afilename,TRUE);
|
||||||
|
InitializeObjectAttributes(&attr,&ufilename,0,NULL,NULL);
|
||||||
|
ZwOpenFile(&KeyboardHandle,0,&attr,NULL,0,0);
|
||||||
|
|
||||||
|
|
||||||
|
for(;;)
|
||||||
|
{
|
||||||
|
ShellDisplayPrompt();
|
||||||
|
ShellGetCommand(cmd);
|
||||||
|
ShellProcessCommand(cmd);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue