/* * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) IPADS@SJTU 2023. All rights reserved. */ #ifndef __SBI_DOMAIN_CONTEXT_H__ #define __SBI_DOMAIN_CONTEXT_H__ #include struct sbi_domain; /** * Enter a specific domain context synchronously * @param dom pointer to domain * * @return 0 on success and negative error code on failure */ int sbi_domain_context_enter(struct sbi_domain *dom); /** * Exit the current domain context, and then return to the caller * of sbi_domain_context_enter or attempt to start the next domain * context to be initialized * * @return 0 on success and negative error code on failure */ int sbi_domain_context_exit(void); /** * Initialize domain context support * * @return 0 on success and negative error code on failure */ int sbi_domain_context_init(void); /* Deinitialize domain context support */ void sbi_domain_context_deinit(void); #endif // __SBI_DOMAIN_CONTEXT_H__