Skip to content

Commit c943223

Browse files
diseanbinarymaster
authored andcommitted
[HAL] Make HalpCalibrateStallExecution discardable
- Discard the RTC interrupt handler for MSVC builds. Unfortunately GAS doesn't have such a feature - Remove the unused systimer.S file from MiniHAL compilation
1 parent 4651eb0 commit c943223

5 files changed

Lines changed: 16 additions & 8 deletions

File tree

hal/halx86/apic/tsc.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ HalpInitializeTsc(VOID)
115115

116116
}
117117

118+
CODE_SEG("INIT")
118119
VOID
119120
NTAPI
120121
HalpCalibrateStallExecution(VOID)

hal/halx86/generic/systimer.S

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,6 @@
1111

1212
#include <ks386.inc>
1313

14-
EXTERN _HalpAcquireCmosSpinLock@0:PROC
15-
EXTERN _HalpReleaseCmosSpinLock@0:PROC
16-
EXTERN _DbgBreakPoint@0:PROC
17-
1814
#define PIC1_BASE HEX(20) /* IO base address for master PIC */
1915
#define PIC2_BASE HEX(A0) /* IO base address for slave PIC */
2016
#define PIC1_COMMAND PIC1_BASE
@@ -38,6 +34,15 @@ EXTERN _DbgBreakPoint@0:PROC
3834
/* FUNCTIONS *****************************************************************/
3935

4036
.code
37+
38+
#ifdef _USE_ML
39+
INIT_ASM SEGMENT PARA PUBLIC USE32 READ WRITE EXECUTE DISCARD
40+
#endif
41+
42+
EXTERN _HalpAcquireCmosSpinLock@0:PROC
43+
EXTERN _HalpReleaseCmosSpinLock@0:PROC
44+
EXTERN _DbgBreakPoint@0:PROC
45+
4146
PUBLIC _HalpCalibrateStallExecution@0
4247
_HalpCalibrateStallExecution@0:
4348

@@ -340,8 +345,10 @@ AndItsNotYou:
340345
pop ebp
341346
ret
342347

348+
#ifdef _USE_ML
349+
INIT_ASM ENDS
350+
#endif
343351

344-
#ifndef _MINIHAL_
345352
PUBLIC _KeStallExecutionProcessor@4
346353
_KeStallExecutionProcessor@4:
347354

@@ -367,6 +374,5 @@ SubtractLoop:
367374
Done:
368375
/* Return */
369376
ret 4
370-
#endif
371377

372378
END

hal/halx86/include/halp.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -244,6 +244,7 @@ typedef struct _HALP_ROLLOVER
244244
ULONG Increment;
245245
} HALP_ROLLOVER, *PHALP_ROLLOVER;
246246

247+
CODE_SEG("INIT")
247248
VOID
248249
NTAPI
249250
HalpCalibrateStallExecution(VOID);

hal/halx86/minihal/CMakeLists.txt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,7 @@ else()
4141
../generic/reboot.c)
4242
endif()
4343

44-
add_asm_files(mini_hal_asm ../generic/systimer.S)
45-
add_library(mini_hal ${MINI_HAL_SOURCE} ${mini_hal_asm})
44+
add_library(mini_hal ${MINI_HAL_SOURCE})
4645
target_compile_definitions(mini_hal PRIVATE _BLDR_ _NTSYSTEM_)
4746
add_dependencies(mini_hal psdk bugcodes asm)
4847
add_pch(mini_hal ../include/hal.h MINI_HAL_SOURCE)

hal/halx86/pc98/delay.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
/* PRIVATE FUNCTIONS *********************************************************/
1616

17+
CODE_SEG("INIT")
1718
VOID
1819
NTAPI
1920
HalpCalibrateStallExecution(VOID)

0 commit comments

Comments
 (0)