/*
 * Copyright (C) 2022 Apple Inc. All rights reserved.
 *
 * This document is the property of Apple Inc.
 * It is considered confidential and proprietary.
 *
 * This document may not be reproduced or transmitted in any form,
 * in whole or in part, without the express written permission of
 * Apple Inc.
 */

#include <stdint.h>

#pragma once

#if __has_include(<ecb_artefacts/xnu_proxy_endpoints_defs.h>)
#include <ecb_artefacts/xnu_proxy_endpoints_defs.h>
#endif

/* identifiers for xnu upcall handlers reachable through xnuproxy. */
typedef enum : uint64_t {
    /* Default tighbeamc-generated handler */
    XNUPROXY_UPCALL_TIGHTBEAM = 0,
    /* HelloUpcall test handler (from c-hello-exclave) */
    XNUPROXY_UPCALL_HELLOUPCALL,
    /* HelloTightbeamUpcall test handler (from swift-hello-exclave) */
    XNUPROXY_UPCALL_HELLOTIGHTBEAMUPCALL,
    /* V2 upcall tightbeam handler */
    XNUPROXY_UPCALL_TIGHTBEAM_V2,
    /* New tightbeamc-generated handler for PMM upcalls*/
    XNUPROXY_PMM_UPCALL_TIGHTBEAM_V2,

    NUM_XNUPROXY_UPCALLS,
} xnuproxy_upcalls_t;

typedef uint32_t xnuproxy_exclaves_sensor_type_t;
