From 50cb29ad4a38d9fbeeaf4ad603cce9aaafcca2c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herm=C3=A8s=20B=C3=A9lusca-Ma=C3=AFto?= Date: Mon, 16 Mar 2026 16:39:18 +0100 Subject: [PATCH] [FREELDR][NTOS:INBV] SAL2-annotate headless-support functions --- boot/freeldr/freeldr/ntldr/headless.c | 35 +++++++++++++---------- boot/freeldr/freeldr/ntldr/winldr.c | 2 +- ntoskrnl/inbv/inbvport.c | 32 ++++++++++++--------- ntoskrnl/include/internal/inbv.h | 40 ++++++++++++--------------- 4 files changed, 58 insertions(+), 51 deletions(-) diff --git a/boot/freeldr/freeldr/ntldr/headless.c b/boot/freeldr/freeldr/ntldr/headless.c index 911e08cb2e5..b94edd50b2e 100644 --- a/boot/freeldr/freeldr/ntldr/headless.c +++ b/boot/freeldr/freeldr/ntldr/headless.c @@ -43,7 +43,8 @@ CPPORT Port[4] = /* FUNCTIONS ******************************************************************/ VOID -WinLdrLoadGUID(OUT PGUID SystemGuid) +WinLdrLoadGUID( + _Out_ PGUID SystemGuid) { PSYSID_UUID_ENTRY CurrentAddress; @@ -62,11 +63,12 @@ WinLdrLoadGUID(OUT PGUID SystemGuid) } BOOLEAN -WinLdrPortInitialize(IN ULONG BaudRate, - IN ULONG PortNumber, - IN PUCHAR PortAddress, - IN BOOLEAN TerminalConnected, - OUT PULONG PortId) +WinLdrPortInitialize( + _In_ ULONG BaudRate, + _In_ ULONG PortNumber, + _In_ PUCHAR PortAddress, + _In_ BOOLEAN TerminalConnected, + _Out_ PULONG PortId) { #if defined(SARCH_PC98) /* Set default baud rate */ @@ -174,21 +176,24 @@ WinLdrPortInitialize(IN ULONG BaudRate, } VOID -WinLdrPortPutByte(IN ULONG PortId, - IN UCHAR Byte) +WinLdrPortPutByte( + _In_ ULONG PortId, + _In_ UCHAR Byte) { CpPutByte(&Port[PortId], Byte); } BOOLEAN -WinLdrPortGetByte(IN ULONG PortId, - OUT PUCHAR Byte) +WinLdrPortGetByte( + _In_ ULONG PortId, + _Out_ PUCHAR Byte) { return CpGetByte(&Port[PortId], Byte, TRUE, FALSE) == CP_GET_SUCCESS; } BOOLEAN -WinLdrPortPollOnly(IN ULONG PortId) +WinLdrPortPollOnly( + _In_ ULONG PortId) { UCHAR Dummy; @@ -196,8 +201,9 @@ WinLdrPortPollOnly(IN ULONG PortId) } VOID -WinLdrEnableFifo(IN ULONG PortId, - IN BOOLEAN Enable) +WinLdrEnableFifo( + _In_ ULONG PortId, + _In_ BOOLEAN Enable) { CpEnableFifo(Port[PortId].Address, Enable); } @@ -299,7 +305,8 @@ WinLdrInitializeHeadlessPort(VOID) } VOID -WinLdrSetupEms(IN PCSTR BootOptions) +WinLdrSetupEms( + _In_ PCSTR BootOptions) { PCSTR Option; diff --git a/boot/freeldr/freeldr/ntldr/winldr.c b/boot/freeldr/freeldr/ntldr/winldr.c index 92f23c35931..f82e85d7e20 100644 --- a/boot/freeldr/freeldr/ntldr/winldr.c +++ b/boot/freeldr/freeldr/ntldr/winldr.c @@ -22,7 +22,7 @@ BOOLEAN IsAcpiPresent(VOID); extern HEADLESS_LOADER_BLOCK LoaderRedirectionInformation; extern BOOLEAN WinLdrTerminalConnected; -extern VOID WinLdrSetupEms(IN PCSTR BootOptions); +extern VOID WinLdrSetupEms(_In_ PCSTR BootOptions); PLOADER_SYSTEM_BLOCK WinLdrSystemBlock; /**/PCWSTR BootFileSystem = NULL;/**/ diff --git a/ntoskrnl/inbv/inbvport.c b/ntoskrnl/inbv/inbvport.c index 269c8f962be..c457f013ddd 100644 --- a/ntoskrnl/inbv/inbvport.c +++ b/ntoskrnl/inbv/inbvport.c @@ -25,7 +25,8 @@ CPPORT Port[4] = BOOLEAN NTAPI -InbvPortPollOnly(IN ULONG PortId) +InbvPortPollOnly( + _In_ ULONG PortId) { UCHAR Dummy; @@ -35,8 +36,9 @@ InbvPortPollOnly(IN ULONG PortId) BOOLEAN NTAPI -InbvPortGetByte(IN ULONG PortId, - OUT PUCHAR Byte) +InbvPortGetByte( + _In_ ULONG PortId, + _Out_ PUCHAR Byte) { /* Read a byte from the port */ return CpGetByte(&Port[PortId], Byte, TRUE, FALSE) == CP_GET_SUCCESS; @@ -44,8 +46,9 @@ InbvPortGetByte(IN ULONG PortId, VOID NTAPI -InbvPortPutByte(IN ULONG PortId, - IN UCHAR Byte) +InbvPortPutByte( + _In_ ULONG PortId, + _In_ UCHAR Byte) { /* Send the byte */ CpPutByte(&Port[PortId], Byte); @@ -53,8 +56,9 @@ InbvPortPutByte(IN ULONG PortId, VOID NTAPI -InbvPortEnableFifo(IN ULONG PortId, - IN BOOLEAN Enable) +InbvPortEnableFifo( + _In_ ULONG PortId, + _In_ BOOLEAN Enable) { /* Set FIFO as requested */ CpEnableFifo(Port[PortId].Address, Enable); @@ -62,7 +66,8 @@ InbvPortEnableFifo(IN ULONG PortId, VOID NTAPI -InbvPortTerminate(IN ULONG PortId) +InbvPortTerminate( + _In_ ULONG PortId) { /* The port is now available */ Port[PortId].Address = NULL; @@ -70,11 +75,12 @@ InbvPortTerminate(IN ULONG PortId) BOOLEAN NTAPI -InbvPortInitialize(IN ULONG BaudRate, - IN ULONG PortNumber, - IN PUCHAR PortAddress, - OUT PULONG PortId, - IN BOOLEAN IsMMIODevice) +InbvPortInitialize( + _In_ ULONG BaudRate, + _In_ ULONG PortNumber, + _In_ PUCHAR PortAddress, + _Out_ PULONG PortId, + _In_ BOOLEAN IsMMIODevice) { /* Not yet supported */ ASSERT(IsMMIODevice == FALSE); diff --git a/ntoskrnl/include/internal/inbv.h b/ntoskrnl/include/internal/inbv.h index 303646c2279..36ac96cabeb 100644 --- a/ntoskrnl/include/internal/inbv.h +++ b/ntoskrnl/include/internal/inbv.h @@ -109,42 +109,36 @@ InbvUpdateProgressBar( VOID NTAPI InbvPortEnableFifo( - IN ULONG PortId, - IN BOOLEAN Enable -); + _In_ ULONG PortId, + _In_ BOOLEAN Enable); BOOLEAN NTAPI InbvPortPollOnly( - IN ULONG PortId -); + _In_ ULONG PortId); BOOLEAN NTAPI InbvPortGetByte( - IN ULONG PortId, - OUT PUCHAR Byte -); + _In_ ULONG PortId, + _Out_ PUCHAR Byte); VOID NTAPI InbvPortPutByte( - IN ULONG PortId, - IN UCHAR Byte -); - -VOID -NTAPI -InbvPortTerminate( - IN ULONG PortId -); + _In_ ULONG PortId, + _In_ UCHAR Byte); BOOLEAN NTAPI InbvPortInitialize( - IN ULONG BaudRate, - IN ULONG PortNumber, - IN PUCHAR PortAddress, - OUT PULONG PortId, - IN BOOLEAN IsMMIODevice -); + _In_ ULONG BaudRate, + _In_ ULONG PortNumber, + _In_ PUCHAR PortAddress, + _Out_ PULONG PortId, + _In_ BOOLEAN IsMMIODevice); + +VOID +NTAPI +InbvPortTerminate( + _In_ ULONG PortId);