| Asterisk - The Open Source Telephony Project GIT-master-27fb039
    | 
Call Parking Resource. More...
#include "asterisk.h"#include "parking/res_parking.h"#include "asterisk/config.h"#include "asterisk/config_options.h"#include "asterisk/utils.h"#include "asterisk/module.h"#include "asterisk/cli.h"#include "asterisk/astobj2.h"#include "asterisk/features.h"#include "asterisk/manager.h"#include "asterisk/pbx.h"
Go to the source code of this file.
| Data Structures | |
| struct | parking_config | 
| struct | parking_global_config | 
| Functions | |
| static void | __reg_module (void) | 
| static void | __unreg_module (void) | 
| static struct parking_lot * | alloc_new_parking_lot (struct parking_lot_cfg *lot_cfg) | 
| static | AO2_GLOBAL_OBJ_STATIC (globals) | 
| struct ast_module * | AST_MODULE_SELF_SYM (void) | 
| static struct parking_lot_cfg * | clone_parkinglot_cfg (struct parking_lot_cfg *source, const char *name) | 
| CONFIG_INFO_STANDARD (cfg_info, globals, parking_config_alloc,.files=ACO_FILES(&parking_lot_conf),.pre_apply_config=config_parking_preapply,.post_apply_config=link_configured_disable_marked_lots,) | |
| static int | config_parking_preapply (void) | 
| static int | configure_parking_extensions (void) | 
| static struct parking_lot * | create_dynamic_lot_full (const char *name, struct ast_channel *chan, int forced) | 
| static void | disable_marked_lots (void) | 
| static int | extension_is_compatible (struct parking_lot_cfg *lot_cfg, const char *app_type, struct ast_exten *extension) | 
| const char * | find_channel_parking_lot_name (struct ast_channel *chan) | 
| Find parking lot name from channel. | |
| static void | generate_or_link_lots_to_configs (void) | 
| struct ao2_container * | get_parking_lot_container (void) | 
| Get a pointer to the parking lot container for purposes such as iteration. | |
| static void | link_configured_disable_marked_lots (void) | 
| static int | load_module (void) | 
| static void | mark_lots_as_disabled (void) | 
| static void * | named_item_find (struct ao2_container *container, const char *name) | 
| find an item in a container by its name | |
| static int | option_handler_findslot (const struct aco_option *opt, struct ast_variable *var, void *obj) | 
| Custom field handler for the findslot option. | |
| static int | option_handler_parkedfeature (const struct aco_option *opt, struct ast_variable *var, void *obj) | 
| Custom field handler for feature mapping on parked call pickup options. | |
| static int | option_handler_parkpos (const struct aco_option *opt, struct ast_variable *var, void *obj) | 
| Custom field handler for parking positions. | |
| static int | parked_user_cmp_fn (void *obj, void *arg, int flags) | 
| static int | parked_user_sort_fn (const void *obj_left, const void *obj_right, int flags) | 
| static int | parking_add_extension (struct ast_context *context, int replace, const char *extension, int priority, const char *application, const char *data, const char *registrar) | 
| static void * | parking_config_alloc (void) | 
| allocator callback for parking_config. Notice it returns void * since it is only used by the backend config code | |
| static void | parking_config_destructor (void *obj) | 
| destructor for parking_config | |
| struct parking_lot * | parking_create_dynamic_lot (const char *name, struct ast_channel *chan) | 
| Create a dynamic parking lot. | |
| int | parking_dynamic_lots_enabled (void) | 
| Check global configuration to see if dynamic parking is enabled. | |
| static int | parking_feature_flag_cfg (int *param, const char *var) | 
| Maps string values for option_handler_parkedfeature to their ENUM values. | |
| static void | parking_global_config_destructor (void *obj) | 
| destructor for parking_global_config | |
| struct parking_lot * | parking_lot_build_or_update (struct parking_lot_cfg *lot_cfg, int dynamic) | 
| If a parking lot exists in the parking lot list already, update its status to match the provided configuration and return a reference return a reference to it. Otherwise, create a parking lot struct based on a parking lot configuration and return a reference to the new one. | |
| static void * | parking_lot_cfg_alloc (const char *cat) | 
| create a parking lot structure | |
| static int | parking_lot_cfg_cmp_fn (void *obj, void *arg, const int flags) | 
| int | parking_lot_cfg_create_extensions (struct parking_lot_cfg *lot_cfg) | 
| Add extensions for a parking lot configuration. | |
| static void | parking_lot_cfg_destructor (void *obj) | 
| Destroy a parking lot cfg object. | |
| static int | parking_lot_cfg_hash_fn (const void *obj, const int flags) | 
| void | parking_lot_cfg_remove_extensions (struct parking_lot_cfg *lot_cfg) | 
| Remove extensions belonging to a parking lot configuration. | |
| static void | parking_lot_destructor (void *obj) | 
| static void | parking_lot_disable (struct parking_lot *lot) | 
| struct parking_lot * | parking_lot_find_by_name (const char *lot_name) | 
| Find a parking lot based on its name. | |
| int | parking_lot_remove_if_unused (struct parking_lot *lot) | 
| Remove a parking lot from the usable lists if it is no longer involved in any calls and no configuration currently claims it. | |
| static int | parking_lot_sort_fn (const void *obj_left, const void *obj_right, int flags) | 
| static int | reload_module (void) | 
| static void | remove_all_configured_parking_lot_extensions (void) | 
| static void | remove_pending_parking_lot_extensions (struct parking_config *cfg_pending) | 
| static int | unload_module (void) | 
| static int | verify_default_parking_lot (void) | 
| Variables | |
| static struct ast_module_info | __mod_info = { .name = AST_MODULE, .flags = AST_MODFLAG_LOAD_ORDER , .description = "Call Parking Resource" , .key = ASTERISK_GPL_KEY , .buildopt_sum = AST_BUILDOPT_SUM, .support_level = AST_MODULE_SUPPORT_CORE, .load = load_module, .unload = unload_module, .reload = reload_module, .load_pri = AST_MODPRI_DEVSTATE_PROVIDER, } | 
| static const struct ast_module_info * | ast_module_info = &__mod_info | 
| static struct aco_type | global_option | 
| struct aco_type * | global_options [] = ACO_TYPES(&global_option) | 
| struct aco_file | parking_lot_conf | 
| static struct ao2_container * | parking_lot_container | 
| static struct aco_type | parking_lot_type | 
| struct aco_type * | parking_lot_types [] = ACO_TYPES(&parking_lot_type) | 
Call Parking Resource.
Definition in file res_parking.c.
| 
 | static | 
