| /*****************************************************************************\ |
| * slurm_xlator.h - Definitions required to translate SLURM function names |
| * to aliases containing a prefix of "slurm_". |
| * |
| * This is required because some SLURM functions have common names |
| * (e.g. "debug" and "info"). If a user application defines these functions |
| * and uses SLURM APIs, they could link to the user function rather than |
| * the SLURM function. By renaming the functions, inappropriate linking |
| * should be avoided. |
| * |
| * All SLURM functions referenced from the switch, auth, and mpi plugins should |
| * have aliases established. Functions not referenced from the plugins |
| * need not be aliased. |
| * |
| * To use this header file: |
| * 1. In the module containing the exported function code, establish an |
| * alias for each of the functions after they are defined. |
| * #include "src/common/macros.h" |
| * strong_alias(<name>, slurm_<name>); |
| * 2. For each function, change it's name then include the appropriate |
| * header file with definitions. |
| * #define <name> slurm_<name> |
| * 3. In the plugin modules using the functions, include this header file |
| * and remove other slurm header files (they should all be in this header). |
| * This logic will have the plugin link only to the function names with |
| * the "slurm_" prefix. |
| * |
| * NOTE: Not all operating systems support this function aliasing (e.g. AIX). |
| ***************************************************************************** |
| * Copyright (C) 2004 The Regents of the University of California. |
| * Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER). |
| * Written by Mark Grondona <grondona1@llnl.gov>, |
| * Morris Jette <jette1@llnl.gov> |
| * CODE-OCEC-09-009. All rights reserved. |
| * |
| * This file is part of SLURM, a resource management program. |
| * For details, see <http://slurm.schedmd.com/>. |
| * Please also read the included file: DISCLAIMER. |
| * |
| * SLURM is free software; you can redistribute it and/or modify it under |
| * the terms of the GNU General Public License as published by the Free |
| * Software Foundation; either version 2 of the License, or (at your option) |
| * any later version. |
| * |
| * In addition, as a special exception, the copyright holders give permission |
| * to link the code of portions of this program with the OpenSSL library under |
| * certain conditions as described in each individual source file, and |
| * distribute linked combinations including the two. You must obey the GNU |
| * General Public License in all respects for all of the code used other than |
| * OpenSSL. If you modify file(s) with this exception, you may extend this |
| * exception to your version of the file(s), but you are not obligated to do |
| * so. If you do not wish to do so, delete this exception statement from your |
| * version. If you delete this exception statement from all source files in |
| * the program, then also delete it here. |
| * |
| * SLURM is distributed in the hope that it will be useful, but WITHOUT ANY |
| * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS |
| * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more |
| * details. |
| * |
| * You should have received a copy of the GNU General Public License along |
| * with SLURM; if not, write to the Free Software Foundation, Inc., |
| * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
| \*****************************************************************************/ |
| |
| #ifndef __SLURM_XLATOR_H__ |
| #define __SLURM_XLATOR_H__ |
| |
| #if HAVE_CONFIG_H |
| # include "config.h" |
| #endif |
| |
| #if USE_ALIAS |
| |
| /* arg_desc.[ch] functions*/ |
| #define arg_count slurm_arg_count |
| #define arg_idx_by_name slurm_arg_idx_by_name |
| #define arg_name_by_inx slurm_arg_name_by_inx |
| |
| /* bitstring.[ch] functions*/ |
| #define bit_alloc slurm_bit_alloc |
| #define bit_test slurm_bit_test |
| #define bit_set slurm_bit_set |
| #define bit_clear slurm_bit_clear |
| #define bit_nclear slurm_bit_nclear |
| #define bit_nset slurm_bit_nset |
| #define bit_ffc slurm_bit_ffc |
| #define bit_ffs slurm_bit_ffs |
| #define bit_free slurm_bit_free |
| #define bit_realloc slurm_bit_realloc |
| #define bit_size slurm_bit_size |
| #define bit_and slurm_bit_and |
| #define bit_not slurm_bit_not |
| #define bit_or slurm_bit_or |
| #define bit_set_count slurm_bit_set_count |
| #define bit_set_count_range slurm_bit_set_count_range |
| #define bit_clear_count slurm_bit_clear_count |
| #define bit_nset_max_count slurm_bit_nset_max_count |
| #define bit_and_set_count slurm_bit_and_set_count |
| #define bit_rotate_copy slurm_bit_rotate_copy |
| #define bit_rotate slurm_bit_rotate |
| #define bit_fmt slurm_bit_fmt |
| #define bit_unfmt slurm_bit_unfmt |
| #define bitfmt2int slurm_bitfmt2int |
| #define bit_fmt_hexmask slurm_bit_fmt_hexmask |
| #define bit_unfmt_hexmask slurm_bit_unfmt_hexmask |
| #define bit_fmt_binmask slurm_bit_fmt_binmask |
| #define bit_unfmt_binmask slurm_bit_unfmt_binmask |
| #define bit_fls slurm_bit_fls |
| #define bit_fill_gaps slurm_bit_fill_gaps |
| #define bit_super_set slurm_bit_super_set |
| #define bit_copy slurm_bit_copy |
| #define bit_pick_cnt slurm_bit_pick_cnt |
| #define bit_nffc slurm_bit_nffc |
| #define bit_noc slurm_bit_noc |
| #define bit_nffs slurm_bit_nffs |
| #define bit_copybits slurm_bit_copybits |
| |
| /* fd.[ch] functions */ |
| #define fd_read_n slurm_fd_read_n |
| #define fd_write_n slurm_fd_write_n |
| #define fd_set_blocking slurm_fd_set_blocking |
| #define fd_set_nonblocking slurm_fd_set_nonblocking |
| |
| /* hostlist.[ch] functions */ |
| #define hostlist_create slurm_hostlist_create |
| #define hostlist_copy slurm_hostlist_copy |
| #define hostlist_count slurm_hostlist_count |
| #define hostlist_delete slurm_hostlist_delete |
| #define hostlist_delete_host slurm_hostlist_delete_host |
| #define hostlist_delete_nth slurm_hostlist_delete_nth |
| #define hostlist_deranged_string slurm_hostlist_deranged_string |
| #define hostlist_deranged_string_malloc \ |
| slurm_hostlist_deranged_string_malloc |
| #define hostlist_deranged_string_xmalloc \ |
| slurm_hostlist_deranged_string_xmalloc |
| #define hostlist_destroy slurm_hostlist_destroy |
| #define hostlist_find slurm_hostlist_find |
| #define hostlist_iterator_create slurm_hostlist_iterator_create |
| #define hostlist_iterator_destroy slurm_hostlist_iterator_destroy |
| #define hostlist_iterator_reset slurm_hostlist_iterator_reset |
| #define hostlist_next slurm_hostlist_next |
| #define hostlist_next_range slurm_hostlist_next_range |
| #define hostlist_nth slurm_hostlist_nth |
| #define hostlist_pop slurm_hostlist_pop |
| #define hostlist_pop_range slurm_hostlist_pop_range |
| #define hostlist_push slurm_hostlist_push |
| #define hostlist_push_host slurm_hostlist_push_host |
| #define hostlist_push_list slurm_hostlist_push_list |
| #define hostlist_ranged_string slurm_hostlist_ranged_string |
| #define hostlist_ranged_string_malloc \ |
| slurm_hostlist_ranged_string_malloc |
| #define hostlist_ranged_string_xmalloc \ |
| slurm_hostlist_ranged_string_xmalloc |
| #define hostlist_remove slurm_hostlist_remove |
| #define hostlist_shift slurm_hostlist_shift |
| #define hostlist_shift_range slurm_hostlist_shift_range |
| #define hostlist_sort slurm_hostlist_sort |
| #define hostlist_uniq slurm_hostlist_uniq |
| #define hostset_copy slurm_hostset_copy |
| #define hostset_count slurm_hostset_count |
| #define hostset_create slurm_hostset_create |
| #define hostset_delete slurm_hostset_delete |
| #define hostset_destroy slurm_hostset_destroy |
| #define hostset_insert slurm_hostset_insert |
| #define hostset_shift slurm_hostset_shift |
| #define hostset_shift_range slurm_hostset_shift_range |
| #define hostset_within slurm_hostset_within |
| |
| /* list.[ch] functions */ |
| #define list_create slurm_list_create |
| #define list_destroy slurm_list_destroy |
| #define list_is_empty slurm_list_is_empty |
| #define list_count slurm_list_count |
| #define list_append slurm_list_append |
| #define list_prepend slurm_list_prepend |
| #define list_find_first slurm_list_find_first |
| #define list_delete_all slurm_list_delete_all |
| #define list_for_each slurm_list_for_each |
| #define list_sort slurm_list_sort |
| #define list_push slurm_list_push |
| #define list_pop slurm_list_pop |
| #define list_peek slurm_list_peek |
| #define list_enqueue slurm_list_enqueue |
| #define list_dequeue slurm_list_dequeue |
| #define list_iterator_create slurm_list_iterator_create |
| #define list_iterator_reset slurm_list_iterator_reset |
| #define list_iterator_destroy slurm_list_iterator_destroy |
| #define list_next slurm_list_next |
| #define list_insert slurm_list_insert |
| #define list_find slurm_list_find |
| #define list_remove slurm_list_remove |
| #define list_delete_item slurm_list_delete_item |
| #define list_install_fork_handlers slurm_list_install_fork_handlers |
| |
| /* log.[ch] functions */ |
| #define log_init slurm_log_init |
| #define log_reinit slurm_log_reinit |
| #define log_fini slurm_log_fini |
| #define log_alter slurm_log_alter |
| #define log_alter_with_fp slurm_log_alter_with_fp |
| #define log_set_fpfx slurm_log_set_fpfx |
| #define log_fp slurm_log_fp |
| #define log_has_data slurm_log_has_data |
| #define log_flush slurm_log_flush |
| #define dump_cleanup_list slurm_dump_cleanup_list |
| #define fatal_add_cleanup slurm_fatal_add_cleanup |
| #define fatal_add_cleanup_job slurm_fatal_add_cleanup_job |
| #define fatal_remove_cleanup slurm_fatal_remove_cleanup |
| #define fatal_remove_cleanup_job slurm_fatal_remove_cleanup_job |
| #define fatal_cleanup slurm_fatal_cleanup |
| #define fatal slurm_fatal |
| #define error slurm_error |
| #define info slurm_info |
| #define verbose slurm_verbose |
| #define debug slurm_debug |
| #define debug2 slurm_debug2 |
| #define debug3 slurm_debug3 |
| #define debug4 slurm_debug4 |
| #define debug5 slurm_debug5 |
| |
| /* macros.h functions |
| * None exported today. |
| * The header file used only for #define values. */ |
| |
| /* net.[ch] functions */ |
| #define net_stream_listen slurm_net_stream_listen |
| #define net_accept_stream slurm_net_accept_stream |
| #define net_set_low_water slurm_net_set_low_water |
| |
| /* pack.[ch] functions */ |
| #define create_buf slurm_create_buf |
| #define free_buf slurm_free_buf |
| #define grow_buf slurm_grow_buf |
| #define init_buf slurm_init_buf |
| #define xfer_buf_data slurm_xfer_buf_data |
| #define pack_time slurm_pack_time |
| #define unpack_time slurm_unpack_time |
| #define packdouble slurm_packdouble |
| #define unpackdouble slurm_unpackdouble |
| #define pack64 slurm_pack64 |
| #define unpack64 slurm_unpack64 |
| #define pack32 slurm_pack32 |
| #define unpack32 slurm_unpack32 |
| #define pack16 slurm_pack16 |
| #define unpack16 slurm_unpack16 |
| #define pack8 slurm_pack8 |
| #define unpack8 slurm_unpack8 |
| #define pack32_array slurm_pack32_array |
| #define unpack32_array slurm_unpack32_array |
| #define packmem slurm_packmem |
| #define unpackmem slurm_unpackmem |
| #define unpackmem_ptr slurm_unpackmem_ptr |
| #define unpackmem_xmalloc slurm_unpackmem_xmalloc |
| #define unpackmem_malloc slurm_unpackmem_malloc |
| #define packstr_array slurm_packstr_array |
| #define unpackstr_array slurm_unpackstr_array |
| #define packmem_array slurm_packmem_array |
| #define unpackmem_array slurm_unpackmem_array |
| |
| /* env.[ch] functions */ |
| #define setenvf slurm_setenvpf |
| #define unsetenvp slurm_unsetenvp |
| #define getenvp slurm_getenvp |
| #define env_array_create slurm_env_array_create |
| #define env_array_merge slurm_env_array_merge |
| #define env_array_copy slurm_env_array_copy |
| #define env_array_free slurm_env_array_free |
| #define env_array_append slurm_env_array_append |
| #define env_array_append_fmt slurm_env_array_append_fmt |
| #define env_array_overwrite slurm_env_array_overwrite |
| #define env_array_overwrite_fmt slurm_env_array_overwrite_fmt |
| |
| /* read_config.[ch] functions */ |
| #define destroy_config_key_pair slurm_destroy_config_key_pair |
| #define get_extra_conf_path slurm_get_extra_conf_path |
| #define sort_key_pairs slurm_sort_key_pairs |
| #define run_in_daemon slurm_run_in_daemon |
| |
| /* slurm_auth.[ch] functions |
| * None exported today. |
| * The header file used only for #define values. */ |
| |
| /* strlcpy.[ch] functions */ |
| #define strlcpy slurm_strlcpy |
| |
| /* switch.[ch] functions |
| * None exported today. |
| * The header file used only for #define values. */ |
| |
| /* xassert.[ch] functions */ |
| #define __xassert_failed slurm_xassert_failed |
| |
| /* xsignal.[ch] functions */ |
| #define xsignal slurm_xsignal |
| #define xsignal_save_mask slurm_xsignal_save_mask |
| #define xsignal_set_mask slurm_xsignal_set_mask |
| #define xsignal_block slurm_xsignal_block |
| #define xsignal_unblock slurm_xsignal_unblock |
| #define xsignal_sigset_create slurm_xsignal_sigset_create |
| |
| /* xstring.[ch] functions */ |
| #define _xstrcat slurm_xstrcat |
| #define _xstrncat slurm_xstrncat |
| #define _xstrcatchar slurm_xstrcatchar |
| #define _xslurm_strerrorcat slurm_xslurm_strerrorcat |
| #define _xstrftimecat slurm_xstrftimecat |
| #define _xiso8601timecat slurm_xiso8601timecat |
| #define _xrfc5424timecat slurm_xrfc5424timecat |
| #define _xstrfmtcat slurm_xstrfmtcat |
| #define _xmemcat slurm_xmemcat |
| #define xstrdup slurm_xstrdup |
| #define xstrdup_printf slurm_xstrdup_printf |
| #define xbasename slurm_xbasename |
| #define _xstrsubstitute slurm_xstrsubstitute |
| #define xstrstrip slurm_xstrstrip |
| #define xshort_hostname slurm_xshort_hostname |
| #define xstring_is_whitespace slurm_xstring_is_whitespace |
| #define xstrtolower slurm_xstrtolower |
| #define xstrchr slurm_xstrchr |
| #define xstrcmp slurm_xstrcmp |
| #define xstrcasecmp slurm_xstrcasecmp |
| |
| |
| /* slurm_protocol_defs.[ch] functions */ |
| #define preempt_mode_string slurm_preempt_mode_string |
| #define preempt_mode_num slurm_preempt_mode_num |
| #define job_reason_string slurm_job_reason_string |
| #define job_state_string slurm_job_state_string |
| #define job_state_string_compact slurm_job_state_string_compact |
| #define job_state_num slurm_job_state_num |
| #define node_state_string slurm_node_state_string |
| #define node_state_string_compact slurm_node_state_string_compact |
| #define private_data_string slurm_private_data_string |
| #define accounting_enforce_string slurm_accounting_enforce_string |
| #define conn_type_string slurm_conn_type_string |
| #define node_use_string slurm_node_use_string |
| #define bg_block_state_string slurm_bg_block_state_string |
| #define reservation_flags_string slurm_reservation_flags_string |
| |
| /* slurmdbd_defs.[ch] functions */ |
| #define slurmdbd_free_list_msg slurmdb_slurmdbd_free_list_msg |
| #define slurmdbd_free_rc_msg slurmdb_slurmdbd_free_rc_msg |
| #define slurmdbd_free_usage_msg slurmdb_slurmdbd_free_usage_msg |
| #define slurmdbd_free_id_rc_msg slurmdb_slurmdbd_free_id_rc_msg |
| |
| /* plugin.[ch] functions */ |
| #define plugin_get_syms slurm_plugin_get_syms |
| #define plugin_load_and_link slurm_plugin_load_and_link |
| #define plugin_strerror slurm_plugin_strerror |
| #define plugin_unload slurm_plugin_unload |
| |
| /* plugrack.[ch] functions */ |
| #define plugrack_create slurm_plugrack_create |
| #define plugrack_destroy slurm_plugrack_destroy |
| #define plugrack_read_dir slurm_plugrack_read_dir |
| #define plugrack_set_major_type slurm_plugrack_set_major_type |
| #define plugrack_set_paranoia slurm_plugrack_set_paranoia |
| #define plugrack_use_by_type slurm_plugrack_use_by_type |
| |
| #define jobacctinfo_pack slurm_jobacctinfo_pack |
| #define jobacctinfo_unpack slurm_jobacctinfo_unpack |
| #define jobacctinfo_create slurm_jobacctinfo_create |
| #define jobacctinfo_destroy slurm_jobacctinfo_destroy |
| |
| /* node_select.[ch] functions */ |
| #define destroy_select_ba_request slurm_destroy_select_ba_request |
| |
| /* parse_config.[ch] functions */ |
| #define s_p_hashtbl_create slurm_s_p_hashtbl_create |
| #define s_p_hashtbl_destroy slurm_s_p_hashtbl_destroy |
| #define s_p_parse_file slurm_s_p_parse_file |
| #define s_p_parse_pair slurm_s_p_parse_pair |
| #define s_p_parse_line slurm_s_p_parse_line |
| #define s_p_hashtbl_merge slurm_s_p_hashtbl_merge |
| #define s_p_get_string slurm_s_p_get_string |
| #define s_p_get_long slurm_s_p_get_long |
| #define s_p_get_uint16 slurm_s_p_get_uint16 |
| #define s_p_get_uint32 slurm_s_p_get_uint32 |
| #define s_p_get_pointer slurm_s_p_get_pointer |
| #define s_p_get_array slurm_s_p_get_array |
| #define s_p_get_boolean slurm_s_p_get_boolean |
| #define s_p_dump_values slurm_s_p_dump_values |
| #define transfer_s_p_options slurm_transfer_s_p_options |
| |
| /* slurm_step_layout.[ch] functions */ |
| #define pack_slurm_step_layout slurm_pack_slurm_step_layout |
| #define unpack_slurm_step_layout slurm_unpack_slurm_step_layout |
| |
| #endif /* USE_ALIAS */ |
| |
| /* Include the function definitions after redefining their names. */ |
| #include "src/common/arg_desc.h" |
| #include "src/common/bitstring.h" |
| #include "src/common/hostlist.h" |
| #include "src/common/slurm_jobacct_gather.h" |
| #include "src/common/list.h" |
| #include "src/common/log.h" |
| #include "src/common/macros.h" |
| #include "src/common/node_select.h" |
| #include "src/common/pack.h" |
| #include "src/common/parse_config.h" |
| #include "src/common/read_config.h" |
| #include "src/common/env.h" |
| #include "src/common/slurm_auth.h" |
| #include "src/common/strlcpy.h" |
| #include "src/common/switch.h" |
| #include "src/common/working_cluster.h" |
| #include "src/common/xassert.h" |
| #include "src/common/xmalloc.h" |
| #include "src/common/xsignal.h" |
| #include "src/common/xstring.h" |
| #include "src/common/slurm_step_layout.h" |
| |
| #endif /*__SLURM_XLATOR_H__*/ |