15db71995Sopenharmony_ci/* 25db71995Sopenharmony_ci * 35db71995Sopenharmony_ci * Copyright (c) 2014-2021 The Khronos Group Inc. 45db71995Sopenharmony_ci * Copyright (c) 2014-2021 Valve Corporation 55db71995Sopenharmony_ci * Copyright (c) 2014-2021 LunarG, Inc. 65db71995Sopenharmony_ci * 75db71995Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 85db71995Sopenharmony_ci * you may not use this file except in compliance with the License. 95db71995Sopenharmony_ci * You may obtain a copy of the License at 105db71995Sopenharmony_ci * 115db71995Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 125db71995Sopenharmony_ci * 135db71995Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 145db71995Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 155db71995Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 165db71995Sopenharmony_ci * See the License for the specific language governing permissions and 175db71995Sopenharmony_ci * limitations under the License. 185db71995Sopenharmony_ci * 195db71995Sopenharmony_ci * Author: Jon Ashburn <jon@lunarg.com> 205db71995Sopenharmony_ci * Author: Courtney Goeltzenleuchter <courtney@LunarG.com> 215db71995Sopenharmony_ci * Author: Chia-I Wu <olvaffe@gmail.com> 225db71995Sopenharmony_ci * Author: Chia-I Wu <olv@lunarg.com> 235db71995Sopenharmony_ci * Author: Mark Lobodzinski <mark@LunarG.com> 245db71995Sopenharmony_ci * Author: Lenny Komow <lenny@lunarg.com> 255db71995Sopenharmony_ci * Author: Charles Giessen <charles@lunarg.com> 265db71995Sopenharmony_ci * 275db71995Sopenharmony_ci */ 285db71995Sopenharmony_ci 295db71995Sopenharmony_ci#pragma once 305db71995Sopenharmony_ci 315db71995Sopenharmony_ci#include "loader_common.h" 325db71995Sopenharmony_ci 335db71995Sopenharmony_ci// Common functionality for accessing environemnt variables and whether the process is running in priviledged mode 345db71995Sopenharmony_ci 355db71995Sopenharmony_cichar *loader_getenv(const char *name, const struct loader_instance *inst); 365db71995Sopenharmony_civoid loader_free_getenv(char *val, const struct loader_instance *inst); 375db71995Sopenharmony_ci 385db71995Sopenharmony_ci#if defined(WIN32) || COMMON_UNIX_PLATFORMS 395db71995Sopenharmony_ci 405db71995Sopenharmony_cibool is_high_integrity(); 415db71995Sopenharmony_ci 425db71995Sopenharmony_cichar *loader_secure_getenv(const char *name, const struct loader_instance *inst); 435db71995Sopenharmony_ci 445db71995Sopenharmony_ci#endif 455db71995Sopenharmony_ci 465db71995Sopenharmony_ciVkResult parse_generic_filter_environment_var(const struct loader_instance *inst, const char *env_var_name, 475db71995Sopenharmony_ci struct loader_envvar_filter *filter_struct); 485db71995Sopenharmony_ciVkResult parse_layers_disable_filter_environment_var(const struct loader_instance *inst, 495db71995Sopenharmony_ci struct loader_envvar_disable_layers_filter *disable_struct); 505db71995Sopenharmony_ciVkResult parse_layer_environment_var_filters(const struct loader_instance *inst, struct loader_envvar_all_filters *layer_filters); 515db71995Sopenharmony_cibool check_name_matches_filter_environment_var(const char *name, const struct loader_envvar_filter *filter_struct); 525db71995Sopenharmony_ciVkResult loader_add_environment_layers(struct loader_instance *inst, const enum layer_type_flags type_flags, 535db71995Sopenharmony_ci const struct loader_envvar_all_filters *filters, 545db71995Sopenharmony_ci struct loader_pointer_layer_list *target_list, 555db71995Sopenharmony_ci struct loader_pointer_layer_list *expanded_target_list, 565db71995Sopenharmony_ci const struct loader_layer_list *source_list); 57