Definition at line 1356 of file res_parking.c.
| 
 | static | 
Definition at line 1356 of file res_parking.c.
| 
 | static | 
Definition at line 698 of file res_parking.c.
References ao2_alloc, AO2_ALLOC_OPT_LOCK_RWLOCK, ao2_cleanup, ao2_container_alloc_list, AO2_CONTAINER_ALLOC_OPT_DUPS_REJECT, ast_string_field_init, ast_string_field_set, name, parking_lot_cfg::name, NULL, parked_user_cmp_fn(), parked_user_sort_fn(), parking_lot::parked_users, and parking_lot_destructor().
Referenced by parking_lot_build_or_update().
| 
 | static | 
| struct ast_module * AST_MODULE_SELF_SYM | ( | void | ) | 
Definition at line 1356 of file res_parking.c.
| 
 | static | 
Definition at line 1000 of file res_parking.c.
References ast_string_field_set, ast_string_fields_copy, parking_lot_cfg::comebackdialtime, parking_lot_cfg::comebacktoorigin, name, NULL, parking_lot_cfg::parkaddhints, parking_lot_cfg::parkedcallhangup, parking_lot_cfg::parkedcallrecording, parking_lot_cfg::parkedcallreparking, parking_lot_cfg::parkedcalltransfers, parking_lot_cfg::parkedplay, parking_lot_cfg::parkext_exclusive, parking_lot_cfg::parkfindnext, parking_lot_cfg_alloc(), parking_lot_cfg::parking_start, parking_lot_cfg::parking_stop, and parking_lot_cfg::parkingtime.
Referenced by create_dynamic_lot_full().
| CONFIG_INFO_STANDARD | ( | cfg_info | , | 
| globals | , | ||
| parking_config_alloc | , | ||
| . | files = ACO_FILES(&parking_lot_conf), | ||
| . | pre_apply_config = config_parking_preapply, | ||
| . | post_apply_config = link_configured_disable_marked_lots | ||
| ) | 
| 
 | static | 
Definition at line 1216 of file res_parking.c.
References configure_parking_extensions(), mark_lots_as_disabled(), and verify_default_parking_lot().
| 
 | static | 
