Merge commit 'bb07a7334f064c9512bd7e387dab1b9ef9e228cd' into 3gx-master
* commit 'bb07a7334f064c9512bd7e387dab1b9ef9e228cd': (23 commits) update gitignore and makefile rosalina: ndm + shutdown issue workaround rosalina: ndm doesn't exist on SAFE_FIRM Update bug-report.md, etc rosalina: forgot float suffix in luminance.c rosalina: display min/max luminance hbloader: allow homebrew to write to the shared config page rosalina: minor menu changes rosalina/sm: properly interact with ndm k11ext: refactor ndm:u workaround k11ext: fix oops rosalina: properly rewrite luminance-setting menu, etc. sysmodules: use libctru configmem defs Fix release building (#1454) sysmodules: introduce "luma shared config", rewrite ndmu workaround rosalina: autoclose menu on sleep mode/shell closed to prevent lockup rosalina: prevent disconnect when shell is closed rosalina: properly restore screen filters when lid is reopened rosalina: prevent sleep mode entry if debugger/input redir is enabled to prevent lockup Separate exception dump parser in another repo, add boot.3dsx to release command ... # Conflicts: # .gitignore # exception_dump_parser/luma3ds_exception_dump_parser/__main__.py # sysmodules/rosalina/source/input_redirection.c # sysmodules/rosalina/source/menu.c
This commit is contained in:
@@ -3,7 +3,7 @@ Open source replacement of the Arm11 SM system module.
|
||||
This is licensed under the MIT license.
|
||||
|
||||
# Usage
|
||||
To run this system module, use a recent release or commit of [Luma3DS](https://github.com/AuroraWright/Luma3DS/), build this project and copy sm.cxi to /luma/sysmodules/.
|
||||
To run this system module, use a recent release or commit of [Luma3DS](https://github.com/LumaTeam/Luma3DS/), build this project and copy sm.cxi to /luma/sysmodules/.
|
||||
|
||||
# Credits
|
||||
Everyone that helped me fix some of stupid bugs I had been making: @fincs, @Hikari-chin, etc.
|
||||
|
||||
@@ -8,6 +8,18 @@ This is part of 3ds_sm, which is licensed under the MIT license (see LICENSE for
|
||||
#include "notifications.h"
|
||||
#include "processes.h"
|
||||
|
||||
#include <stdatomic.h>
|
||||
|
||||
static bool isNotificationInhibited(const ProcessData *processData, u32 notificationId)
|
||||
{
|
||||
(void)processData;
|
||||
switch(notificationId)
|
||||
{
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
static bool doPublishNotification(ProcessData *processData, u32 notificationId, u32 flags)
|
||||
{
|
||||
if((flags & 1) && processData->nbPendingNotifications != 0) // only send if not already pending
|
||||
@@ -126,7 +138,7 @@ Result PublishToSubscriber(u32 notificationId, u32 flags)
|
||||
{
|
||||
for(ProcessData *node = processDataInUseList.first; node != NULL; node = node->next)
|
||||
{
|
||||
if(!node->notificationEnabled)
|
||||
if(!node->notificationEnabled || isNotificationInhibited(node, notificationId))
|
||||
continue;
|
||||
|
||||
u16 i;
|
||||
@@ -146,7 +158,7 @@ Result PublishAndGetSubscriber(u32 *pidCount, u32 *pidList, u32 notificationId,
|
||||
u32 nb = 0;
|
||||
for(ProcessData *node = processDataInUseList.first; node != NULL; node = node->next)
|
||||
{
|
||||
if(!node->notificationEnabled)
|
||||
if(!node->notificationEnabled || isNotificationInhibited(node, notificationId))
|
||||
continue;
|
||||
|
||||
u16 i;
|
||||
|
||||
@@ -17,3 +17,5 @@ Result PublishToSubscriber(u32 notificationId, u32 flags);
|
||||
Result PublishAndGetSubscriber(u32 *pidCount, u32 *pidList, u32 notificationId, u32 flags);
|
||||
Result PublishToProcess(Handle process, u32 notificationId);
|
||||
Result PublishToAll(u32 notificationId);
|
||||
|
||||
Result AddToNdmuWorkaroundCount(s32 count);
|
||||
|
||||
Reference in New Issue
Block a user