143 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			143 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
/**
 | 
						|
 * PROJECT:         ExectOS
 | 
						|
 * COPYRIGHT:       See COPYING.md in the top level directory
 | 
						|
 * FILE:            xtldr/includes/libxtos.hh
 | 
						|
 * DESCRIPTION:     XT Loader to LIBXTOS interface
 | 
						|
 * DEVELOPERS:      Aiken Harris <harraiken91@gmail.com>
 | 
						|
 */
 | 
						|
 | 
						|
#ifndef __XTLDR_LIBXTOS_HH
 | 
						|
#define __XTLDR_LIBXTOS_HH
 | 
						|
 | 
						|
#include <xtblapi.h>
 | 
						|
 | 
						|
 | 
						|
/* Minimal forward references for AR classes used by XTLDR */
 | 
						|
namespace AR
 | 
						|
{
 | 
						|
    class CpuFunc
 | 
						|
    {
 | 
						|
        public:
 | 
						|
            STATIC XTCDECL BOOLEAN CpuId(IN OUT PCPUID_REGISTERS Registers);
 | 
						|
            STATIC XTCDECL ULONG_PTR ReadControlRegister(IN USHORT ControlRegister);
 | 
						|
            STATIC XTCDECL ULONGLONG ReadModelSpecificRegister(IN ULONG Register);
 | 
						|
            STATIC XTCDECL VOID WriteControlRegister(IN USHORT ControlRegister,
 | 
						|
                                                     IN UINT_PTR Value);
 | 
						|
    };
 | 
						|
 | 
						|
    class ProcSup
 | 
						|
    {
 | 
						|
        public:
 | 
						|
            STATIC XTAPI VOID GetTrampolineInformation(IN TRAMPOLINE_TYPE TrampolineType,
 | 
						|
                                                       OUT PVOID *TrampolineCode,
 | 
						|
                                                       OUT PULONG_PTR TrampolineSize);
 | 
						|
    };
 | 
						|
}
 | 
						|
 | 
						|
/* Minimal forward references for HL classes used by XTLDR */
 | 
						|
namespace HL
 | 
						|
{
 | 
						|
    class ComPort
 | 
						|
    {
 | 
						|
        public:
 | 
						|
            STATIC XTCDECL XTSTATUS InitializeComPort(IN OUT PCPPORT Port,
 | 
						|
                                                      IN PUCHAR PortAddress,
 | 
						|
                                                      IN ULONG BaudRate);
 | 
						|
            STATIC XTCDECL XTSTATUS WriteComPort(IN PCPPORT Port,
 | 
						|
                                                 IN UCHAR Byte);
 | 
						|
    };
 | 
						|
 | 
						|
    class IoPort
 | 
						|
    {
 | 
						|
        public:
 | 
						|
            STATIC XTCDECL UCHAR ReadPort8(IN USHORT Port);
 | 
						|
            STATIC XTCDECL USHORT ReadPort16(IN USHORT Port);
 | 
						|
            STATIC XTCDECL ULONG ReadPort32(IN USHORT Port);
 | 
						|
            STATIC XTCDECL VOID WritePort8(IN USHORT Port,
 | 
						|
                                           IN UCHAR Value);
 | 
						|
            STATIC XTCDECL VOID WritePort16(IN USHORT Port,
 | 
						|
                                            IN USHORT Value);
 | 
						|
            STATIC XTCDECL VOID WritePort32(IN USHORT Port,
 | 
						|
                                            IN ULONG Value);
 | 
						|
    };
 | 
						|
}
 | 
						|
 | 
						|
/* Minimal forward references for RTL classes used by XTLDR */
 | 
						|