Definition at line 1171 of file res_parking.c.
References aco_pending_config(), ao2_cleanup, ao2_iterator_destroy(), ao2_iterator_init(), ao2_iterator_next, ao2_ref, ast_log, LOG_ERROR, NULL, parking_lot_cfg_create_extensions(), parking_config::parking_lots, RAII_VAR, remove_all_configured_parking_lot_extensions(), and remove_pending_parking_lot_extensions().
Referenced by config_parking_preapply().
| 
 | static | 
Definition at line 1031 of file res_parking.c.
References ao2_cleanup, ao2_lock, ao2_ref, ao2_unlock, ast_channel_lock, ast_channel_unlock, ast_log, ast_strdupa, ast_string_field_set, ast_strlen_zero(), parking_lot::cfg, clone_parkinglot_cfg(), DEFAULT_PARKING_LOT, LOG_ERROR, LOG_NOTICE, name, NULL, parking_dynamic_lots_enabled(), parking_lot_build_or_update(), parking_lot_cfg_create_extensions(), parking_lot_container, parking_lot_find_by_name(), parking_lot_cfg::parking_start, parking_lot_cfg::parking_stop, pbx_builtin_getvar_helper(), RAII_VAR, and S_OR.
Referenced by parking_create_dynamic_lot().
| 
 | static | 
Definition at line 1231 of file res_parking.c.
References ao2_iterator_destroy(), ao2_iterator_init(), ao2_iterator_next, ao2_ref, parking_lot::disable_mark, parking_lot_container, and parking_lot_disable().
Referenced by link_configured_disable_marked_lots().
| 
 | static | 
Definition at line 791 of file res_parking.c.
References ast_assert, ast_debug, ast_get_context_name(), ast_get_extension_app(), ast_get_extension_context(), ast_get_extension_name(), ast_get_extension_registrar(), ast_log, BASE_REGISTRAR, LOG_ERROR, and parking_lot_cfg::name.
Referenced by parking_lot_cfg_create_extensions().
| const char * find_channel_parking_lot_name | ( | struct ast_channel * | chan | ) | 
Find parking lot name from channel.
| chan | The channel we want the parking lot name for | 
Definition at line 668 of file res_parking.c.
References ast_channel_parkinglot(), ast_strlen_zero(), DEFAULT_PARKING_LOT, name, and pbx_builtin_getvar_helper().
Referenced by park_common_setup2(), parked_call_app_exec(), and parking_park_call().
| 
 | static | 
Definition at line 976 of file res_parking.c.
References ao2_cleanup, ao2_global_obj_ref, ao2_iterator_destroy(), ao2_iterator_init(), ao2_iterator_next, ao2_ref, globals, parking_lot_build_or_update(), and RAII_VAR.
Referenced by link_configured_disable_marked_lots().
| struct ao2_container * get_parking_lot_container | ( | void | ) | 
Get a pointer to the parking lot container for purposes such as iteration.
Definition at line 657 of file res_parking.c.
References parking_lot_container.
Referenced by cli_display_parking_lot_list(), complete_parking_lot(), manager_parking_lot_list(), manager_parking_status_all_lots(), and metermaidstate().
| 
 | static | 
Definition at line 1245 of file res_parking.c.
References disable_marked_lots(), and generate_or_link_lots_to_configs().
| 
 | static | 
Definition at line 1268 of file res_parking.c.
References ACO_EXACT, aco_info_init(), aco_option_register, aco_option_register_custom, aco_process_config(), ACO_PROCESS_ERROR, AO2_ALLOC_OPT_LOCK_MUTEX, ao2_container_alloc_list, AO2_CONTAINER_ALLOC_OPT_DUPS_REJECT, AST_MODULE_LOAD_DECLINE, AST_MODULE_LOAD_SUCCESS, error(), FLDSET, global_options, load_parking_applications(), load_parking_bridge_features(), load_parking_devstate(), load_parking_manager(), load_parking_tests(), load_parking_ui(), NULL, OPT_BOOL_T, OPT_PARKEDHANGUP, OPT_PARKEDPLAY, OPT_PARKEDRECORDING, OPT_PARKEDREPARKING, OPT_PARKEDTRANSFERS, OPT_STRINGFIELD_T, OPT_UINT_T, option_handler_findslot(), option_handler_parkedfeature(), option_handler_parkpos(), parking_lot_container, parking_lot_sort_fn(), parking_lot_types, STRFLDSET, and unload_module().
| 
 | static | 
Definition at line 1204 of file res_parking.c.
References ao2_iterator_destroy(), ao2_iterator_init(), ao2_iterator_next, ao2_ref, parking_lot::disable_mark, and parking_lot_container.
Referenced by config_parking_preapply().
| 
 | static | 
