summaryrefslogtreecommitdiffhomepage
path: root/dev/launch/src/AppMain.cc
blob: b75b928a427349c54595e6e129b500f95298f270 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/* -------------------------------------------

   Copyright (C) 2025, Amlal El Mahrouss, licensed under the Apache 2.0 license.

   ------------------------------------------- */

#include <LaunchKit/Foundation.h>
#include <libSystem/SystemKit/Err.h>
#include <libSystem/SystemKit/Syscall.h>

/// @note This called by _NeMain from its own runtime.
extern "C" SInt32 nelaunch_startup_fn(Void) {
  /// Start LaunchHelpers.fwrk services, and make the launcher manageable too (via mgmt.launch)
  UInt32* ret = (UInt32*) libsys_syscall_arg_1(libsys_hash_64("__launch_register_launch_service"));

  if (ret) {
    switch (*ret) {
      case kErrorSuccess: {
        libsys_syscall_arg_1(libsys_hash_64("__launch_listen_as_root"));
        return *ret;
      }
      default:
        break;
    }
  }

  return kErrorExecutable;
}