- add missing stubs to driverspecs.h
- Add concurrencysal.h
- add some missing definitions to sal.h and specstrings.h

svn path=/trunk/; revision=54940
This commit is contained in:
Timo Kreuzer 2012-01-13 19:01:47 +00:00
parent 6d4cdfa8a6
commit 67e4d0dc93
4 changed files with 172 additions and 17 deletions

View file

@ -0,0 +1,32 @@
/*
* concurrencysal.h
*
* Standard Annotation Language (SAL) definitions for synchronisation
*
* This file is part of the ReactOS PSDK package.
*
* Contributors:
* Timo Kreuzer (timo.kreuzer@reactos.org)
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAIMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#define _Requires_lock_held_(lock)
#define _Requires_lock_not_held_(lock)
#define _Acquires_lock_(lock)
#define _Acquires_shared_lock_(lock)
#define _Acquires_exclusive_lock_(lock)
#define _Releases_lock_(lock)
#define _Post_same_lock_(lock1,lock2)

View file

@ -6,24 +6,136 @@
* allow drivers using them to compile with our header set.
*/
#pragma once
#define DRIVERSPECS_H
#ifndef SPECSTRINGS_H
#include <specstrings.h>
#endif
#include <concurrencysal.h>
//
// Stubs
//
#define __drv_dispatchType(x)
#define ___drv_unit_internal_kernel_driver
#define ___drv_unit_kernel_code
#define ___drv_unit_kernel_driver
#define ___drv_unit_user_code
#define ___drv_unit_user_driver
#define __drv_acquiresCancelSpinLock
#define __drv_acquiresCriticalRegion
#define __drv_acquiresExclusiveResource(kind)
#define __drv_acquiresExclusiveResourceGlobal(kind,param)
#define __drv_acquiresPriorityRegion
#define __drv_acquiresResource(kind)
#define __drv_acquiresResourceGlobal(kind,param)
#define __drv_aliasesMem
#define __drv_allocatesMem(kind)
#define __drv_arg(expr,annotes)
#define __drv_at(expr,annotes)
#define __drv_callbackType(kind)
#define __drv_clearDoInit
#define __drv_completionType(kindlist)
#define __drv_constant
#define __drv_defined(x)
#define __drv_deref(annotes)
#define __drv_dispatchType_other
#define __drv_dispatchType(x)
#define __drv_floatRestored
#define __drv_floatSaved
#define __drv_floatUsed
#define __drv_formatString(kind)
#define __drv_freesMem(kind)
#define __drv_fun(annotes)
#define __drv_functionClass
#define __drv_holdsCancelSpinLock()
#define __drv_holdsCriticalRegion()
#define __drv_holdsPriorityRegion()
#define __drv_in_deref(annotes)
#define __drv_in(annotes)
#define __drv_innerAcquiresGlobal(kind,param)
#define __drv_innerMustHoldGlobal(kind,param)
#define __drv_innerNeverHoldGlobal(kind,param)
#define __drv_innerReleasesGlobal(kind,param)
#define __drv_interlocked
#define __drv_IoGetDmaAdapter
#define __drv_isCancelIRQL
#define __drv_isObjectPointer
#define __drv_KMDF
#define __drv_maxFunctionIRQL
#define __drv_maxIRQL
#define __drv_minFunctionIRQL
#define __drv_minIRQL
#define __drv_Mode_impl(x)
#define __drv_mustHold(kind)
#define __drv_mustHoldCancelSpinLock
#define __drv_mustHoldCriticalRegion
#define __drv_mustHoldGlobal(kind,param)
#define __drv_mustHoldPriorityRegion
#define __drv_NDIS
#define __drv_neverHold(kind)
#define __drv_neverHoldCancelSpinLock
#define __drv_neverHoldCriticalRegion
#define __drv_neverHoldGlobal(kind,param)
#define __drv_neverHoldPriorityRegion
#define __drv_nonConstant
#define __drv_notInTry
#define __drv_notPointer
#define __drv_out_deref(annotes)
#define __drv_out(annotes)
#define __drv_preferredFunction(func,why)
#define __drv_raisesIRQL
#define __drv_releasesCancelSpinLock
#define __drv_releasesCriticalRegion
#define __drv_releasesExclusiveResource(kind)
#define __drv_releasesExclusiveResourceGlobal(kind,param)
#define __drv_releasesPriorityRegion
#define __drv_releasesResource(kind)
#define __drv_releasesResourceGlobal(kind,param)
#define __drv_reportError(why)
#define __drv_requiresIRQL
#define __drv_restoresIRQL
#define __drv_restoresIRQLGlobal
#define __drv_ret(annotes)
#define __drv_sameIRQL
#define __drv_savesIRQL
#define __drv_savesIRQLGlobal
#define __drv_setsIRQL(irql)
#define __drv_strictType(typename,mode)
#define __drv_strictTypeMatch(mode)
#define __drv_unit(p)
#define __drv_useCancelIRQL
#define __drv_valueIs(arglist)
#define __drv_WDM
#define __drv_when(cond,annotes)
#define __internal_kernel_driver
#define __kernel_code
#define __kernel_driver
#define __prefast_operator_new_null
#define __prefast_operator_new_throws
#define __user_code
#define __user_driver
#define _Dispatch_type_
#define _IRQL_always_function_max_(irql)
#define _IRQL_always_function_min_(irql)
#define _IRQL_is_cancel_
#define _IRQL_raises_(irql)
#define _IRQL_requires_(irql)
#define _IRQL_requires_max_(irql)
#define _IRQL_requires_min_(irql)
#define _IRQL_requires_same_
#define _IRQL_restores_
#define _IRQL_restores_global_(kind,param)
#define _IRQL_saves_
#define _IRQL_saves_global_(kind,param)
#define _IRQL_uses_cancel_
#define _Kernel_clear_do_init_(yesNo)
#define _Kernel_float_restored_
#define _Kernel_float_saved_
#define _Kernel_float_used_
#define _Kernel_IoGetDmaAdapter_
#define _Kernel_releases_resource_(kind)
#define _Kernel_requires_resource_held_(kind)
#define _Kernel_requires_resource_not_held_(kind)
//
// 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