find an item in a container by its name
XXX This is actually incredibly generic and might be better placed in something like astobj2 if there isn't already an equivalent
| container | ao2container where we want the item from | 
| name | name of the item wanted to be found | 
| NULL | if not found. | 
Definition at line 557 of file res_parking.c.
References ao2_find, container, name, and OBJ_KEY.
Referenced by parking_lot_build_or_update(), and parking_lot_find_by_name().
| 
 | static | 
Custom field handler for the findslot option.
Definition at line 586 of file res_parking.c.
References ast_log, LOG_WARNING, parking_lot_cfg::parkfindnext, and var.
Referenced by load_module().
| 
 | static | 
Custom field handler for feature mapping on parked call pickup options.
Definition at line 625 of file res_parking.c.
References aco_option_get_flags(), ast_assert, NULL, OPT_PARKEDHANGUP, OPT_PARKEDPLAY, OPT_PARKEDRECORDING, OPT_PARKEDREPARKING, OPT_PARKEDTRANSFERS, parking_lot_cfg::parkedcallhangup, parking_lot_cfg::parkedcallrecording, parking_lot_cfg::parkedcallreparking, parking_lot_cfg::parkedcalltransfers, parking_lot_cfg::parkedplay, parking_feature_flag_cfg(), and var.
Referenced by load_module().
| 
 | static | 
Custom field handler for parking positions.
Definition at line 565 of file res_parking.c.
References ast_log, LOG_WARNING, parking_lot_cfg::parking_start, parking_lot_cfg::parking_stop, and var.
Referenced by load_module().
| 
 | static | 
Definition at line 495 of file res_parking.c.
References CMP_MATCH, and parked_user::start.
Referenced by alloc_new_parking_lot().
| 
 | static | 
Definition at line 507 of file res_parking.c.
References parked_user::parking_space, and parked_user::start.
Referenced by alloc_new_parking_lot().
| 
 | static | 
Definition at line 774 of file res_parking.c.
References ast_add_extension2_nolock(), ast_free_ptr(), ast_strdup, NULL, priority, registrar, and replace().
Referenced by parking_lot_cfg_create_extensions().
| 
 | static | 
allocator callback for parking_config. Notice it returns void * since it is only used by the backend config code
Definition at line 437 of file res_parking.c.
References ao2_alloc, AO2_ALLOC_OPT_LOCK_MUTEX, ao2_cleanup, ao2_container_alloc_hash, ao2_ref, NULL, parking_config_destructor(), parking_global_config_destructor(), parking_lot_cfg_cmp_fn(), parking_lot_cfg_hash_fn(), and RAII_VAR.
| 
 | static | 
destructor for parking_config
Definition at line 423 of file res_parking.c.
References ao2_cleanup, parking_config::global, and parking_config::parking_lots.
Referenced by parking_config_alloc().
| struct parking_lot * parking_create_dynamic_lot | ( | const char * | name, | 
| struct ast_channel * | chan | ||
| ) | 
Create a dynamic parking lot.
| name | Dynamic parking lot name to create | 
| chan | Channel parkee to get dynamic parking lot parameters from | 
| NULL | on error | 
Definition at line 1120 of file res_parking.c.
References create_dynamic_lot_full(), and name.
Referenced by park_common_setup2(), and parking_park_call().
| int parking_dynamic_lots_enabled | ( | void | ) | 
Check global configuration to see if dynamic parking is enabled.
| 1 | if dynamic parking is enabled | 
| 0 | if dynamic parking is disabled | 
Definition at line 989 of file res_parking.c.
References ao2_cleanup, ao2_global_obj_ref, globals, and RAII_VAR.
Referenced by cli_display_parking_global(), and create_dynamic_lot_full().
| 
 | static | 
Maps string values for option_handler_parkedfeature to their ENUM values.
Definition at line 605 of file res_parking.c.
References ast_false(), AST_FEATURE_FLAG_BYBOTH, AST_FEATURE_FLAG_BYCALLEE, AST_FEATURE_FLAG_BYCALLER, and var.
Referenced by option_handler_parkedfeature().
| 
 | static | 
