mirror of
https://github.com/reactos/reactos.git
synced 2025-07-24 18:54:00 +00:00
- Start rosapps rearrange and cleanup process.
svn path=/trunk/; revision=34303
This commit is contained in:
parent
0a0a13a41c
commit
2012315e5a
1206 changed files with 81 additions and 81 deletions
325
rosapps/applications/sysutils/utils/pice/module/utils.h
Normal file
325
rosapps/applications/sysutils/utils/pice/module/utils.h
Normal file
|
@ -0,0 +1,325 @@
|
|||
/*++
|
||||
|
||||
Copyright (c) 1998-2001 Klaus P. Gerlicher
|
||||
|
||||
Module Name:
|
||||
|
||||
utils.h
|
||||
|
||||
Abstract:
|
||||
|
||||
HEADER for utils.c
|
||||
|
||||
Environment:
|
||||
|
||||
LINUX 2.2.X
|
||||
Kernel mode only
|
||||
|
||||
Author:
|
||||
|
||||
Klaus P. Gerlicher
|
||||
|
||||
Revision History:
|
||||
|
||||
15-Nov-2000: general cleanup of source files
|
||||
|
||||
Copyright notice:
|
||||
|
||||
This file may be distributed under the terms of the GNU Public License.
|
||||
|
||||
--*/
|
||||
#include <stdarg.h>
|
||||
#include "../../../../ntoskrnl/include/internal/ps.h"
|
||||
#define __STR(x) #x
|
||||
#define STR(x) __STR(x)
|
||||
|
||||
typedef enum {
|
||||
kbDE,
|
||||
kbUS,
|
||||
kbDK,
|
||||
kbMaximum
|
||||
} KeyboardLayout;
|
||||
|
||||
// scancode to ASCII conversion
|
||||
typedef struct tagSCANTOASCII
|
||||
{
|
||||
UCHAR s; // 0 terminates the table
|
||||
UCHAR a;
|
||||
}SCANTOASCII, *PSCANTOASCII;
|
||||
|
||||
typedef struct tagKEYBOARD_LAYOUT
|
||||
{
|
||||
LPSTR name;
|
||||
PSCANTOASCII normal;
|
||||
PSCANTOASCII shifted;
|
||||
PSCANTOASCII alted;
|
||||
} KEYBOARD_LAYOUT, *PKEYBOARD_LAYOUT;
|
||||
|
||||
extern PKEYBOARD_LAYOUT CurrentKeyboard;
|
||||
|
||||
typedef struct _FRAME
|
||||
{
|
||||
ULONG error_code;
|
||||
ULONG eip;
|
||||
ULONG cs;
|
||||
ULONG eflags;
|
||||
}FRAME;
|
||||
|
||||
#define SHOW_FIELD_BYTE(ptr,field,wait)\
|
||||
{\
|
||||
if(wait && WaitForKey()==FALSE)\
|
||||
return TRUE;\
|
||||
PICE_sprintf(tempCmd,#field" = %.2x\n",ptr->##field);\
|
||||
Print(OUTPUT_WINDOW,tempCmd);\
|
||||
}
|
||||
|
||||
#define SHOW_FIELD_WORD(ptr,field,wait)\
|
||||
{\
|
||||
if(wait && WaitForKey()==FALSE)\
|
||||
return TRUE;\
|
||||
PICE_sprintf(tempCmd,#field" = %.4x\n",ptr->##field);\
|
||||
Print(OUTPUT_WINDOW,tempCmd);\
|
||||
}
|
||||
|
||||
#define SHOW_FIELD_DWORD(ptr,field,wait)\
|
||||
{\
|
||||
if(wait && WaitForKey()==FALSE)\
|
||||
return TRUE;\
|
||||
PICE_sprintf(tempCmd,#field" = %.8x\n",ptr->##field);\
|
||||
Print(OUTPUT_WINDOW,tempCmd);\
|
||||
}
|
||||
|
||||
#define SHOW_FIELD_SEG_OFS(ptr,field1,field2,wait)\
|
||||
{\
|
||||
if(wait && WaitForKey()==FALSE)\
|
||||
return TRUE;\
|
||||
PICE_sprintf(tempCmd,#field1":"#field2" = %.4x:%.8x\n",ptr->##field1,ptr->##field2);\
|
||||
Print(OUTPUT_WINDOW,tempCmd);\
|
||||
}
|
||||
|
||||
typedef struct _PCI_NUMBER
|
||||
{
|
||||
union {
|
||||
struct
|
||||
{
|
||||
ULONG res2 : 2;
|
||||
ULONG reg : 6; // 64 regs per function
|
||||
ULONG func : 3; // 8 functions per device
|
||||
ULONG dev : 5; // 32 device per bus
|
||||
ULONG bus : 8; // 256 buses
|
||||
ULONG res1 : 7;
|
||||
ULONG ce : 1; // 1 to enable
|
||||
}bits;
|
||||
ULONG AsUlong;
|
||||
}u;
|
||||
}PCI_NUMBER;
|
||||
/*
|
||||
typedef struct _PCI_COMMON_CONFIG {
|
||||
USHORT VendorID; // (ro)
|
||||
USHORT DeviceID; // (ro)
|
||||
USHORT Command; // Device control
|
||||
USHORT Status;
|
||||
UCHAR RevisionID; // (ro)
|
||||
UCHAR ProgIf; // (ro)
|
||||
UCHAR SubClass; // (ro)
|
||||
UCHAR BaseClass; // (ro)
|
||||
UCHAR CacheLineSize; // (ro+)
|
||||
UCHAR LatencyTimer; // (ro+)
|
||||
UCHAR HeaderType; // (ro)
|
||||
UCHAR BIST; // Built in self test
|
||||
ULONG BaseAddresses[6];
|
||||
ULONG CIS;
|
||||
USHORT SubVendorID;
|
||||
USHORT SubSystemID;
|
||||
ULONG ROMBaseAddress;
|
||||
UCHAR CapabilitiesPtr;
|
||||
UCHAR Reserved1[3];
|
||||
ULONG Reserved2;
|
||||
UCHAR InterruptLine; //
|
||||
UCHAR InterruptPin; // (ro)
|
||||
UCHAR MinimumGrant; // (ro)
|
||||
UCHAR MaximumLatency; // (ro)
|
||||
}PCI_COMMON_CONFIG;
|
||||
*/
|
||||
|
||||
typedef struct tagPageDir
|
||||
{
|
||||
ULONG P :1;
|
||||
ULONG RW :1;
|
||||
ULONG US :1;
|
||||
ULONG PWT :1;
|
||||
ULONG PCD :1;
|
||||
ULONG A :1;
|
||||
ULONG dummy :1;
|
||||
ULONG PS :1;
|
||||
ULONG G :1;
|
||||
ULONG Avail :3;
|
||||
ULONG PTBase :20;
|
||||
}PAGEDIR,*PPAGEDIR;
|
||||
|
||||
typedef struct tagGdt
|
||||
{
|
||||
ULONG Limit_15_0 :16;
|
||||
ULONG Base_15_0 :16;
|
||||
ULONG Base_23_16 :8;
|
||||
ULONG SegType :4;
|
||||
ULONG DescType :1;
|
||||
ULONG Dpl :2;
|
||||
ULONG Present :1;
|
||||
ULONG Limit_19_16 :4;
|
||||
ULONG Avl :1;
|
||||
ULONG Reserved :1;
|
||||
ULONG DefOp :1;
|
||||
ULONG Gran :1;
|
||||
ULONG Base_31_24 :8;
|
||||
}GDT,*PGDT;
|
||||
|
||||
typedef struct tagIdt
|
||||
{
|
||||
ULONG Offset_15_0 :16;
|
||||
ULONG Selector :16;
|
||||
ULONG Reserved :8;
|
||||
ULONG DescType :5;
|
||||
ULONG Dpl :2;
|
||||
ULONG Present :1;
|
||||
ULONG Offset_31_16 :16;
|
||||
}IDT,*PIDT;
|
||||
|
||||
typedef struct tagDESCRIPTOR
|
||||
{
|
||||
USHORT Cpl :2; // current privilege level
|
||||
USHORT Ti :1; // table index (GDT=0 LDT=1)
|
||||
USHORT Val :13; // index into table
|
||||
}DESCRIPTOR,*PDESCRIPTOR;
|
||||
|
||||
PKEYBOARD_LAYOUT GetKeyboardLayout();
|
||||
PKEYBOARD_LAYOUT SetKeyboardLayoutByName(LPSTR Name);
|
||||
void PICE_memset(void* p,unsigned char c,int sz);
|
||||
void PICE_memcpy(void* t,void* s,int sz);
|
||||
char *PICE_strrev(char *);
|
||||
ULONG PICE_strcmp(char* s1,char* s2);
|
||||
ULONG PICE_strcmpi(char* s1,char* s2);
|
||||
ULONG PICE_strncmpi(char* s1,char* s2,ULONG len);
|
||||
USHORT PICE_strlen(const char* s);
|
||||
char* PICE_strcat(char* s1,char* s2);
|
||||
BOOLEAN PICE_isprint(char c);
|
||||
char* PICE_strcpy(char* s1,char* s2);
|
||||
char* PICE_strncpy(char* s1,char* s2,int len);
|
||||
char* PICE_strchr(char* s,char c);
|
||||
int PICE_isdigit( int c );
|
||||
int PICE_isxdigit( int c );
|
||||
int PICE_islower( int c );
|
||||
int PICE_isalpha( int c );
|
||||
|
||||
int PICE_sprintf(char * buf, const char *fmt, ...);
|
||||
int PICE_vsprintf(char *buf, const char *fmt, va_list args);
|
||||
|
||||
BOOLEAN IsAddressValid(ULONG Addr);
|
||||
BOOLEAN IsAddressWriteable(ULONG Addr);
|
||||
BOOLEAN SetAddressWriteable(ULONG address,BOOLEAN bSet);
|
||||
BOOLEAN IsRangeValid(ULONG addr,ULONG Length);
|
||||
void IntelStackWalk(ULONG pc,ULONG ebp,ULONG esp);
|
||||
|
||||
ULONG ReadPhysMem(ULONG Address,ULONG ulSize);
|
||||
void WritePhysMem(ULONG Address,ULONG Datum,ULONG ulSize);
|
||||
|
||||
BOOLEAN IsRetAtEIP(void);
|
||||
BOOLEAN IsCallInstrAtEIP(void);
|
||||
|
||||
ULONG GetLinearAddress(USHORT Segment,ULONG Offset);
|
||||
|
||||
#define OUTPUT_BUFFER_FULL 0x01
|
||||
#define INPUT_BUFFER_FULL 0x02
|
||||
#define MOUSE_OUTPUT_BUFFER_FULL 0x20
|
||||
|
||||
void ShowStoppedMsg(void);
|
||||
void ShowRunningMsg(void);
|
||||
|
||||
void SetHardwareBreakPoints(void);
|
||||
void SetHardwareBreakPoint(ULONG ulAddress,ULONG ulReg);
|
||||
|
||||
// this should be in disasm.h but someone misused the header files
|
||||
BOOLEAN Disasm(PULONG pOffset, PUCHAR pchDst);
|
||||
//////////////////////////////////////////////////////////////////
|
||||
|
||||
//segments defined in \include\napi\i386\segment.h
|
||||
#define GLOBAL_CODE_SEGMENT (KERNEL_CS)
|
||||
#define GLOBAL_DATA_SEGMENT (KERNEL_DS)
|
||||
|
||||
//#define OVR_CS .byte 0x2e
|
||||
//#define OVR_FS .byte 0x64
|
||||
|
||||
void DisplayRegs(void);
|
||||
void SaveOldRegs(void);
|
||||
|
||||
BOOLEAN CheckLoadAbort(void);
|
||||
|
||||
UCHAR KeyboardGetKeyPolled(void);
|
||||
void KeyboardFlushKeyboardQueue(void);
|
||||
|
||||
#define _PAGE_PRESENT 0x001
|
||||
#define _PAGE_RW 0x002
|
||||
#define _PAGE_USER 0x004
|
||||
#define _PAGE_PWT 0x008
|
||||
#define _PAGE_PCD 0x010
|
||||
#define _PAGE_ACCESSED 0x020
|
||||
#define _PAGE_DIRTY 0x040
|
||||
#define _PAGE_PSE 0x080
|
||||
#define _PAGE_4M _PAGE_PSE
|
||||
#define _PAGE_SIZE 0x1000
|
||||
|
||||
|
||||
UCHAR AsciiFromScan(UCHAR s);
|
||||
UCHAR AsciiToScan(UCHAR s);
|
||||
|
||||
void outportb(PUCHAR port,UCHAR data);
|
||||
UCHAR inportb(PUCHAR port);
|
||||
|
||||
void outb_p(UCHAR data, PUCHAR port);
|
||||
UCHAR inb_p(PUCHAR port);
|
||||
|
||||
VOID outl(ULONG l, PULONG port);
|
||||
ULONG inl(PULONG port);
|
||||
|
||||
|
||||
#define save_flags(x) __asm__ __volatile__("pushfl ; popl %0":"=g" (x): /* no input */)
|
||||
#define restore_flags(x) __asm__ __volatile__("pushl %0 ; popfl": /* no output */ :"g" (x):"memory", "cc")
|
||||
#define cli() __asm__ __volatile__("cli": : :"memory")
|
||||
#define sti() __asm__ __volatile__("sti": : :"memory")
|
||||
|
||||
#ifdef NDEBUG
|
||||
#define ASSERT(x)
|
||||
#else
|
||||
#define ASSERT(x) if (!(x)) { DbgPrint("Assertion "#x" failed at %s:%d\n", __FILE__, __LINE__); KeBugCheck(0); }
|
||||
#endif
|
||||
|
||||
//extern unsigned long sys_call_table[];
|
||||
|
||||
//struct mm_struct *GetInitMm(void);
|
||||
|
||||
PMADDRESS_SPACE my_init_mm;
|
||||
LIST_ENTRY* pPsProcessListHead;
|
||||
|
||||
void EnablePassThrough(void);
|
||||
|
||||
#define PAGEDPOOL (1)
|
||||
#define NONPAGEDPOOL (0)
|
||||
|
||||
void * PICE_malloc( size_t numBytes, BOOLEAN fromPaged );
|
||||
void PICE_free( void* p );
|
||||
|
||||
HANDLE PICE_open (LPCWSTR lpPathName, int iReadWrite);
|
||||
long PICE_read(HANDLE hFile, LPVOID lpBuffer, long lBytes);
|
||||
int PICE_close (HANDLE hFile);
|
||||
size_t PICE_len( HANDLE hFile );
|
||||
WCHAR * PICE_wcscpy(WCHAR * str1,const WCHAR * str2);
|
||||
INT
|
||||
STDCALL
|
||||
PICE_MultiByteToWideChar (
|
||||
UINT CodePage,
|
||||
DWORD dwFlags,
|
||||
LPCSTR lpMultiByteStr,
|
||||
int cchMultiByte,
|
||||
LPWSTR lpWideCharStr,
|
||||
int cchWideChar
|
||||
);
|
Loading…
Add table
Add a link
Reference in a new issue