Skip to content

Commit fb2e974

Browse files
Michael ThorpBrett Shirley (from Dev Box)
authored andcommitted
Sync of Windows/ESENT code to Exchange/ESE
Move Windows/ESENT commits to Exchange/ESE through OS commit a01a89190d730eb27094baad50ecc950e8a3709f [Substrate:e6e745cc4dcbc1b442742da03f6fa67b30ec037d]
1 parent 55b1f68 commit fb2e974

16 files changed

Lines changed: 54 additions & 53 deletions

File tree

dev/ese/published/inc/os.hxx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -256,11 +256,11 @@ BOOL FOSLayerUp();
256256
// Turns on FFB/StorageWriteBack mode always.
257257
//#define FORCE_STORAGE_WRITEBACK 1
258258

259+
#ifndef ESENT
259260
// Turn off some APIs that we don't want directly supported
260261
// ISSUE[SOMEONE] - Github side of build cannot handle this due to stdlib includes in rmemulator.hxx. Some day figure this out for real.
261262
//#define wcscmp __USE_LOSSTRCOMPAREW__
262263
//#define wcslen __USE_LOSSTRLENGTHW__
264+
#endif
263265

264266
#endif // _OS_HXX_INCLUDED
265-
266-

dev/ese/published/inc/resmgr.hxx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -434,12 +434,14 @@ class CLRUKResourceUtilityManager
434434
BOOL FSuperColded() const { return _FTickSuperColded( m_tickIndexTarget ); }
435435
BOOL FResourceLocked() const { return _FTickLocked( m_tickLast ); }
436436

437+
// used only for tracing and debugger ext
438+
WORD PctCachePriority() const { return m_pctCachePriority; }
439+
437440
#ifdef DEBUGGER_EXTENSION
438441
TICK TickLastTouch() const { return m_tickLast; }
439442
TICK TickIndex() const { return m_tickIndex; }
440443
TICK TickIndexTime() const { return _TickIndexTime( m_tickIndex ); } // extracts the "normal" time part of m_tickIndex (i.e., supercold/normal bit masked off)
441444
BOOL FSuperColdedIndex() const { return _FTickSuperColded( m_tickIndex ); }
442-
WORD PctCachePriority() const { return m_pctCachePriority; }
443445
#endif
444446

445447
#ifdef MINIMAL_FUNCTIONALITY // required for BF perfmon counters

dev/ese/published/inc/sync.hxx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@
3131
#include <stdarg.h>
3232
#include <stdlib.h>
3333

34+
#include <malloc.h>
35+
3436
// calling convention
3537