destructor for parking_global_config
Definition at line 431 of file res_parking.c.
Referenced by parking_config_alloc().
| struct parking_lot * parking_lot_build_or_update | ( | struct parking_lot_cfg * | cfg, | 
| int | dynamic | ||
| ) | 
If a parking lot exists in the parking lot list already, update its status to match the provided configuration and return a reference return a reference to it. Otherwise, create a parking lot struct based on a parking lot configuration and return a reference to the new one.
| cfg | The configuration being used as a reference to build the parking lot from. | 
| dynamic | non-zero if creating a dynamic parking lot with this. Don't replace existing parking lots. Ever. | 
| NULL | if it was not found and could not be allocated | 
Definition at line 929 of file res_parking.c.
References alloc_new_parking_lot(), ao2_cleanup, ao2_link, ao2_ref, ast_log, parking_lot::cfg, parking_lot::disable_mark, LOG_ERROR, parking_lot::mode, parking_lot_cfg::name, named_item_find(), NULL, parking_lot_container, PARKINGLOT_DYNAMIC, and PARKINGLOT_NORMAL.
Referenced by create_dynamic_lot_full(), and generate_or_link_lots_to_configs().
| 
 | static | 
create a parking lot structure
| cat | name given to the parking lot | 
| NULL | failure | 
| non-NULL | successfully allocated parking lot | 
Definition at line 521 of file res_parking.c.
References ao2_alloc, ao2_cleanup, ast_string_field_init, ast_string_field_set, name, NULL, and parking_lot_cfg_destructor().
Referenced by clone_parkinglot_cfg(), and verify_default_parking_lot().
| 
 | static | 
Definition at line 398 of file res_parking.c.
References CMP_MATCH, CMP_STOP, parking_lot_cfg::name, OBJ_KEY, OBJ_PARTIAL_KEY, and OBJ_POINTER.
Referenced by parking_config_alloc().
| int parking_lot_cfg_create_extensions | ( | struct parking_lot_cfg * | lot_cfg | ) | 
Add extensions for a parking lot configuration.
| lot_cfg | parking lot configuration to generate extensions for | 
| 0 | on success | 
| non-zero | on failure | 
Definition at line 819 of file res_parking.c.
References ast_context_find_or_create(), ast_free, ast_get_extension_registrar(), ast_log, AST_MAX_EXTENSION, ast_str_buffer(), ast_str_create, ast_str_set(), ast_string_field_build, ast_strlen_zero(), ast_unlock_context(), ast_unlock_contexts(), ast_wrlock_context(), ast_wrlock_contexts(), BASE_REGISTRAR, E_MATCH, extension_is_compatible(), LOG_ERROR, parking_lot_cfg::name, NULL, PARK_APPLICATION, parking_lot_cfg::parkaddhints, PARKED_CALL_APPLICATION, parking_lot_cfg::parkext, parking_lot_cfg::parkext_exclusive, parking_add_extension(), parking_lot_cfg::parking_con, parking_lot_cfg::parking_start, parking_lot_cfg::parking_stop, pbx_find_extension(), PRIORITY_HINT, RAII_VAR, registrar, parking_lot_cfg::registrar, and pbx_find_info::stacklen.
Referenced by configure_parking_extensions(), and create_dynamic_lot_full().
| 
 | static | 
Destroy a parking lot cfg object.
Definition at line 487 of file res_parking.c.
References ast_string_field_free_memory, and parking_lot_cfg_remove_extensions().
Referenced by parking_lot_cfg_alloc().
| 
 | static | 
Definition at line 380 of file res_parking.c.
References ast_assert, ast_str_hash(), parking_lot_cfg::name, OBJ_KEY, OBJ_PARTIAL_KEY, and OBJ_POINTER.
Referenced by parking_config_alloc().
| void parking_lot_cfg_remove_extensions | ( | struct parking_lot_cfg * | lot_cfg | ) | 
Remove extensions belonging to a parking lot configuration.
| lot_cfg | parking lot configuratin to remove extensions from | 
Definition at line 724 of file res_parking.c.
References ast_context_destroy(), ast_string_field_set, ast_strlen_zero(), NULL, registrar, and parking_lot_cfg::registrar.
Referenced by parking_lot_cfg_destructor(), remove_all_configured_parking_lot_extensions(), and remove_pending_parking_lot_extensions().
| 
 | static | 
Definition at line 686 of file res_parking.c.
References ao2_cleanup, ast_bridge_destroy(), ast_string_field_free_memory, parking_lot::cfg, parking_lot::parked_users, and parking_lot::parking_bridge.
Referenced by alloc_new_parking_lot().
| 
 | static | 