@ -391,6 +391,10 @@ REPEATABLE DECLARE_ATTR(EndAttribute, int unused;) SAL_end;
#define _Struct_size_bytes_(size) _Writable_bytes_(size)
#define _Unchanged_(e) _At_(e, _Post_equal_to_(_Old_(e)) _Const_)
#define _Analysis_noreturn_ _SA_annotes0(SAL_terminates)
#define _Function_class_(x) _SA_annotes1(SAL_functionClassNew, #x)
#define _Raises_SEH_exception_ _Group_(_Pre_ _SA_annotes1(SAL_inTry,__yes) _Analysis_noreturn_)
#define _Maybe_raises_SEH_exception_ _Pre_ _SA_annotes1(SAL_inTry,__yes)
#define _Interlocked_operand_ _Pre_ _SA_annotes0(SAL_interlocked)
#define _Field_size_(size) _Notnull_ _Writable_elements_(size)
#define _Field_size_bytes_(size) _Notnull_ _Writable_bytes_(size)
@ -1185,6 +1189,7 @@ REPEATABLE DECLARE_ATTR(EndAttribute, int unused;) SAL_end;
#define _Field_size_part_(size, count)
#define _Field_size_part_opt_(size, count)
#define _Field_z_
#define _Function_class_(x)
#define _Group_(annos)
#define _In_
#define _In_bound_
@ -1291,9 +1296,11 @@ REPEATABLE DECLARE_ATTR(EndAttribute, int unused;) SAL_end;
#define _Inout_z_cap_x_(size)
#define _Inout_z_count_(size)
#define _Inout_z_count_c_(size)
#define _Interlocked_operand_
#define _Literal_
#define _Maybenull_
#define _Maybevalid_
#define _Maybe_raises_SEH_exception
#define _Must_inspect_result_
#define _Notliteral_
#define _Notnull_
@ -1549,6 +1556,7 @@ REPEATABLE DECLARE_ATTR(EndAttribute, int unused;) SAL_end;
#define _Prepost_valid_
#define _Prepost_z_
#define _Printf_format_string_
#define _Raises_SEH_exception_
#define _Readable_bytes_(size)
#define _Readable_elements_(size)
#define _Reserved_

View file

@ -24,6 +24,7 @@
#define SPECSTRINGS_H
#include <sal.h>
#include <driverspecs.h>
#define __field_bcount(size) __notnull __byte_writableTo(size)
#define __field_ecount(size) __notnull __elem_writableTo(size)
@ -43,5 +44,7 @@
#define __out_awcount(expr,size)
#define __in_awcount(expr,size)
#define __nullnullterminated
#define __analysis_assume(expr)
#define __in_data_source(src_sym)
#define __analysis_noreturn
#define __kernel_entry