3638
#ifdef _MSC_VER
@@ -108,10 +110,10 @@ void OSSYNCAPI EnforceFail( const char* szMessage, const char* szFilename, LONG
108110

109111
// OSSYNC_FOREVER marks all convergence loops
110112

111-
#if defined( _M_IX86 ) || defined( _M_AMD64 )
112-
inline void OSSyncPause() { _mm_pause(); }
113-
#elif defined( _M_ARM ) || defined( _M_ARM64 )
113+
#if defined( _M_ARM ) || defined( _M_ARM64 ) || defined( _M_ARM64EC )
114114
inline void OSSyncPause() { __yield(); }
115+
#elif defined( _M_IX86 ) || defined( _M_AMD64 )
116+
inline void OSSyncPause() { _mm_pause(); }
115117
#else
116118
inline void OSSyncPause() {};
117119
#endif

dev/ese/src/checksum/avx/checksum_avx.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ inline XECHECKSUM MakeChecksumFromECCXORAndPgno(
2020
return ( high | low );
2121
}
2222

23-
#if ( defined _M_AMD64 || defined _M_IX86 ) && !defined _CHPE_X86_ARM64_
23+
#if ( defined _M_AMD64 || defined _M_IX86 ) && !defined _CHPE_X86_ARM64_ && !defined _ARM64EC_
2424

2525
#include <intrin.h>
2626
#include <emmintrin.h>

dev/ese/src/checksum/checksum.cxx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ ULONG ChecksumSelectOldFormat( const unsigned char * const pb, const ULONG cb )
131131
{
132132
PFNCHECKSUMOLDFORMAT pfn = ChecksumSelectOldFormat;
133133

134-
#if defined _M_IX86 && defined _CHPE_X86_ARM64_
134+
#if (defined(_M_IX86) && defined(_CHPE_X86_ARM64_)) || (defined(_M_AMD64) && defined(_ARM64EC_))
135135
pfn = ChecksumOldFormatSlowly;
136136
#else
137137
if( FSSEInstructionsAvailable() )
@@ -267,7 +267,7 @@ XECHECKSUM ChecksumSelectNewFormat( const unsigned char * const pb, const ULONG
267267
{
268268
PFNCHECKSUMNEWFORMAT pfn = ChecksumSelectNewFormat;
269269

270-
#if defined _M_IX86 && defined _CHPE_X86_ARM64_
270+
#if (defined(_M_IX86) && defined(_CHPE_X86_ARM64_)) || (defined(_M_AMD64) && defined(_ARM64EC_))
271271
pfn = ChecksumNewFormatSlowly;
272272
#else
273273
if( FAVXEnabled() && FPopcntAvailable() )

dev/ese/src/checksum/checksum_amd64.cxx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
#if 1
1414

1515
#include <intrin.h>
16-
#if ( defined _M_AMD64 || defined _M_IX86 )
16+
#if ( defined _M_AMD64 || defined _M_IX86 ) && !defined _ARM64EC_
1717
#include <emmintrin.h>
1818
#endif
1919

@@ -93,7 +93,7 @@ ULONG ChecksumOldFormatSSE( const unsigned char * const pb, const ULONG cb )
9393

9494
while ( ( cbT -= cbStep ) >= 0 )
9595
{
96-
#if (defined _M_AMD64 || defined _M_IX86 )
96+
#if (defined _M_AMD64 || defined _M_IX86 ) && !defined _ARM64EC_
9797
#if 1
9898
_mm_prefetch ( (char *)(pdw + 16), _MM_HINT_NTA );
9999
#else
@@ -129,7 +129,7 @@ ULONG ChecksumOldFormatSSE2( const unsigned char * const pb, const ULONG cb )
129129

130130
Unused( pfn );
131131

132-
#if (defined _M_AMD64 || defined _M_IX86 )
132+
#if (defined _M_AMD64 || defined _M_IX86 ) && !defined _ARM64EC_
133133

134134
__m128i owChecksum = _mm_setzero_si128();
135135
const __m128i * pow = (__m128i *)pb;
@@ -862,7 +862,7 @@ XECHECKSUM ChecksumNewFormatSSE( const unsigned char * const pb, const ULONG cb,
862862
pT1 = pdw[ i + 1 ];
863863
Start:
864864

865-
#if (defined _M_AMD64 || defined _M_IX86 )
865+
#if (defined _M_AMD64 || defined _M_IX86 ) && !defined _ARM64EC_
866866
#if 1
867867
_mm_prefetch( ( char *)&( pdw[ i + 32 ] ), _MM_HINT_NTA );
868868
#else
@@ -982,7 +982,7 @@ enum ChecksumParityMaskFunc
982982
ParityMaskFuncPopcnt,
983983
};
984984

985-
#if ( defined _M_AMD64 || defined _M_IX86 ) && !defined _CHPE_X86_ARM64_
985+
#if ( defined _M_AMD64 || defined _M_IX86 ) && !defined _CHPE_X86_ARM64_ && !defined _ARM64EC_
986986

987987
// ================================================================
988988
inline __m128i operator^( const __m128i dq0, const __m128i dq1 )

dev/ese/src/ese/_log/logutil.cxx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1815,16 +1815,16 @@ ERR LOG::ErrCompareLogs( PCWSTR wszLog1, PCWSTR wszLog2, const BOOL fAllowSubset
18151815
cbRemaining = cbLog1;
18161816

18171817
cbRead = min( cbMaxRead, cbRemaining );
1818-
pvLog1 = PvOSMemoryPageAlloc( cbRead, NULL );
1819-
pvLog2 = PvOSMemoryPageAlloc( cbRead, NULL );
1818+
pvLog1 = PvOSMemoryPageAlloc( (size_t) cbRead, NULL );
1819+
pvLog2 = PvOSMemoryPageAlloc( (size_t) cbRead, NULL );
18201820

18211821
while ( cbRemaining > 0 )
18221822
{
18231823
cbRead = min( cbMaxRead, cbRemaining );
18241824
Call( pfapiLog1->ErrIORead( *tcScope, cbLog1 - cbRemaining, (DWORD) cbRead, (BYTE*) pvLog1, QosSyncDefault( pinstNil ) ) );
18251825
Call( pfapiLog2->ErrIORead( *tcScope, cbLog1 - cbRemaining, (DWORD) cbRead, (BYTE*) pvLog2, QosSyncDefault( pinstNil ) ) );
18261826

1827-
if ( memcmp( pvLog1, pvLog2, cbRead ) != 0 )
1827+
if ( memcmp( pvLog1, pvLog2, (size_t) cbRead ) != 0 )
18281828
{
18291829
*pfLogsDiverged = fTrue;
18301830
break;

dev/ese/src/ese/cpage.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1790,7 +1790,7 @@ INLINE CPAGE::TAG * CPAGE::PtagFromItag_( INT itag ) const
17901790

17911791
TAG * ptag = (TAG *)( (BYTE*)m_bfl.pv + m_platchManager->CbBuffer( m_bfl ) );
17921792
ptag -= itag + 1;
1793-
#if !defined(_M_ARM) && !defined(_M_ARM64)
1793+
#if !defined(_M_ARM) && !defined(_M_ARM64) && !defined(_ARM64EC_)
17941794
_mm_prefetch( (char*)ptag, _MM_HINT_T0 ); // almost always this will be immediately useful ...
17951795
#endif
17961796
Assert( NULL != ptag );

dev/ese/src/ese/recupd.cxx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ struct INDEX_ENTRY_CALLBACK_CONTEXT
196196
};
197197
};
198198

199-
typedef ERR ( __cdecl INDEX_ENTRY_CALLBACK )(
199+
typedef ERR ( INDEX_ENTRY_CALLBACK )(
200200
FUCB *,
201201
KEY &,
202202
const KEY &,
@@ -2996,7 +2996,7 @@ class TRACK_INDEX_ENTRY_DATA {
29962996
#undef STATE
29972997
}
29982998

2999-
static int Comp(
2999+
static int __cdecl Comp(
30003000
const void *pvVal1,
30013001
const void *pvVal2
30023002
)

dev/ese/src/ese/revertsnapshot.cxx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1771,7 +1771,7 @@ ERR CRevertSnapshot::ErrCapturePreimage(
17711771
RBSICompressPreImage( m_pinst, ifmp, pgno, g_cbPage, dataRec, pbDataDehydrated, pbDataCompressed, &fFlagsCompression );
17721772

17731773
dbRec.m_bRecType = rbsrectypeDbPage;
1774-
dbRec.m_usRecLength = sizeof( RBSDbPageRecord ) + dataRec.Cb();
1774+
dbRec.m_usRecLength = sizeof( RBSDbPageRecord ) + (USHORT)dataRec.Cb();
17751775
dbRec.m_dbid = dbid;
17761776
dbRec.m_pgno = pgno;
17771777
dbRec.m_fFlags = fFlags | fFlagsCompression;
@@ -1816,7 +1816,7 @@ ERR CRevertSnapshot::ErrCaptureDbAttach( WCHAR* wszDatabaseName, const DBID dbid
18161816
RBSDbAttachRecord dbRec;
18171817
dbRec.m_bRecType = rbsrectypeDbAttach;
18181818
dbRec.m_dbid = dbid;
1819-
dbRec.m_usRecLength = sizeof( RBSDbAttachRecord ) + dataRec.Cb();
1819+
dbRec.m_usRecLength = sizeof( RBSDbAttachRecord ) + (USHORT)dataRec.Cb();
18201820

18211821
return ErrCaptureRec( &dbRec, &dataRec, &dummy );
18221822
}
@@ -1984,7 +1984,7 @@ ERR CRevertSnapshot::ErrCaptureRec(
19841984

19851985
RBSFragContinue fragContdRec;
19861986
fragContdRec.m_bRecType = rbsrectypeFragContinue;
1987-
fragContdRec.m_usRecLength = min( sizeof( RBSFragContinue ) + cbRemaining, cbSegmentSpaceRemaining );
1987+
fragContdRec.m_usRecLength = (USHORT)min( sizeof( RBSFragContinue ) + cbRemaining, cbSegmentSpaceRemaining );
19881988

19891989
UtilMemCpy( m_pActiveBuffer->m_pBuffer + m_pActiveBuffer->m_ibNextRecord, &fragContdRec, sizeof( RBSFragContinue ) );
19901990
m_pActiveBuffer->m_ibNextRecord += sizeof( RBSFragContinue );

0 commit comments

Comments
 (0)