Definition at line 474 of file res_parking.c.
References parking_lot::disable_mark, parking_lot::mode, parking_lot_remove_if_unused(), PARKINGLOT_DISABLED, and PARKINGLOT_DYNAMIC.
Referenced by disable_marked_lots().
| struct parking_lot * parking_lot_find_by_name | ( | const char * | lot_name | ) | 
Find a parking lot based on its name.
| lot_name | Name of the parking lot sought | 
| NULL | if no parking lot with the name specified exists | 
Definition at line 662 of file res_parking.c.
References named_item_find(), and parking_lot_container.
Referenced by cli_display_parking_lot(), create_dynamic_lot_full(), func_get_parkingslot_channel(), manager_parking_status_single_lot(), park_common_setup2(), parked_call_app_exec(), and parking_park_call().
| int parking_lot_remove_if_unused | ( | struct parking_lot * | lot | ) | 
Remove a parking lot from the usable lists if it is no longer involved in any calls and no configuration currently claims it.
| lot | Which parking lot is being checked for elimination | 
| 0 | if the parking lot was removed | 
| -1 | if the parking lot wasn't removed. | 
Definition at line 460 of file res_parking.c.
References ao2_container_count(), ao2_unlink, parking_lot::mode, parking_lot::parked_users, parking_lot_container, and PARKINGLOT_DISABLED.
Referenced by parking_lot_disable(), parking_lot_retrieve_parked_user(), and unpark_parked_user().
| 
 | static | 
Definition at line 304 of file res_parking.c.
References parking_lot::name, OBJ_KEY, OBJ_PARTIAL_KEY, and OBJ_POINTER.
Referenced by load_module().
| 
 | static | 
Definition at line 1341 of file res_parking.c.
References aco_process_config(), ACO_PROCESS_ERROR, and AST_MODULE_LOAD_DECLINE.
| 
 | static | 
Definition at line 739 of file res_parking.c.
References ao2_cleanup, ao2_global_obj_ref, ao2_iterator_destroy(), ao2_iterator_init(), ao2_iterator_next, ao2_ref, ast_context_destroy(), BASE_REGISTRAR, parking_lot::cfg, globals, NULL, parking_lot_cfg_remove_extensions(), and RAII_VAR.
Referenced by configure_parking_extensions(), and unload_module().
| 
 | static | 
Definition at line 1156 of file res_parking.c.
References ao2_iterator_destroy(), ao2_iterator_init(), ao2_iterator_next, ao2_ref, ast_context_destroy(), BASE_REGISTRAR, NULL, parking_lot_cfg_remove_extensions(), and parking_config::parking_lots.
Referenced by configure_parking_extensions().
| 
 | static | 
Definition at line 1251 of file res_parking.c.
References aco_info_destroy(), ao2_cleanup, ao2_global_obj_release, globals, NULL, parking_lot_container, remove_all_configured_parking_lot_extensions(), unload_parking_applications(), unload_parking_bridge_features(), unload_parking_devstate(), unload_parking_manager(), unload_parking_tests(), and unload_parking_ui().
Referenced by load_module().
| 
 | static | 
Definition at line 1132 of file res_parking.c.
References aco_pending_config(), aco_set_defaults(), ao2_cleanup, ao2_find, ao2_link, ast_log, AST_LOG_NOTICE, ast_string_field_set, DEFAULT_PARKING_EXTEN, DEFAULT_PARKING_LOT, NULL, OBJ_KEY, parking_lot_cfg_alloc(), parking_lot_type, parking_config::parking_lots, and RAII_VAR.
Referenced by config_parking_preapply().
| 
 | static | 
Definition at line 1356 of file res_parking.c.
| 
 | static | 
Definition at line 1356 of file res_parking.c.
| 
 | static | 
Definition at line 345 of file res_parking.c.
| struct aco_type* global_options[] = ACO_TYPES(&global_option) | 
Definition at line 353 of file res_parking.c.
Referenced by load_module().
| struct aco_file parking_lot_conf | 
Definition at line 367 of file res_parking.c.
| 
 | static | 
All parking lots that are currently alive in some fashion can be obtained from here
Definition at line 326 of file res_parking.c.
Referenced by create_dynamic_lot_full(), disable_marked_lots(), get_parking_lot_container(), load_module(), mark_lots_as_disabled(), parking_lot_build_or_update(), parking_lot_find_by_name(), parking_lot_remove_if_unused(), and unload_module().
| 
 | static | 
Definition at line 355 of file res_parking.c.
Referenced by verify_default_parking_lot().
| struct aco_type* parking_lot_types[] = ACO_TYPES(&parking_lot_type) | 
Definition at line 365 of file res_parking.c.
Referenced by load_module().