https://git.reactos.org/?p=reactos.git;a=commitdiff;h=559933d6de36d3ae808d4…
commit 559933d6de36d3ae808d4a287197572d5ed4f367
Author: Andrei Miloiu <miloiuandrei(a)gmail.com>
AuthorDate: Sun Jan 21 22:32:41 2024 +0200
Commit: GitHub <noreply(a)github.com>
CommitDate: Sun Jan 21 21:32:41 2024 +0100
[LABEL] Update Romanian (ro-RO) translation (#6392)
---
base/applications/cmdutils/label/lang/ro-RO.rc | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)
diff --git a/base/applications/cmdutils/label/lang/ro-RO.rc b/base/applications/cmdutils/label/lang/ro-RO.rc
index fe1df81ad2a..98d836287db 100644
--- a/base/applications/cmdutils/label/lang/ro-RO.rc
+++ b/base/applications/cmdutils/label/lang/ro-RO.rc
@@ -3,24 +3,23 @@
* LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
* PURPOSE: Romanian resource file
* TRANSLATORS: Copyright 2011-2019 Ștefan Fulea <stefan.fulea(a)mail.com>
- * Copyright 2023 Andrei Miloiu <miloiuandrei(a)gmail.com>
+ * Copyright 2023-2024 Andrei Miloiu <miloiuandrei(a)gmail.com>
*/
LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL
STRINGTABLE
BEGIN
-// STRING_LABEL_HELP "Afișează sau modifică eticheta unei unități (de stocare).\n\nLABEL [unitate:][etichetă]\n"
STRING_LABEL_HELP "Crează, schimbă sau șterge denumirea unui disc.\n\n\
LABEL [disc:][denumire]\n\n\
disc: Specifică litera unui disc.\n\
denumire Specifică denumirea unui disc."
- STRING_LABEL_TEXT1 "Volumul unității %c: este denumit ca %s\n"
- STRING_LABEL_TEXT2 "Volumul unității %c: nu este denumit.\n"
+ STRING_LABEL_TEXT1 "Volumul discului %c: este %s\n"
+ STRING_LABEL_TEXT2 "Volumul discului %c: nu are denumire.\n"
STRING_LABEL_TEXT3 "Numărul de serie al volumului este %04X-%04X\n"
- STRING_LABEL_TEXT4 "Introduceți denumirea unității (opțională, de 32 caractere), apoi ENTER "
+ STRING_LABEL_TEXT4 "Denumirea volumului (32 de caractere, ENTER dacă dacă nu există)?"
STRING_LABEL_PROMPT "Ștergeți denumirea actuală a volumului (D/N)? "
STRING_LABEL_OPTIONS "DN"
- STRING_ERROR_INVALID_DRIVE "Specificarea unității este eronată\n"
+ STRING_ERROR_INVALID_DRIVE "Specificarea discului este nevalidă\n"
STRING_ERROR_INVALID_LABEL "Denumirea volumului e nevalidă\n"
END
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=a0d7030a0670a362f6680…
commit a0d7030a0670a362f6680971684e2bf34351c554
Author: Andrei Miloiu <miloiuandrei(a)gmail.com>
AuthorDate: Sun Jan 21 22:28:27 2024 +0200
Commit: GitHub <noreply(a)github.com>
CommitDate: Sun Jan 21 21:28:27 2024 +0100
[ACPPAGE] Update Romanian (ro-RO) translation (#6394)
---
dll/shellext/acppage/lang/ro-RO.rc | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/dll/shellext/acppage/lang/ro-RO.rc b/dll/shellext/acppage/lang/ro-RO.rc
index 0a72863bbf7..76bcda12f18 100644
--- a/dll/shellext/acppage/lang/ro-RO.rc
+++ b/dll/shellext/acppage/lang/ro-RO.rc
@@ -28,7 +28,7 @@ END
IDD_EDITCOMPATIBILITYMODES DIALOGEX 0, 0, 309, 134
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
-CAPTION "Modurile de compatibilitate"
+CAPTION "Editează modurile de compatibilitate"
FONT 8, "MS Shell Dlg", 0, 0, 0x0
BEGIN
LISTBOX IDC_NEWCOMPATIBILITYMODE,6,18,132,90,LBS_NOINTEGRALHEIGHT | WS_VSCROLL
@@ -45,7 +45,7 @@ END
STRINGTABLE
BEGIN
IDS_COMPAT_TITLE "Compatibilitate"
- IDS_FAILED_NETWORK "Modurile de compatibilitate nu pot fi instituite pentru acest program deoarece rezidă pe o unitate de stocare în rețea."
- IDS_FAILED_PROTECTED "Modurile de compatibilitate nu pot fi instituite pentru acest program deoarece este parte din ReactOS."
+ IDS_FAILED_NETWORK "Modurile de compatibilitate nu pot fi setate pentru acest program deoarece rezidă pe o unitate de stocare în rețea."
+ IDS_FAILED_PROTECTED "Modurile de compatibilitate nu pot fi setate pentru acest program deoarece este parte din ReactOS."
END
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=748a2e165534e107492a2…
commit 748a2e165534e107492a2c97c231deb3e5d79bbc
Author: Justin Miller <justin.miller(a)reactos.org>
AuthorDate: Sat Jan 20 08:59:13 2024 -0800
Commit: GitHub <noreply(a)github.com>
CommitDate: Sat Jan 20 08:59:13 2024 -0800
[NTOS] Fix boot on UP build - PrcbLocks are not used on UP (#6391)
On the uniprocessor kernel KiAcquirePrcbLock is a stub that doesn't modify the current Prcb's PrcbLock value.
Quickly protect this assert around CONFIG_SMP
---
ntoskrnl/include/internal/ke_x.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/ntoskrnl/include/internal/ke_x.h b/ntoskrnl/include/internal/ke_x.h
index fcf3edb2786..ae431649773 100644
--- a/ntoskrnl/include/internal/ke_x.h
+++ b/ntoskrnl/include/internal/ke_x.h
@@ -1359,7 +1359,9 @@ KxQueueReadyThread(IN PKTHREAD Thread,
/* Sanity checks */
ASSERT(Prcb == KeGetCurrentPrcb());
+#ifdef CONFIG_SMP
ASSERT(Prcb->PrcbLock != 0);
+#endif
ASSERT(Thread->State == Running);
ASSERT(Thread->NextProcessor == Prcb->Number);
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=ab528ac6ae105b19d4575…
commit ab528ac6ae105b19d457587dc680d8016720bc3d
Author: Oleg Dubinskiy <oleg.dubinskij30(a)gmail.com>
AuthorDate: Sat Jan 20 15:58:39 2024 +0100
Commit: GitHub <noreply(a)github.com>
CommitDate: Sat Jan 20 15:58:39 2024 +0100
[NTOS:KE] Acquire PRCB lock before marking thread ready for execution in dispatch interrupt routine (#6387)
Fixed in x86 and ARM (this was already done in x64).
This is needed because thread preparation routine KxQueueReadyThread()
releases PRCB lock, but does not acquire it, so that the locking must
always be done outside the function, same as in all its other usage cases.
This fixes an assert from release PRCB routine, when booting x86 ReactOS
in SMP mode, because it attempts to release the lock when it is not
actually acquired.
Addendum to commit a011d19ed.
+ Add an assert in KxQueueReadyThread() to ensure the PRCB lock is actually acquired.
---
ntoskrnl/include/internal/ke_x.h | 1 +
ntoskrnl/ke/arm/thrdini.c | 3 +++
ntoskrnl/ke/i386/thrdini.c | 3 +++
3 files changed, 7 insertions(+)
diff --git a/ntoskrnl/include/internal/ke_x.h b/ntoskrnl/include/internal/ke_x.h
index 70fa05e1d12..fcf3edb2786 100644
--- a/ntoskrnl/include/internal/ke_x.h
+++ b/ntoskrnl/include/internal/ke_x.h
@@ -1359,6 +1359,7 @@ KxQueueReadyThread(IN PKTHREAD Thread,
/* Sanity checks */
ASSERT(Prcb == KeGetCurrentPrcb());
+ ASSERT(Prcb->PrcbLock != 0);
ASSERT(Thread->State == Running);
ASSERT(Thread->NextProcessor == Prcb->Number);
diff --git a/ntoskrnl/ke/arm/thrdini.c b/ntoskrnl/ke/arm/thrdini.c
index 190b73f926c..c32b39c392d 100644
--- a/ntoskrnl/ke/arm/thrdini.c
+++ b/ntoskrnl/ke/arm/thrdini.c
@@ -334,6 +334,9 @@ KiDispatchInterrupt(VOID)
}
else if (Prcb->NextThread)
{
+ /* Acquire the PRCB lock */
+ KiAcquirePrcbLock(Prcb);
+
/* Capture current thread data */
OldThread = Prcb->CurrentThread;
NewThread = Prcb->NextThread;
diff --git a/ntoskrnl/ke/i386/thrdini.c b/ntoskrnl/ke/i386/thrdini.c
index 3214f560872..91e8ad3931f 100644
--- a/ntoskrnl/ke/i386/thrdini.c
+++ b/ntoskrnl/ke/i386/thrdini.c
@@ -495,6 +495,9 @@ KiDispatchInterrupt(VOID)
}
else if (Prcb->NextThread)
{
+ /* Acquire the PRCB lock */
+ KiAcquirePrcbLock(Prcb);
+
/* Capture current thread data */
OldThread = Prcb->CurrentThread;
NewThread = Prcb->NextThread;
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=f72d6dd4c5071a7c16d0b…
commit f72d6dd4c5071a7c16d0bd842d8ff7bd2549ea4a
Author: Oleg Dubinskiy <oleg.dubinskij30(a)gmail.com>
AuthorDate: Sat Jan 20 15:55:20 2024 +0100
Commit: GitHub <noreply(a)github.com>
CommitDate: Sat Jan 20 15:55:20 2024 +0100
[NTOS:KE] Set IRQL to SYNCH_LEVEL when exiting from idle after the thread is ready for execution (#6386)
CORE-1697
Raise IRQL to SYNCH_LEVEL when exiting from the idle thread in the
idle loop, in case it is scheduled for execution. Then restore it
back to DISPATCH_LEVEL, after this is done.
This behaviour is a bit similar to the way it's done on x64.
This IRQL raise is necessary only in SMP builds.
Calls are placed in CONFIG_SMP ifdef: this avoids unnecessary IRQL
changes on UP, since SYNCH_LEVEL and DISPATCH_LEVEL are identical
there, unlike in MP, where SYNCH_LEVEL is IPI_LEVEL - 2 actually.
This prevents bugcheck DRIVER_IRQL_NOT_LESS_OR_EQUAL when booting
SMP x86 ReactOS, in KiTimerExpiration when calling it 2nd time.
The BSOD happened due to IRQL levels mismatch.
---
ntoskrnl/ke/amd64/stubs.c | 4 ++++
ntoskrnl/ke/arm/thrdini.c | 10 ++++++++++
ntoskrnl/ke/i386/thrdini.c | 10 ++++++++++
3 files changed, 24 insertions(+)
diff --git a/ntoskrnl/ke/amd64/stubs.c b/ntoskrnl/ke/amd64/stubs.c
index cb2d4a37248..7326f7a2cd0 100644
--- a/ntoskrnl/ke/amd64/stubs.c
+++ b/ntoskrnl/ke/amd64/stubs.c
@@ -139,14 +139,18 @@ KiIdleLoop(VOID)
/* The thread is now running */
NewThread->State = Running;
+#ifdef CONFIG_SMP
/* Do the swap at SYNCH_LEVEL */
KfRaiseIrql(SYNCH_LEVEL);
+#endif
/* Switch away from the idle thread */
KiSwapContext(APC_LEVEL, OldThread);
+#ifdef CONFIG_SMP
/* Go back to DISPATCH_LEVEL */
KeLowerIrql(DISPATCH_LEVEL);
+#endif
}
else
{
diff --git a/ntoskrnl/ke/arm/thrdini.c b/ntoskrnl/ke/arm/thrdini.c
index 89f1664608b..190b73f926c 100644
--- a/ntoskrnl/ke/arm/thrdini.c
+++ b/ntoskrnl/ke/arm/thrdini.c
@@ -193,8 +193,18 @@ KiIdleLoop(VOID)
/* The thread is now running */
NewThread->State = Running;
+#ifdef CONFIG_SMP
+ /* Do the swap at SYNCH_LEVEL */
+ KfRaiseIrql(SYNCH_LEVEL);
+#endif
+
/* Switch away from the idle thread */
KiSwapContext(APC_LEVEL, OldThread);
+
+#ifdef CONFIG_SMP
+ /* Go back to DISPATCH_LEVEL */
+ KeLowerIrql(DISPATCH_LEVEL);
+#endif
}
else
{
diff --git a/ntoskrnl/ke/i386/thrdini.c b/ntoskrnl/ke/i386/thrdini.c
index cfc497bfc69..3214f560872 100644
--- a/ntoskrnl/ke/i386/thrdini.c
+++ b/ntoskrnl/ke/i386/thrdini.c
@@ -300,8 +300,18 @@ KiIdleLoop(VOID)
/* The thread is now running */
NewThread->State = Running;
+#ifdef CONFIG_SMP
+ /* Do the swap at SYNCH_LEVEL */
+ KfRaiseIrql(SYNCH_LEVEL);
+#endif
+
/* Switch away from the idle thread */
KiSwapContext(APC_LEVEL, OldThread);
+
+#ifdef CONFIG_SMP
+ /* Go back to DISPATCH_LEVEL */
+ KeLowerIrql(DISPATCH_LEVEL);
+#endif
}
else
{