Thanks, Jacek. In the new attached patch, I have changed the comments to C89-style. I also fixed the definition of _Inout_updates_all_opt_.
--David On 8/29/2015 12:16 PM, Jacek Caban wrote:
Hi, We don't share those parts. The patch looks mostly good to me except for comments. Those are C++/C99 comments, please use /* */ for C89 compatibility.
diff --git a/mingw-w64-headers/include/driverspecs.h b/mingw-w64-headers/include/driverspecs.h index b7d3268..2fa89a1 100644 --- a/mingw-w64-headers/include/driverspecs.h +++ b/mingw-w64-headers/include/driverspecs.h @@ -28,3 +28,6 @@ #define __deref_out_ecount(Size) +#define __drv_aliasesMem +#define __drv_allocatesMem(kind) +#define __drv_freesMem(kind) diff --git a/mingw-w64-headers/include/sal.h b/mingw-w64-headers/include/sal.h index 79a747f..fe0d92b 100644 --- a/mingw-w64-headers/include/sal.h +++ b/mingw-w64-headers/include/sal.h @@ -17,12 +17,171 @@ #define __checkReturn __inner_checkReturn +/* Pointer parameters */ #define _In_ -#define _In_opt_ #define _Out_ #define _Inout_ +#define _In_z_ +#define _Inout_z_ +#define _In_reads_(s) +#define _In_reads_bytes_(s) +#define _In_reads_z_(s) +#define _In_reads_or_z_(s) +#define _Out_writes_(s) +#define _Out_writes_bytes_(s) +#define _Out_writes_z_(s) +#define _Inout_updates_(s) +#define _Inout_updates_bytes_(s) +#define _Inout_updates_z_(s) +#define _Out_writes_to_(s,c) +#define _Out_writes_bytes_to_(s, c) +#define _Out_writes_all_(s) +#define _Out_writes_bytes_all_(s) +#define _Inout_updates_to_(s, c) +#define _Inout_updates_bytes_to_(s, c) +#define _Inout_updates_all_(s) +#define _Inout_updates_bytes_all_(s) +#define _In_reads_to_ptr_(p) +#define _In_reads_to_ptr_z_(p) +#define _Out_writes_to_ptr_(p) +#define _Out_writes_to_ptr_z(p) + +/* Optional pointer parameters */ +#define _In_opt_ +#define _Out_opt_ +#define _Inout_opt_ +#define _In_opt_z_ +#define _Inout_opt_z_ +#define _In_reads_opt_(s) +#define _In_reads_bytes_opt_(s) +#define _In_reads_opt_z_(s) + +#define _Out_writes_opt_(s) +#define _Out_writes_opt_z_(s) +#define _Inout_updates_opt_(s) +#define _Inout_updates_bytes_opt_(s) +#define _Inout_updates_opt_z_(s) +#define _Out_writes_to_opt_(s, c) +#define _Out_writes_bytes_to_opt_(s, c) +#define _Out_writes_all_opt_(s) +#define _Out_writes_bytes_all_opt_(s) + +#define _Inout_updates_to_opt_(s, c) +#define _Inout_updates_bytes_to_opt_(s, c) +#define _Inout_updates_all_opt_(s) +#define _Inout_updates_bytes_all_opt_(s) +#define _In_reads_to_ptr_opt_(p) +#define _In_reads_to_ptr_opt_z_(p) +#define _Out_writes_to_ptr_opt_(p) +#define _Out_writes_to_ptr_opt_z_(p) + +/* Output pointer parameters */ +#define _Outptr_ +#define _Outptr_opt_ +#define _Outptr_result_maybenull_ +#define _Outptr_opt_result_maybenull_ +#define _Outptr_result_z_ +#define _Outptr_opt_result_z_ +#define _Outptr_result_maybenull_z_ +#define _Outptr_opt_result_maybenull_z_ +#define _COM_Outptr_ +#define _COM_Outptr_opt_ +#define _COM_Outptr_result_maybenull_ +#define _COM_Outptr_opt_result_maybenull_ +#define _Outptr_result_buffer_(s) +#define _Outptr_result_bytebuffer_(s) +#define _Outptr_opt_result_buffer_(s) +#define _Outptr_opt_result_bytebuffer_(s) +#define _Outptr_result_buffer_to_(s, c) +#define _Outptr_result_bytebuffer_to_(s, c) +#define _Outptr_opt_result_buffer_to_(s, c) +#define _Outptr_opt_result_bytebuffer_to_(s, c) +#define _Result_nullonfailure_ +#define _Result_zeroonfailure_ +#define _Outptr_result_nullonfailure_ +#define _Outptr_opt_result_nullonfailure_ +#define _Outref_result_nullonfailure_ + +/* Output reference parameters */ +#define _Outref_ +#define _Outref_result_maybenull_ +#define _Outref_result_buffer_(s) +#define _Outref_result_bytebuffer_(s) +#define _Outref_result_buffer_to_(s, c) +#define _Outref_result_bytebuffer_to_(s, c) +#define _Outref_result_buffer_all_(s) +#define _Outref_result_bytebuffer_all_(s) +#define _Outref_result_buffer_maybenull_(s) +#define _Outref_result_bytebuffer_maybenull_(s) +#define _Outref_result_buffer_to_maybenull_(s, c) +#define _Outref_result_bytebuffer_to_maybenull_(s, c) +#define _Outref_result_buffer_all_maybenull_(s) +#define _Outref_result_bytebuffer_all_maybenull_(s) +/* Return values */ +#define _Ret_z_ +#define _Ret_writes_(s) +#define _Ret_writes_bytes_(s) +#define _Ret_writes_z_(s) +#define _Ret_writes_bytes_to_(s, c) +#define _Ret_writes_maybenull_(s) +#define _Ret_writes_to_maybenull_(s, c) +#define _Ret_writes_maybenull_z_(s) +#define _Ret_maybenull_ +#define _Ret_maybenull_z_ +#define _Ret_null_ +#define _Ret_notnull_ +#define _Ret_writes_bytes_to_(s, c) +#define _Ret_writes_bytes_maybenull_(s) +#define _Ret_writes_bytes_to_maybenull_(s, c) + +/* Other common annotations */ +#define _In_range_(low, hi) +#define _Out_range_(low, hi) +#define _Ret_range_(low, hi) +#define _Deref_in_range_(low, hi) +#define _Deref_out_range_(low, hi) +#define _Deref_inout_range_(low, hi) +#define _Field_range_(low, hi) +#define _Pre_equal_to_(expr) +#define _Post_equal_to_(expr) #define _Struct_size_bytes_(size) +/* Function annotations */ +#define _Called_from_function_class_(name) +#define _Check_return_ __checkReturn +#define _Function_class_(name) +#define _Raises_SEH_exception_ +#define _Maybe_raises_SEH_exception_ +#define _Must_inspect_result_ +#define _Use_decl_annotations_ + +/* Success/failure annotations */ +#define _Always_(anno_list) +#define _On_failure_(anno_list) +#define _Return_type_success_(expr) +#define _Success_(expr) + +#define _Reserved_ +#define _Const_ + +/* Buffer properties */ +#define _Readable_bytes_(s) +#define _Readable_elements_(s) +#define _Writable_bytes_(s) +#define _Writable_elements_(s) +#define _Null_terminated_ +#define _NullNull_terminated_ +#define _Pre_readable_size_(s) +#define _Pre_writable_size_(s) +#define _Pre_readable_byte_size_(s) +#define _Pre_writable_byte_size_(s) +#define _Post_readable_size_(s) +#define _Post_writable_size_(s) +#define _Post_readable_byte_size_(s) +#define _Post_writable_byte_size_(s) + +#define _Analysis_assume_(expr) + #endif
------------------------------------------------------------------------------
_______________________________________________ Mingw-w64-public mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