namespace RTL
 | 
						|
{
 | 
						|
    class Guid
 | 
						|
    {
 | 
						|
        public:
 | 
						|
            STATIC XTAPI BOOLEAN CompareGuids(IN PGUID Guid1,
 | 
						|
                                              IN PGUID Guid2);
 | 
						|
    };
 | 
						|
 | 
						|
    class LinkedList
 | 
						|
    {
 | 
						|
        public:
 | 
						|
            STATIC XTCDECL VOID InitializeListHead(IN PLIST_ENTRY ListHead);
 | 
						|
            STATIC XTCDECL VOID InsertHeadList(IN OUT PLIST_ENTRY ListHead,
 | 
						|
                                               IN PLIST_ENTRY Entry);
 | 
						|
            STATIC XTCDECL VOID InsertTailList(IN OUT PLIST_ENTRY ListHead,
 | 
						|
                                               IN PLIST_ENTRY Entry);
 | 
						|
            STATIC XTCDECL VOID RemoveEntryList(IN PLIST_ENTRY Entry);
 | 
						|
    };
 | 
						|
 | 
						|
    class Memory
 | 
						|
    {
 | 
						|
        public:
 | 
						|
            STATIC XTAPI SIZE_T CompareMemory(IN PCVOID LeftBuffer,
 | 
						|
                                              IN PCVOID RightBuffer,
 | 
						|
                                              IN SIZE_T Length);
 | 
						|
            STATIC XTAPI VOID CopyMemory(OUT PVOID Destination,
 | 
						|
                                         IN PCVOID Source,
 | 
						|
                                         IN SIZE_T Length);
 | 
						|
            STATIC XTAPI VOID MoveMemory(OUT PVOID Destination,
 | 
						|
                                         IN PCVOID Source,
 | 
						|
                                         IN SIZE_T Length);
 | 
						|
            STATIC XTAPI VOID SetMemory(OUT PVOID Destination,
 | 
						|
                                        IN UCHAR Byte,
 | 
						|
                                        IN SIZE_T Length);
 | 
						|
            STATIC XTAPI VOID ZeroMemory(OUT PVOID Destination,
 | 
						|
                                         IN SIZE_T Length);
 | 
						|
    };
 | 
						|
 | 
						|
    class String
 | 
						|
    {
 | 
						|
        public:
 | 
						|
            STATIC XTAPI SIZE_T CompareString(IN PCSTR String1,
 | 
						|
                                              IN PCSTR String2,
 | 
						|
                                              IN SIZE_T Length);
 | 
						|
            STATIC XTAPI SIZE_T StringLength(IN PCSTR String,
 | 
						|
                                             IN SIZE_T MaxLength);
 | 
						|
            STATIC XTAPI SIZE_T StringToWideString(OUT PWCHAR Destination,
 | 
						|
                                                   IN PCSTR *Source,
 | 
						|
                                                   IN SIZE_T Length);
 | 
						|
            STATIC XTAPI PCHAR TrimString(IN PCHAR String);
 | 
						|
    };
 | 
						|
 | 
						|
    class WideString
 | 
						|
    {
 | 
						|
        public:
 | 
						|
            STATIC XTAPI SIZE_T CompareWideString(IN PCWSTR String1,
 | 
						|
                                                  IN PCWSTR String2,
 | 
						|
                                                  IN SIZE_T Length);
 | 
						|
            STATIC XTAPI SIZE_T CompareWideStringInsensitive(IN PCWSTR String1,
 | 
						|
                                                             IN PCWSTR String2,
 | 
						|
                                                             IN SIZE_T Length);
 | 
						|
            STATIC XTAPI PWCHAR ConcatenateWideString(OUT PWCHAR Destination,
 | 
						|
                                                      IN PWCHAR Source,
 | 
						|
                                                      IN SIZE_T Count);
 | 
						|
            STATIC XTAPI XTSTATUS FormatWideString(IN PRTL_PRINT_CONTEXT Context,
 | 
						|
                                                   IN PCWSTR Format,
 | 
						|
                                                   IN VA_LIST ArgumentList);
 | 
						|
            STATIC XTAPI PWCHAR TokenizeWideString(IN PWCHAR String,
 | 
						|
                                                   IN PCWSTR Delimiter,
 | 
						|
                                                   IN OUT PWCHAR *SavePtr);
 | 
						|
            STATIC XTAPI SIZE_T WideStringLength(IN PCWSTR String,
 | 
						|
                                                 IN SIZE_T MaxLength);
 | 
						|
    };
 | 
						|
}
 | 
						|
 | 
						|
#endif /* __XTLDR_LIBXTOS_HH */
 |