ftp.nice.ch/pub/next/unix/developer/pcn.2.0.s.tar.gz#/src/linker/pcn_linker.h

This is pcn_linker.h in view mode; [Download] [Up]

/*
 * PCN System Linker -- pcnlink
 * Author:      Steve Tuecke
 *              Argonne National Laboratory
 *
 * Please see the DISCLAIMER file in the top level directory of the
 * distribution regarding the provisions under which this software
 * is distributed.
 *
 * pcn_linker.h
 *
 * Miscellaneous header information needed by the linker.
 */

#ifndef _PCN_INCLUDE_PCN_LINKER_H
#define _PCN_INCLUDE_PCN_LINKER_H

#define LINKER_NAME "pcnlink"

#ifndef TRUE
#define TRUE	1
#define FALSE	0
#endif


/*
 * Used for communication from the procedure handler to the
 * node driver to tell the node driver if the procedure
 * handler has terminated or is continuing execution as
 * a result of the latest request.
 */
#define PROC_TERMINATE	0
#define PROC_CONTINUE	1


/*
 * Procedure table message types.
 */
#define PROC_TABLE_NOT_FOUND	-1


/*
 * Some debugging stuff
 */
/*
#ifndef DEBUG
#define DEBUG 1
#define DEBUG_BUF_OVERFLOW 1
#endif
*/

#define DG_G_DRIVER		1
#define DG_N_DRIVER		2
#define DG_FILES		3
#define DG_PROC			4
#define DG_TABLE		5
#define DG_CALLS		6
#define DG_WRITE		7
#define DG_CODE			8


/*
 * Requests that the procedure handler will receive.
 */
#define REQUEST_CALLED_BY	1
#define REQUEST_STOP_IF_UNUSED	2
#define REQUEST_RESOLVE_CALLS	3
#define REQUEST_PROC_EXTERNS	4
#define REQUEST_FOR_EXTERNS	5
#define REQUEST_FOR_TABLE	6
#define REQUEST_CONSTANTS	7
#define REQUEST_COUNTERS	8
#define REQUEST_CODE		9
#define REQUEST_PROC_HEADERS	10
#define REQUEST_TERMINATE	11


/*
 * Reply codes to requests...
 */
#define REPLY_OUTPUT		101
#define REPLY_OUTPUT_LIST	102
#define REPLY_MESSAGE		103
#define REPLY_ERROR_BAD_CALL	104


/*
 * The 'params' tuple is passed around to everything and contains
 * parameters that define the specific actions of the run.  It is
 * just a tuple containing all of the parameters.  The
 * following macros can be used to access the various parameters
 * by name.
 */
#define params_boot_mod				params[0]
#define params_boot_proc			params[1]
#define params_main_mod				params[2]
#define params_main_proc			params[3]
#define params_verbose				params[4]
#define params_strip_trailing_underscore	params[5]
#define params_pdb				params[6]
#define params_profile				params[7]
#define params_link_all				params[8]
#define params_dg_g_driver_level		params[9]
#define params_dg_n_driver_level		params[10]
#define params_dg_files_level			params[11]
#define params_dg_proc_level			params[12]
#define params_dg_table_level			params[13]
#define params_dg_calls_level			params[14]
#define params_dg_write_level			params[15]
#define params_dg_code_level			params[16]

#define PARAMS_TUPLE_SIZE		17
    
/*
 * Default values for the params
 */
#define DEFAULT_BOOT_MOD			"boot"
#define DEFAULT_BOOT_PROC			"boot"
#define DEFAULT_MAIN_MOD			"main"
#define DEFAULT_MAIN_PROC			"main"
#define DEFAULT_VERBOSE				FALSE
#define DEFAULT_STRIP_TRAILING_UNDERSCORE	FALSE
#define DEFAULT_PDB				FALSE
#define DEFAULT_PROFILE				FALSE
#define DEFAULT_LINK_ALL			FALSE
#define DEFAULT_DG_G_DRIVER_LEVEL		0
#define DEFAULT_DG_N_DRIVER_LEVEL		0
#define DEFAULT_DG_FILES_LEVEL			0
#define DEFAULT_DG_PROC_LEVEL			0
#define DEFAULT_DG_TABLE_LEVEL			0
#define DEFAULT_DG_CALLS_LEVEL			0
#define DEFAULT_DG_WRITE_LEVEL			0
#define DEFAULT_DG_CODE_LEVEL			0


/*
 * Default values for the resulting executable
 */
#define exe_defaults_user_banner		exe_defaults[0]
#define exe_defaults_nodes			exe_defaults[1]
#define exe_defaults_heap_size			exe_defaults[2]
#define exe_defaults_heap_inc_proximity		exe_defaults[3]
#define exe_defaults_heap_increment		exe_defaults[4]
#define exe_defaults_heap_free_after_gc		exe_defaults[5]
#define exe_defaults_heap_lowat			exe_defaults[6]
#define exe_defaults_heap_hiwat			exe_defaults[7]
#define exe_defaults_gc_slack			exe_defaults[8]
#define exe_defaults_irt_size			exe_defaults[9]
#define exe_defaults_irt_increment		exe_defaults[10]
#define exe_defaults_gsq_interval		exe_defaults[11]

#define EXE_DEFAULTS_TUPLE_SIZE		12

#define DEFAULT_USER_BANNER			""
#define DEFAULT_NODES				-1
#define DEFAULT_HEAP_SIZE			-1
#define DEFAULT_HEAP_INC_PROXIMITY		-1
#define DEFAULT_HEAP_INCREMENT			-1
#define DEFAULT_HEAP_FREE_AFTER_GC		-1
#define DEFAULT_HEAP_LOWAT			-1
#define DEFAULT_HEAP_HIWAT			-1
#define DEFAULT_GC_SLACK			-1
#define DEFAULT_IRT_SIZE			0
#define DEFAULT_IRT_INCREMENT			0
#define DEFAULT_GSQ_INTERVAL			-1

    
/*
 * A tuple is used by the procedure handler (link_proc, link_reply, link_code)
 * to store and pass around static information about the procedure.
 * These #defines are used to access the various parts of this
 * tuple by name.
 */
#define pinfo_file_number	pinfo[0]
#define pinfo_module_number	pinfo[1]
#define pinfo_proc_number	pinfo[2]
#define pinfo_module_name	pinfo[3]
#define pinfo_proc_name		pinfo[4]
#define pinfo_arity		pinfo[5]
#define pinfo_exported		pinfo[6]
#define pinfo_n_counters	pinfo[7]
#define pinfo_n_timers		pinfo[8]
#define pinfo_n_subsects	pinfo[9]
#define pinfo_profile		pinfo[10]
  

/*
 * Maximum length of compile and link commands
 */
#define MAX_COMMAND_LENGTH 4096

/*
 * Maximum length of any path
 */
#define MAX_PATH_LENGTH 1024

/*
 * Estimated number of entries in the exported (global) table
 */
#define	EXPORTED_TABLE_ENTRIES	1024

#endif /* _PCN_INCLUDE_PCN_LINKER_H */

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Marcel Waldvogel and Netfuture.ch.