Move windows headers to port.c (#1302)

* [MSVC-MingW] Move windows headers to port.c

This prevents the inclusion of windows.h. into all header files using
FreeRTOS.h and thus defining several macros conflicting with common
definitions.

* [MSVC-MingW] Include correct header for compiler intrinsics

---------

Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
This commit is contained in:
creiter64 2025-08-05 13:11:54 +02:00 committed by GitHub
parent c5bec0e4b2
commit e9440d4079
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 13 additions and 13 deletions

View file

@ -33,6 +33,14 @@
#include "FreeRTOS.h" #include "FreeRTOS.h"
#include "task.h" #include "task.h"
#ifdef WIN32_LEAN_AND_MEAN
#include <winsock2.h>
#else
#include <winsock.h>
#endif
#include <timeapi.h>
#ifdef __GNUC__ #ifdef __GNUC__
#include "mmsystem.h" #include "mmsystem.h"
#else #else

View file

@ -29,17 +29,6 @@
#ifndef PORTMACRO_H #ifndef PORTMACRO_H
#define PORTMACRO_H #define PORTMACRO_H
#ifdef WIN32_LEAN_AND_MEAN
#include <winsock2.h>
#else
#include <winsock.h>
#endif
#include <windows.h>
#include <timeapi.h>
#include <mmsystem.h>
#include <winbase.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
@ -156,22 +145,25 @@ void vPortExitCritical( void );
: "cc" ) : "cc" )
#else /* __GNUC__ */ #else /* __GNUC__ */
#include <intrin.h>
/* BitScanReverse returns the bit position of the most significant '1' /* BitScanReverse returns the bit position of the most significant '1'
* in the word. */ * in the word. */
#if defined( __x86_64__ ) || defined( _M_X64 ) #if defined( __x86_64__ ) || defined( _M_X64 )
#pragma intrinsic(_BitScanReverse64)
#define portGET_HIGHEST_PRIORITY( uxTopPriority, uxReadyPriorities ) \ #define portGET_HIGHEST_PRIORITY( uxTopPriority, uxReadyPriorities ) \
do \ do \
{ \ { \
DWORD ulTopPriority; \ unsigned long ulTopPriority; \
_BitScanReverse64( &ulTopPriority, ( uxReadyPriorities ) ); \ _BitScanReverse64( &ulTopPriority, ( uxReadyPriorities ) ); \
uxTopPriority = ulTopPriority; \ uxTopPriority = ulTopPriority; \
} while( 0 ) } while( 0 )
#else /* #if defined( __x86_64__ ) || defined( _M_X64 ) */ #else /* #if defined( __x86_64__ ) || defined( _M_X64 ) */
#pragma intrinsic(_BitScanReverse)
#define portGET_HIGHEST_PRIORITY( uxTopPriority, uxReadyPriorities ) _BitScanReverse( ( DWORD * ) &( uxTopPriority ), ( uxReadyPriorities ) ) #define portGET_HIGHEST_PRIORITY( uxTopPriority, uxReadyPriorities ) _BitScanReverse( ( unsigned long * ) &( uxTopPriority ), ( uxReadyPriorities ) )
#endif /* #if defined( __x86_64__ ) || defined( _M_X64 ) */ #endif /* #if defined( __x86_64__ ) || defined( _M_X64 ) */