- Revert 32309 -- instead of removing FORCEINLINE to make GCC happy (it can't inline functions using va_list), use __inline to merely hint that the function should be inlined. This lets you use RtlStringCbPrintfA and RtlStringCbPrintfExA in multiple source files as the functions aren't static.

- Moreover, there is no reason to forceinline all the RtlString* routines -- they are quite big and the compiler should be allowed to optimize here as it likes, so just use __inline. Also add RtlStringCchCopyA and re-enable ASSERTMSG and use it for the stubs.
- Add missing GUID_CLASS_COMPORT and GUID_SERENUM_BUS_ENUMERATOR to ntddser.h
- Add driverspecs.h to stub out Driver Verifier annotations
- The WDK serenum source sample now compiles with our header set.

svn path=/trunk/; revision=42744
This commit is contained in:
Stefan Ginsberg 2009-08-16 20:08:48 +00:00
parent f145632ab6
commit ac35e87724
4 changed files with 63 additions and 20 deletions

View file

@ -0,0 +1,29 @@
/*
* PROJECT: ReactOS DDK
* COPYRIGHT: This file is in the Public Domain.
* FILE: driverspecs.h
* ABSTRACT: This header stubs out Driver Verifier annotations to
* allow drivers using them to compile with our header set.
*/
//
// Stubs
//
#define __drv_dispatchType(x)
#define __drv_dispatchType_other
//
// FIXME: These annotations are not driver-only and does not belong here
//
#define __in
#define __in_bcount(Size)
#define __in_ecount(Size)
#define __out
#define __out_bcount(Size)
#define __out_bcount_part(Size, Length)
#define __out_ecount(Size)
#define __inout
#define __deref_out_ecount(Size)

View file

@ -32,9 +32,13 @@ extern "C" {
DEFINE_GUID(GUID_DEVINTERFACE_COMPORT,
0x86e0d1e0L, 0x8089, 0x11d0, 0x9c, 0xe4, 0x08, 0x00, 0x3e, 0x30, 0x1f, 0x73);
#define GUID_CLASS_COMPORT GUID_DEVINTERFACE_COMPORT
DEFINE_GUID(GUID_DEVINTERFACE_SERENUM_BUS_ENUMERATOR,
0x4D36E978L, 0xE325, 0x11CE, 0xBF, 0xC1, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x18);
#define GUID_SERENUM_BUS_ENUMERATOR GUID_DEVINTERFACE_SERENUM_BUS_ENUMERATOR
#define IOCTL_SERIAL_CLEAR_STATS \
CTL_CODE (FILE_DEVICE_SERIAL_PORT, 36, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_CLR_DTR \

View file

@ -31,13 +31,9 @@
//
typedef unsigned long DWORD;
#ifndef UNIMPLEMENTED
#define UNIMPLEMENTED DbgPrint("WARNING: %s at %s:%d is UNIMPLEMENTED!\n",__FUNCTION__,__FILE__,__LINE__);
#endif
/* PRIVATE FUNCTIONS *********************************************************/
FORCEINLINE
__inline
NTSTATUS
NTAPI
RtlStringLengthWorkerA(IN PCHAR String,
@ -70,7 +66,7 @@ RtlStringLengthWorkerA(IN PCHAR String,
return Status;
}
FORCEINLINE
__inline
NTSTATUS
NTAPI
RtlStringValidateDestA(IN PCHAR Destination,
@ -99,7 +95,7 @@ RtlStringValidateDestA(IN PCHAR Destination,
return Status;
}
FORCEINLINE
__inline
NTSTATUS
NTAPI
RtlStringExValidateDestA(IN OUT PCHAR *Destination,
@ -108,14 +104,14 @@ RtlStringExValidateDestA(IN OUT PCHAR *Destination,
IN SIZE_T MaxLength,
IN DWORD Flags)
{
//ASSERTMSG("We don't support Extended Flags yet!\n", Flags == 0);
ASSERTMSG("We don't support Extended Flags yet!\n", Flags == 0);
return RtlStringValidateDestA(*Destination,
*DestinationLength,
ReturnLength,
MaxLength);
}
FORCEINLINE
__inline
NTSTATUS
NTAPI
RtlStringExValidateSrcA(IN OUT PCCHAR *Source OPTIONAL,
@ -124,7 +120,7 @@ RtlStringExValidateSrcA(IN OUT PCCHAR *Source OPTIONAL,
IN DWORD Flags)
{
NTSTATUS Status = STATUS_SUCCESS;
//ASSERTMSG("We don't support Extended Flags yet!\n", Flags == 0);
ASSERTMSG("We don't support Extended Flags yet!\n", Flags == 0);
if ((ReturnLength) && (*ReturnLength >= MaxLength))
{
@ -134,7 +130,7 @@ RtlStringExValidateSrcA(IN OUT PCCHAR *Source OPTIONAL,
return Status;
}
FORCEINLINE
__inline
NTSTATUS
NTAPI
RtlStringVPrintfWorkerA(OUT PCHAR Destination,
@ -175,7 +171,7 @@ RtlStringVPrintfWorkerA(OUT PCHAR Destination,
return Status;
}
FORCEINLINE
__inline
NTSTATUS
NTAPI
RtlStringCopyWorkerA(OUT PCHAR Destination,
@ -212,6 +208,18 @@ RtlStringCopyWorkerA(OUT PCHAR Destination,
/* PUBLIC FUNCTIONS **********************************************************/
__inline
NTSTATUS
NTAPI
RtlStringCchCopyA(IN PCHAR Destination,
IN SIZE_T cchDest,
IN PCCHAR pszSrc)
{
ASSERTMSG("RtlStringCchCopyA is UNIMPLEMENTED!\n", FALSE);
return STATUS_NOT_IMPLEMENTED;
}
__inline
NTSTATUS
NTAPI
RtlStringCbPrintfA(OUT PCHAR Destination,
@ -241,6 +249,7 @@ RtlStringCbPrintfA(OUT PCHAR Destination,
return Status;
}
__inline
NTSTATUS
NTAPI
RtlStringCbPrintfExA(OUT PCHAR Destination,
@ -255,7 +264,7 @@ RtlStringCbPrintfExA(OUT PCHAR Destination,
SIZE_T CharLength = Length / sizeof(CHAR), Remaining, LocalNewLength = 0;
PCHAR LocalDestinationEnd;
va_list argList;
//ASSERTMSG("We don't support Extended Flags yet!\n", Flags == 0);
ASSERTMSG("We don't support Extended Flags yet!\n", Flags == 0);
Status = RtlStringExValidateDestA(&Destination,
&CharLength,
@ -321,7 +330,7 @@ RtlStringCbPrintfExA(OUT PCHAR Destination,
return Status;
}
FORCEINLINE
__inline
NTSTATUS
NTAPI
RtlStringCbCopyExA(OUT PCHAR Destination,
@ -334,7 +343,7 @@ RtlStringCbCopyExA(OUT PCHAR Destination,
NTSTATUS Status;
SIZE_T CharLength = Length / sizeof(CHAR), Copied = 0, Remaining;
PCHAR LocalDestinationEnd;
//ASSERTMSG("We don't support Extended Flags yet!\n", Flags == 0);
ASSERTMSG("We don't support Extended Flags yet!\n", Flags == 0);
Status = RtlStringExValidateDestA(&Destination,
&Length,
@ -398,7 +407,7 @@ RtlStringCbCopyExA(OUT PCHAR Destination,
return Status;
}
__inline
NTSTATUS
NTAPI
RtlStringCbPrintfW(
@ -407,11 +416,11 @@ RtlStringCbPrintfW(
IN LPCWSTR pszFormat,
...)
{
UNIMPLEMENTED
ASSERTMSG("RtlStringCbPrintfW is UNIMPLEMENTED!\n", FALSE);
return STATUS_NOT_IMPLEMENTED;
}
FORCEINLINE
__inline
NTSTATUS
NTAPI
RtlStringCbCatExA(IN OUT PCHAR Destination,
@ -425,7 +434,7 @@ RtlStringCbCatExA(IN OUT PCHAR Destination,
SIZE_T CharLength = Length / sizeof(CHAR);
SIZE_T DestinationLength, Remaining, Copied = 0;
PCHAR LocalDestinationEnd;
//ASSERTMSG("We don't support Extended Flags yet!\n", Flags == 0);
ASSERTMSG("We don't support Extended Flags yet!\n", Flags == 0);
Status = RtlStringExValidateDestA(&Destination,
&CharLength,
@ -485,7 +494,7 @@ RtlStringCbCatExA(IN OUT PCHAR Destination,
return Status;
}
FORCEINLINE
__inline
NTSTATUS
NTAPI
RtlStringCbCopyA(OUT PCHAR Destination,

View file

@ -13,6 +13,7 @@
#include <debug.h>
/* GCC's incompetence strikes again */
__inline
VOID
sprintf_nt(IN PCHAR Buffer,
IN PCHAR Format,