mirror of
https://github.com/switchbrew/libnx.git
synced 2025-06-21 12:32:40 +02:00
Add compiler optimization hint to remove unused domain handling code
This commit is contained in:
parent
2224be3f88
commit
4eda677b93
@ -166,6 +166,11 @@ NX_CONSTEXPR void serviceCreateDomainSubservice(Service* s, Service* parent, u32
|
|||||||
*/
|
*/
|
||||||
NX_INLINE void serviceClose(Service* s)
|
NX_INLINE void serviceClose(Service* s)
|
||||||
{
|
{
|
||||||
|
#if defined(NX_SERVICE_ASSUME_NON_DOMAIN)
|
||||||
|
if (s->object_id)
|
||||||
|
__builtin_unreachable();
|
||||||
|
#endif
|
||||||
|
|
||||||
if (s->own_handle || s->object_id) {
|
if (s->own_handle || s->object_id) {
|
||||||
cmifMakeCloseRequest(armGetTls(), s->own_handle ? 0 : s->object_id);
|
cmifMakeCloseRequest(armGetTls(), s->own_handle ? 0 : s->object_id);
|
||||||
svcSendSyncRequest(s->session);
|
svcSendSyncRequest(s->session);
|
||||||
@ -182,6 +187,11 @@ NX_INLINE void serviceClose(Service* s)
|
|||||||
*/
|
*/
|
||||||
NX_INLINE Result serviceClone(Service* s, Service* out_s)
|
NX_INLINE Result serviceClone(Service* s, Service* out_s)
|
||||||
{
|
{
|
||||||
|
#if defined(NX_SERVICE_ASSUME_NON_DOMAIN)
|
||||||
|
if (s->object_id)
|
||||||
|
__builtin_unreachable();
|
||||||
|
#endif
|
||||||
|
|
||||||
out_s->session = 0;
|
out_s->session = 0;
|
||||||
out_s->own_handle = 1;
|
out_s->own_handle = 1;
|
||||||
out_s->object_id = s->object_id;
|
out_s->object_id = s->object_id;
|
||||||
@ -197,6 +207,11 @@ NX_INLINE Result serviceClone(Service* s, Service* out_s)
|
|||||||
*/
|
*/
|
||||||
NX_INLINE Result serviceCloneEx(Service* s, u32 tag, Service* out_s)
|
NX_INLINE Result serviceCloneEx(Service* s, u32 tag, Service* out_s)
|
||||||
{
|
{
|
||||||
|
#if defined(NX_SERVICE_ASSUME_NON_DOMAIN)
|
||||||
|
if (s->object_id)
|
||||||
|
__builtin_unreachable();
|
||||||
|
#endif
|
||||||
|
|
||||||
out_s->session = 0;
|
out_s->session = 0;
|
||||||
out_s->own_handle = 1;
|
out_s->own_handle = 1;
|
||||||
out_s->object_id = s->object_id;
|
out_s->object_id = s->object_id;
|
||||||
@ -211,9 +226,6 @@ NX_INLINE Result serviceCloneEx(Service* s, u32 tag, Service* out_s)
|
|||||||
*/
|
*/
|
||||||
NX_INLINE Result serviceConvertToDomain(Service* s)
|
NX_INLINE Result serviceConvertToDomain(Service* s)
|
||||||
{
|
{
|
||||||
if (s->object_id)
|
|
||||||
return 0; // Nothing to do
|
|
||||||
|
|
||||||
if (!s->own_handle)
|
if (!s->own_handle)
|
||||||
{
|
{
|
||||||
// For overridden services, create a clone first.
|
// For overridden services, create a clone first.
|
||||||
@ -298,6 +310,11 @@ NX_INLINE void* serviceMakeRequest(
|
|||||||
u32 num_objects, const Service* const* objects,
|
u32 num_objects, const Service* const* objects,
|
||||||
u32 num_handles, const Handle* handles
|
u32 num_handles, const Handle* handles
|
||||||
) {
|
) {
|
||||||
|
#if defined(NX_SERVICE_ASSUME_NON_DOMAIN)
|
||||||
|
if (s->object_id)
|
||||||
|
__builtin_unreachable();
|
||||||
|
#endif
|
||||||
|
|
||||||
CmifRequestFormat fmt = {};
|
CmifRequestFormat fmt = {};
|
||||||
fmt.object_id = s->object_id;
|
fmt.object_id = s->object_id;
|
||||||
fmt.request_id = request_id;
|
fmt.request_id = request_id;
|
||||||
@ -358,6 +375,11 @@ NX_INLINE Result serviceParseResponse(
|
|||||||
u32 num_out_objects, Service* out_objects,
|
u32 num_out_objects, Service* out_objects,
|
||||||
const SfOutHandleAttrs out_handle_attrs, Handle* out_handles
|
const SfOutHandleAttrs out_handle_attrs, Handle* out_handles
|
||||||
) {
|
) {
|
||||||
|
#if defined(NX_SERVICE_ASSUME_NON_DOMAIN)
|
||||||
|
if (s->object_id)
|
||||||
|
__builtin_unreachable();
|
||||||
|
#endif
|
||||||
|
|
||||||
CmifResponse res = {};
|
CmifResponse res = {};
|
||||||
bool is_domain = s->object_id != 0;
|
bool is_domain = s->object_id != 0;
|
||||||
Result rc = cmifParseResponse(&res, armGetTls(), is_domain, out_size);
|
Result rc = cmifParseResponse(&res, armGetTls(), is_domain, out_size);
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
// Copyright 2017 plutoo
|
// Copyright 2017 plutoo
|
||||||
|
#define NX_SERVICE_ASSUME_NON_DOMAIN
|
||||||
#include "types.h"
|
#include "types.h"
|
||||||
#include "result.h"
|
#include "result.h"
|
||||||
#include "kernel/detect.h"
|
#include "kernel/detect.h"
|
||||||
@ -38,6 +39,7 @@ static void _fatalImpl(u32 cmd_id, Result err, FatalType type, FatalContext *ctx
|
|||||||
.buffers = { { ctx, sizeof(*ctx) } },
|
.buffers = { { ctx, sizeof(*ctx) } },
|
||||||
.in_send_pid = true,
|
.in_send_pid = true,
|
||||||
);
|
);
|
||||||
|
serviceClose(&s);
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (type) {
|
switch (type) {
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
#define NX_SERVICE_ASSUME_NON_DOMAIN
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "types.h"
|
#include "types.h"
|
||||||
#include "result.h"
|
#include "result.h"
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
// Copyright 2017 plutoo
|
// Copyright 2017 plutoo
|
||||||
|
#define NX_SERVICE_ASSUME_NON_DOMAIN
|
||||||
#include "types.h"
|
#include "types.h"
|
||||||
#include "result.h"
|
#include "result.h"
|
||||||
#include "arm/atomics.h"
|
#include "arm/atomics.h"
|
||||||
|
Loading…
Reference in New Issue
Block a user