Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

598 lines
28 KiB

/**
Copyright(c) Maynard Electronics, Inc. 1984-89
Name: beconfig.h
Date Updated: 18-Jun-91
Description: Interface to the Backup Engine configuration unit.
$Log: Q:/LOGFILES/BECONFIG.H_V $
Rev 1.49 28 Jul 1993 15:21:16 TerriLynn
Switched the values of SYPL on and off for ECC translation.
Rev 1.48 23 Jul 1993 12:13:04 TerriLynn
Updated sypl defines per LANMAN Upgrade requirements
Rev 1.47 23 Jul 1993 11:44:26 TerriLynn
Added extern for Sytron ECC flag
Rev 1.46 23 Jul 1993 10:59:12 TerriLynn
Added specific SYPL defines for the
new Sytron ECC flag.
Rev 1.45 21 Jul 1993 17:30:18 TerriLynn
Added Process Sytron ECC Flag
Rev 1.44 01 Jul 1993 16:45:30 Aaron
Added ProcSpecialFiles macros
Rev 1.43 30 Jun 1993 15:23:44 BARRY
Add process_special_files
Rev 1.42 17 Jun 1993 16:42:50 DEBBIE
Changed backup_without_expanding to backup_as_expanded.
Rev 1.41 09 Jun 1993 15:45:48 MIKEP
enable c++
Rev 1.40 30 Apr 1993 16:42:44 DOUG
Moved NRL_SPX_MaxIpxPacketSize out of CLient only #ifdef
Rev 1.39 19 Apr 1993 16:58:40 DOUG
Added new NRL/TLI fields
Rev 1.38 30 Mar 1993 18:08:44 DON
Changed migrated/compressed stuff!
Rev 1.37 24 Mar 1993 15:45:02 DEBBIE
added fields and macros for migrated files and for uncompressing files
Rev 1.36 22 Mar 1993 16:49:18 JOHNES
Rev 1.35 19 Mar 1993 11:37:56 JOHNES
Ifdef'ed out (from P_CLIENT) a bunch of GRFS related fields we don't use
in the client.
Rev 1.34 16 Mar 1993 15:07:40 JOHNES
Ifdef'ed out all references to keep_drive_list (for P_CLIENT only).
Rev 1.33 11 Mar 1993 11:44:20 ANDY
Added GRFS and NRL parameters for ENDEAVOUR
Rev 1.32 01 Mar 1993 17:38:10 MARILYN
added config option telling whether or not to process checksum streams
Rev 1.31 09 Feb 1993 10:00:52 DOUG
Added Client supervisor mode flag
Rev 1.30 05 Feb 1993 22:32:28 MARILYN
removed copy/move functionality
Rev 1.29 08 Dec 1992 14:24:32 DON
Integrated Move/Copy into tips
Rev 1.28 08 Dec 1992 11:45:30 DOUG
Added new GRFS and NRL parameters
Rev 1.27 13 Oct 1992 12:30:20 STEVEN
added otc catalog level
Rev 1.26 28 Aug 1992 16:18:20 BARRY
Added values for net_num.
Rev 1.25 23 Jul 1992 09:33:24 STEVEN
fix warnings
Rev 1.24 21 May 1992 17:27:18 TIMN
Added string type defines and partition name type
Rev 1.23 04 May 1992 12:22:40 STEVEN
NT_STUFF added string types
Rev 1.22 02 Feb 1992 17:59:36 GREGG
Fixed macro to set initial_buff_alloc.
Rev 1.21 02 Feb 1992 15:54:14 GREGG
Removed utf_supported boolean from config, and added UINT16 initial_buff_alloc.
Rev 1.20 27 Jan 1992 18:16:00 GREGG
Added new config element: utf_supported.
Rev 1.19 22 Jan 1992 10:49:48 DON
added define for ENABLE_REMOTE_AFP to special word defines
Rev 1.18 13 Jan 1992 18:35:50 STEVEN
added config switch for BSD sort
Rev 1.17 19 Nov 1991 13:14:32 STEVEN
added wait time defines for SKIP_OPEN_FILES
Rev 1.16 14 Nov 1991 10:20:02 BARRY
TRICYCLE: Added restore_security.
Rev 1.15 06 Nov 1991 18:37:24 GREGG
BIGWHEEL - 8200sx - Added catalog_level to BE config.
Rev 1.14 02 Oct 1991 15:52:48 STEVEN
BIGWEEL - Added support for Prompt before restore over existing
Rev 1.13 19 Sep 1991 12:57:12 STEVEN
Added machine type to config structure
Rev 1.12 16 Aug 1991 08:59:50 STEVEN
remove display_novell_servers from structure
Rev 1.11 12 Aug 1991 16:30:32 BARRY
Removed macros BEC_GetDisplayNetwareServers() and
BEC_SetDisplayNetwareServers().
Rev 1.10 23 Jul 1991 16:23:28 BARRY
Added prototype for new function BEC_UpdateConfig.
Rev 1.9 22 Jul 1991 17:36:22 BARRY
Fix max and min problem.
Rev 1.8 11 Jul 1991 15:55:08 BARRY
Made definition of min and max each conditional.
Rev 1.7 01 Jul 1991 18:41:44 BARRY
Fixed definition of min() and max(); fixed SetXXX macros.
Rev 1.6 01 Jul 1991 17:35:32 STEVEN
added min and max
Rev 1.5 30 Jun 1991 12:36:52 BARRY
Changes for partition routines, removal of default drive list.
Rev 1.4 28 Jun 1991 16:56:20 BARRY
Got rid of default drive and SetKeepDrive().
Rev 1.3 26 Jun 1991 16:49:28 BARRY
tfl_buff_size was misspelled.
Rev 1.2 25 Jun 1991 15:04:16 BRYAN
Changed dos_drive_list to keep_drive_list
Rev 1.1 21 Jun 1991 10:16:18 STEVEN
added macros and removed ifdefs
Rev 1.0 19 Jun 1991 10:39:40 BARRY
Initial revision.
**/
#if !defined( BECONFIG_H )
#define BECONFIG_H
/*
* Since some systems define max and min as functions instead of macros,
* define a macro for our own max and min macros here.
*/
#define BEC_MIN(x,y) ((x) < (y) ? (x) : (y))
#define BEC_MAX(x,y) ((x) > (y) ? (x) : (y))
/* return value defines */
#define BEC_ERR_BASE 0xff00 /* Need to verify this? */
#define BEC_NOT_IN_QUEUE BEC_ERR_BASE + 1 /* Release of cfg not in Q */
/* Definition of Special Word values */
#define CREATE_FLOPPY_DLES 0x0002
#define IGNORE_MAYNARD_ID 0x0020
#define ENABLE_REMOTE_AFP 0x0040
#define FAST_TDEMO 0x4000
/* Values for net_num */
#define NO_NET_DEFINED 0
#define NOVELL_ADVANCED 1
#define NOVELL_4_6 2
#define IBM_PC_NET 3
/* Definition of ExistFlag values */
#define BEC_NO_REST_OVER_EXIST 0
#define BEC_REST_OVER_EXIST 1
#define BEC_PROMPT_REST_OVER_EXIST 2
/* Definition of SkipOpenFiles values */
#define BEC_WAIT_OPEN_FILES 0
#define BEC_SKIP_OPEN_FILES 1
#define BEC_TIME_WAIT_OPEN_FILES 2
/* Cataloging Levels */
#define CATALOGS_NONE 0
#define CATALOGS_PARTIAL 1
#define CATALOGS_FULL 2
/* NT_STUFF string types */
#define BEC_ANSI_STR 1
#define BEC_UNIC_STR 2
#define BEC_WIDE_STR BEC_UNIC_STR
/* EMS stuff */
#define BEC_EMS_PUBLIC 1
#define BEC_EMS_PRIVATE 2
#define BEC_EMS_BOTH 3
#if defined(OS_NLM)
/* NRL Protocol types are bit-mapped flags */
#define NRL_PROT_SPX 0x01
#define NRL_PROT_TCP 0x02
#define NRL_PROT_ADSP 0x04
#endif /* OS_NLM */
#define SYPL_ECC_AUTO 2 /* The default value */
#define SYPL_ECC_ON 1 /* Forces procesing of Sytron ECC */
#define SYPL_ECC_OFF 0 /* Depends on hardware ECC */
typedef struct PART_ENTRY {
struct PART_ENTRY *next ;
INT16 drv_num ;
INT16 partition_num ;
INT8 partition_name[13] ;
INT16 partition_name_size ;
} PART_ENTRY ;
typedef struct BE_CFG *BE_CFG_PTR;
typedef struct BE_CFG {
UINT16 special_word ; /* special word */
UINT16 max_buffers ; /* max number of tape buffers */
UINT16 reserve_mem ; /* amt not to give to buffers */
UINT16 tfl_buff_size ; /* buffer size for tape format*/
UINT16 max_buffer_size ; /* SMB maximum buffer size */
INT16 skip_open_files ; /* skip open files (NETWORK) */
INT16 backup_files_inuse ; /* try to backup files in use */
INT16 support_afp_server ; /* support AFP files on */
INT16 extended_date_support ; /* extended date support */
INT16 hidden_flg ; /* don't read hidden files */
INT16 special_flg ; /* don't read system files */
INT16 set_archive_flg ; /* set archive bit */
INT16 modified_only_flg ; /* backup modified stuff only */
INT16 proc_empty_flg ; /* restore empty directorys */
INT16 exist_flg ; /* restore existing files? */
INT16 prompt_flg ; /* prompt on restore */
PART_ENTRY *part_list ; /* partition list */
#if !defined(P_CLIENT)
CHAR keep_drive_list[26 + 1] ; /* drives to keep */
#endif /* !P_CLIENT */
INT16 net_num ; /* network number */
INT16 remote_drive_backup ; /* Remote drive backup enabled*/
BOOLEAN use_ffr ; /* true if user wants ffr */
UINT16 write_format ; /* To specify TF write format */
UINT16 nrl_dos_vector ;
BOOLEAN xlock ;
UINT16 machine_type ;
INT16 catalog_level ; /* Catalog level, 0=none, 1=partial, 2=full */
BOOLEAN restore_security ; /* Restore security info */
BOOLEAN sort_bsd_by_dle ; /* if true we sort the bsds by DLE */
UINT16 initial_buff_alloc ; /* mem allocated for tape buffers at init */
UINT16 string_types ;
UINT16 otc_cat_level ; /* on tape catalog requested level */
UINT16 max_remote_resources; /* cumulative sum of all remote resource buffers added */
#if !defined(P_CLIENT)
CHAR backup_server_name[16 + 1] ; /* name of current backup server for netbios */
#endif /* !P_CLIENT */
UINT16 NRL_transport_type; /* NRL transport type (SPX, NetBIOS */
UINT16 GRFS_timeout_seconds; /* GRFS response timeout (0=no timeout) */
UINT16 NRL_spx_max_ipx_packet ; /* NRL max allowable packet size */
#if !defined(P_CLIENT)
UINT16 NRL_callback_stack_size ; /* NRL callback stack size */
UINT16 NRL_max_local_resources ; /* NRL cumulative local resources */
UINT16 NRL_max_con_connections ; /* NRL maximum allowed connections */
#endif /* !P_CLIENT */
CHAR NRL_backup_server_list[100+1];/* NRL string of backup servers space delimited */
#if !defined(P_CLIENT)
UINT16 NRL_spx_listens_per_sess ; /* NRL number of listen ecbs per session */
UINT16 NRL_spx_retry_count ; /* NRL spx number of times to retry a packet */
UINT16 NRL_nb_retry_count ; /* NRL NetBios number of times to retry a packet */
#endif /* !P_CLIENT */
UINT16 NRL_nb_adapter_number; /* NRL adapter number for LAN */
CHAR NRL_nb_device_name[8+1]; /* NRL name of LAN device */
#if !defined(P_CLIENT)
UINT16 GRFS_max_con_sessions; /* NRL maximum number of agents allowed */
#endif /* !P_CLIENT */
BOOLEAN supervisor_mode; /* Is Client in Supervisor mode? */
BOOLEAN process_checksum_streams ; /* Generate a checksum stream for each stream written */
#if !defined(P_CLIENT)
BOOLEAN backup_migrated_files ; /* backup migrated files */
BOOLEAN backup_as_expanded ; /* backup compressed files as expanded files */
#endif /* !P_CLIENT */
/* and use this information to verify the integrity of */
/* said stream on tape. */
#if defined(OS_NLM)
UINT16 NRL_protocols; /* NRL protocols to load */
UINT16 TCP_cleanup_interval; /* Seconds between TCP resource cleanup */
UINT16 TCP_listen_port; /* TCP port for resource listen thread */
#endif
BOOLEAN process_special_files; /* process registry, etc. */
INT16 sypl_ecc_flg ; /* process sytron ecc */
INT16 ems_pub_pri ;
INT16 ems_rip_kick ;
INT16 ems_wipe_clean ;
} BE_CFG;
/* prototypes relating to the configuration unit */
VOID BEC_Init( VOID ) ;
VOID BEC_Close( VOID ) ;
INT16 BEC_UseConfig( BE_CFG_PTR cfg );
INT16 BEC_ReleaseConfig( BE_CFG_PTR cfg );
BE_CFG_PTR BEC_CloneConfig( BE_CFG_PTR cfg );
INT16 BEC_UpdateConfig( BE_CFG_PTR dst, BE_CFG_PTR src );
INT8_PTR BEC_GetPartitionName( BE_CFG_PTR cfg, INT16 drv_num, INT16 part_num ) ;
INT16 BEC_SetPartitionName( BE_CFG_PTR cfg, INT16 drv_num, INT16 part_num, INT8_PTR part_name, INT16 part_name_size ) ;
PART_ENTRY *BEC_GetFirstPartition( BE_CFG_PTR cfg ) ;
PART_ENTRY *BEC_GetNextPartition( BE_CFG_PTR cfg, PART_ENTRY *curr_part ) ;
INT16 BEC_AddPartition( BE_CFG_PTR cfg, INT16 drv_num, INT16 part_num, INT8_PTR name, INT16 name_size ) ;
#if !defined(P_CLIENT)
BOOLEAN BEC_KeepDrive( BE_CFG_PTR cfg, CHAR drv_letter ) ;
#endif /* !P_CLIENT */
VOID BEC_CheckNetworkType( VOID ) ;
extern BE_CFG uw_max_cfg ;
extern BE_CFG uw_min_cfg ;
extern INT16 gnProcessSytronECC ;
/*
* Accessing/setting macros.
*/
#define BEC_SetStringTypes( x, v ) ( (x)->string_types = (v) )
#define BEC_GetStringTypes( x ) ( (x)->string_types )
#define BEC_GetSpecialWord( x ) ( (x)->special_word )
#define BEC_SetSpecialWord( x, v ) ( (x)->special_word = (v) )
/**********************************************************************
Old tape buffer business.
#ifdef MAYN_OS2
#define BEC_GetMaxNumTapeBuffers( x ) ( (x)->max_num_tape_bufs )
#define BEC_SetMaxNumTapeBuffers( x, v ) ( (x)->max_num_tape_bufs = (v) )
#else
#define BEC_GetReserveMemory( x ) ( (x)->reserve_memory )
#define BEC_SetReserveMemory( x, v ) ( (x)->reserve_memory = (v) )
#endif
**********************************************************************/
#define BEC_GetMaxTapeBuffers( x ) ( (x)->max_buffers )
#define BEC_SetMaxTapeBuffers( x, v ) ( (x)->max_buffers = \
BEC_MAX( BEC_MIN( (v), uw_max_cfg.max_buffers), uw_min_cfg.max_buffers ) )
#define BEC_GetTFLBuffSize( x ) ( (x)->tfl_buff_size )
#define BEC_SetTFLBuffSize( x, v ) ( (x)->tfl_buff_size = \
BEC_MAX( BEC_MIN( (v), uw_max_cfg.tfl_buff_size), uw_min_cfg.tfl_buff_size ) )
#define BEC_GetReserveMem( x ) ( (x)->reserve_mem )
#define BEC_SetReserveMem( x, v ) ( (x)->reserve_mem = \
BEC_MAX( BEC_MIN( (v), uw_max_cfg.reserve_mem), uw_min_cfg.reserve_mem ) )
#define BEC_GetSkipOpenFiles( x ) ( (x)->skip_open_files )
#define BEC_SetSkipOpenFiles( x, v ) ( (x)->skip_open_files = \
BEC_MAX( BEC_MIN( (v), uw_max_cfg.skip_open_files), uw_min_cfg.skip_open_files ) )
#define BEC_GetBackupFilesInUse( x ) ( (x)->backup_files_inuse )
#define BEC_SetBackupFilesInUse( x, v ) ( (x)->backup_files_inuse = \
BEC_MAX( BEC_MIN( (v), uw_max_cfg.backup_files_inuse), uw_min_cfg.backup_files_inuse ) )
#define BEC_GetAFPSupport( x ) ( (x)->support_afp_server )
#define BEC_SetAFPSupport( x, v ) ( (x)->support_afp_server = \
BEC_MAX( BEC_MIN( (v), uw_max_cfg.support_afp_server), uw_min_cfg.support_afp_server ) )
#define BEC_GetExtendedDateSupport( x ) ( (x)->extended_date_support )
#define BEC_SetExtendedDateSupport( x, v ) ( (x)->extended_date_support = \
BEC_MAX( BEC_MIN( (v), uw_max_cfg.extended_date_support), uw_min_cfg.extended_date_support ) )
#define BEC_GetHiddenFlag( x ) ( (x)->hidden_flg )
#define BEC_SetHiddenFlag( x, v ) ( (x)->hidden_flg = \
BEC_MAX( BEC_MIN( (v), uw_max_cfg.hidden_flg), uw_min_cfg.hidden_flg ) )
#define BEC_GetSpecialFlag( x ) ( (x)->special_flg )
#define BEC_SetSpecialFlag( x, v ) ( (x)->special_flg = \
BEC_MAX( BEC_MIN( (v), uw_max_cfg.special_flg), uw_min_cfg.special_flg ) )
#define BEC_GetSetArchiveFlag( x ) ( (x)->set_archive_flg )
#define BEC_SetSetArchiveFlag( x, v ) ( (x)->set_archive_flg = \
BEC_MAX( BEC_MIN( (v), uw_max_cfg.set_archive_flg), uw_min_cfg.set_archive_flg ) )
#define BEC_GetModifiedOnlyFlag( x ) ( (x)->modified_only_flg )
#define BEC_SetModifiedOnlyFlag( x, v ) ( (x)->modified_only_flg = \
BEC_MAX( BEC_MIN( (v), uw_max_cfg.set_archive_flg), uw_min_cfg.set_archive_flg ) )
#define BEC_GetProcEmptyFlag( x ) ( (x)->proc_empty_flg )
#define BEC_SetProcEmptyFlag( x, v ) ( (x)->proc_empty_flg = \
BEC_MAX( BEC_MIN( (v), uw_max_cfg.proc_empty_flg), uw_min_cfg.proc_empty_flg ) )
#define BEC_GetExistFlag( x ) ( (x)->exist_flg )
#define BEC_SetExistFlag( x, v ) ( (x)->exist_flg = \
BEC_MAX( BEC_MIN( (v), uw_max_cfg.exist_flg), uw_min_cfg.exist_flg ) )
#define BEC_GetPromptFlag( x ) ( (x)->prompt_flg )
#define BEC_SetPromptFlag( x, v ) ( (x)->prompt_flg = \
BEC_MAX( BEC_MIN( (v), uw_max_cfg.prompt_flg), uw_min_cfg.prompt_flg ) )
#define BEC_GetPartList( x ) ( (x)->part_list )
#define BEC_SetPartList( x, v ) ( (x)->part_list = \
BEC_MAX( BEC_MIN( ( v ), uw_max_cfg.part_list), uw_min_cfg.part_list ) )
#define BEC_GetNetNum( x ) ( (x)->net_num )
#define BEC_SetNetNum( x, v ) ( (x)->net_num = \
BEC_MAX( BEC_MIN( ( v ), uw_max_cfg.net_num), uw_min_cfg.net_num ) )
#if !defined(P_CLIENT)
#define BEC_GetKeepDriveList( x ) ( (x)->keep_drive_list )
#endif /* !P_CLIENT */
#define BEC_GetRemoteDriveBackup( x ) ( (x)->remote_drive_backup )
#define BEC_SetRemoteDriveBackup( x, v ) ( (x)->remote_drive_backup = \
BEC_MAX( BEC_MIN( ( v ), uw_max_cfg.remote_drive_backup), uw_min_cfg.remote_drive_backup ) )
#define BEC_GetNRLDosVector( x ) ( (x)->nrl_dos_vector )
#define BEC_SetNRLDosVector( x, v ) ( (x)->nrl_dos_vector = \
BEC_MAX( BEC_MIN( ( v ), uw_max_cfg.nrl_dos_vector), uw_min_cfg.nrl_dos_vector ) )
#define BEC_GetMaxBufferSize( x ) ( (x)->max_buffer_size )
#define BEC_SetMaxBufferSize( x, v ) ( (x)->max_buffer_size = \
BEC_MAX( BEC_MIN( ( v ), uw_max_cfg.max_buffer_size), uw_min_cfg.max_buffer_size ) )
#define BEC_GetFastFileRestore( x ) ( (x)->use_ffr )
#define BEC_SetFastFileRestore( x, v ) ( (x)->use_ffr = \
BEC_MAX( BEC_MIN( ( v ), uw_max_cfg.use_ffr), uw_min_cfg.use_ffr ) )
#define BEC_GetWriteFormat( x ) ( (x)->write_format )
#define BEC_SetWriteFormat( x, v ) ( (x)->write_format = \
BEC_MAX( BEC_MIN( ( v ), uw_max_cfg.write_format), uw_min_cfg.write_format ) )
#define BEC_LockConfig( x ) ( (x)->xlock = 1 )
#define BEC_UnLockConfig( x ) ( (x)->xlock = 0 )
#define BEC_GetConfiguredMachineType( x ) ( (x)->machine_type )
#define BEC_SetConfiguredMachineType( x, v ) ( (x)->machine_type = (v))
#define BEC_GetCatalogLevel( x ) ( (x)->catalog_level )
#define BEC_SetCatalogLevel( x, v ) ( (x)->catalog_level = (v) )
#define BEC_GetOtcCatalogLevel( x ) ( (x)->otc_cat_level )
#define BEC_SetOtcCatalogLevel( x, v ) ( (x)->otc_cat_level = (v) )
#define BEC_GetRestoreSecurity( x ) ( (x)->restore_security )
#define BEC_SetRestoreSecurity( x, v ) ( (x)->restore_security = ((v) ? TRUE : FALSE ))
#define BEC_GetSortBSD( x ) ( (x)->sort_bsd_by_dle )
#define BEC_SetSortBSD( x, v ) ( (x)->sort_bsd_by_dle = (v) )
#define BEC_GetInitialBuffAlloc( x ) ( (x)->initial_buff_alloc )
#define BEC_SetInitialBuffAlloc( x, v ) ( (x)->initial_buff_alloc = \
BEC_MAX( BEC_MIN( ( v ), uw_max_cfg.initial_buff_alloc ), uw_min_cfg.initial_buff_alloc ) )
#define BEC_GetMaxRemoteResources( x ) ( (x)->max_remote_resources )
#define BEC_SetMaxRemoteResources( x, v ) ( (x)->max_remote_resources = \
BEC_MAX( BEC_MIN( ( v ), uw_max_cfg.max_remote_resources), uw_min_cfg.max_remote_resources ) )
#define BEC_GetInitialBuffAlloc( x ) ( (x)->initial_buff_alloc )
#define BEC_SetInitialBuffAlloc( x, v ) ( (x)->initial_buff_alloc = \
BEC_MAX( BEC_MIN( ( v ), uw_max_cfg.initial_buff_alloc ), uw_min_cfg.initial_buff_alloc ) )
#if !defined(P_CLIENT)
#define BEC_GetBackupServerName( x ) ( (x)->backup_server_name )
#define BEC_SetBackupServerName( x, v ) ( strcpy( (x)->backup_server_name, (v) ) )
#endif /* !P_CLIENT */
#define BEC_GetNRLTransportType( x ) ( (x)->NRL_transport_type )
#define BEC_SetNRLTransportType( x, v ) ( (x)->NRL_transport_type = \
BEC_MAX( BEC_MIN( ( v ), uw_max_cfg.NRL_transport_type), uw_min_cfg.NRL_transport_type ) )
#define BEC_GetGRFSTimeoutSeconds( x ) ( (x)->GRFS_timeout_seconds )
#define BEC_SetGRFSTimeoutSeconds( x, v ) ( (x)->GRFS_timeout_seconds = \
BEC_MAX( BEC_MIN( ( v ), uw_max_cfg.GRFS_timeout_seconds), uw_min_cfg.GRFS_timeout_seconds ) )
#define BEC_GetNRLSPXMaxIpxPacket( x ) ( (x)->NRL_spx_max_ipx_packet )
#define BEC_SetNRLSPXMaxIpxPacket( x, v ) ( (x)->NRL_spx_max_ipx_packet = \
BEC_MAX( BEC_MIN( ( v ), uw_max_cfg.NRL_spx_max_ipx_packet ), uw_min_cfg.NRL_spx_max_ipx_packet ) )
#if !defined(P_CLIENT)
#define BEC_GetNRLCallbackStackSize( x ) ( (x)->NRL_callback_stack_size )
#define BEC_SetNRLCallbackStackSize( x, v ) ( (x)->NRL_callback_stack_size = \
BEC_MAX( BEC_MIN( ( v ), uw_max_cfg.NRL_callback_stack_size), uw_min_cfg.NRL_callback_stack_size ) )
#define BEC_GetNRLMaxLocalResources( x ) ( (x)->NRL_max_local_resources )
#define BEC_SetNRLMaxLocalResources( x, v ) ( (x)->NRL_max_local_resources = \
BEC_MAX( BEC_MIN( ( v ), uw_max_cfg.NRL_max_local_resources), uw_min_cfg.NRL_max_local_resources ) )
#define BEC_GetNRLMaxConConnections( x ) ( (x)->NRL_max_con_connections )
#define BEC_SetNRLMaxConConnections( x, v ) ( (x)->NRL_max_con_connections = \
BEC_MAX( BEC_MIN( ( v ), uw_max_cfg.NRL_max_con_connections ), uw_min_cfg.NRL_max_con_connections ) )
#define BEC_GetNRLBackupServerList( x ) ( (x)->NRL_backup_server_list )
#define BEC_SetNRLBackupServerList( x, v ) ( strcpy( (x)->NRL_backup_server_list, (v) ) )
#define BEC_GetNRLSPXListensPerSess( x ) ( (x)->NRL_spx_listens_per_sess )
#define BEC_SetNRLSPXListensPerSess( x, v ) ( (x)->NRL_spx_listens_per_sess = \
BEC_MAX( BEC_MIN( ( v ), uw_max_cfg.NRL_spx_listens_per_sess ), uw_min_cfg.NRL_spx_listens_per_sess ) )
#define BEC_GetNRLSPXRetryCount( x ) ( (x)->NRL_spx_retry_count )
#define BEC_SetNRLSPXRetryCount( x, v ) ( (x)->NRL_spx_retry_count = \
BEC_MAX( BEC_MIN( ( v ), uw_max_cfg.NRL_spx_retry_count ), uw_min_cfg.NRL_spx_retry_count ) )
#define BEC_GetNRLNBRetryCount( x ) ( (x)->NRL_nb_retry_count )
#define BEC_SetNRLNBRetryCount( x, v ) ( (x)->NRL_nb_retry_count = \
BEC_MAX( BEC_MIN( ( v ), uw_max_cfg.NRL_nb_retry_count ), uw_min_cfg.NRL_nb_retry_count ) )
#endif /* !P_CLIENT */
#define BEC_GetNRLNBAdapterNumber( x ) ( (x)->NRL_nb_adapter_number )
#define BEC_SetNRLNBAdapterNumber( x, v ) ( (x)->NRL_nb_adapter_number = \
BEC_MAX( BEC_MIN( ( v ), uw_max_cfg.NRL_nb_adapter_number ), uw_min_cfg.NRL_nb_adapter_number ) )
#define BEC_GetNRLNBDeviceName( x ) ( (x)->NRL_nb_device_name )
#define BEC_SetNRLNBDeviceName( x, v ) ( strcpy( (x)->NRL_nb_device_name, (v) ) )
#if !defined(P_CLIENT)
#define BEC_GetGRFSMaxConSessions( x ) ( (x)->GRFS_max_con_sessions )
#define BEC_SetGRFSMaxConSessions( x, v ) ( (x)->GRFS_max_con_sessions = \
BEC_MAX( BEC_MIN( ( v ), uw_max_cfg.GRFS_max_con_sessions ), uw_min_cfg.GRFS_max_con_sessions ) )
#endif /* !P_CLIENT */
#define BEC_GetSupervisorMode( x ) ( (x)->supervisor_mode )
#define BEC_SetSupervisorMode( x, v ) ( (x)->supervisor_mode = ((v) ? TRUE : FALSE ))
#define BEC_GetProcChecksumStrm( x ) ( (x)->process_checksum_streams )
#define BEC_SetProcChecksumStrm( x, v ) ( (x)->process_checksum_streams = ((v) ? TRUE : FALSE ))
#define BEC_GetProcSpecialFiles( x ) ( (x)->process_special_files )
#define BEC_SetProcSpecialFiles( x, v ) ( (x)->process_special_files = ((v) ? TRUE : FALSE ))
#if !defined(P_CLIENT)
#define BEC_GetBackupMigratedFiles( x ) ( (x)->backup_migrated_files )
#define BEC_SetBackupMigratedFiles( x, v ) ( (x)->backup_migrated_files = \
BEC_MAX( BEC_MIN( ( v ), uw_max_cfg.backup_migrated_files ), uw_min_cfg.backup_migrated_files ) )
#define BEC_GetBackupAsExpanded( x ) ( (x)->backup_as_expanded )
#define BEC_SetBackupAsExpanded( x, v ) ( (x)->backup_as_expanded = \
BEC_MAX( BEC_MIN( ( v ), uw_max_cfg.backup_as_expanded ), uw_min_cfg.backup_as_expanded ) )
#endif /* !P_CLIENT */
#if defined(OS_NLM)
#define BEC_GetNRLProtocolsSupported( x ) ( (x)->NRL_protocols )
#define BEC_SetNRLProtocolsSupported( x, v ) ( (x)->NRL_protocols = \
BEC_MAX( BEC_MIN( ( v ), uw_max_cfg.NRL_protocols), uw_min_cfg.NRL_protocols ) )
#define BEC_GetTCPCleanupInterval( x ) ( (x)->TCP_cleanup_interval )
#define BEC_SetTCPCleanupInterval( x, v ) ( (x)->TCP_cleanup_interval = \
BEC_MAX( BEC_MIN( ( v ), uw_max_cfg.TCP_cleanup_interval), uw_min_cfg.TCP_cleanup_interval ) )
#define BEC_GetTCPListenPort( x ) ( (x)->TCP_listen_port )
#define BEC_SetTCPListenPort( x, v ) ( (x)->TCP_listen_port = \
BEC_MAX( BEC_MIN( ( v ), uw_max_cfg.TCP_listen_port), uw_min_cfg.TCP_listen_port ) )
#endif /* OS_NLM */
#define BEC_GetProcessSytronECCFlag( x ) ( (x)->sypl_ecc_flg )
#define BEC_SetProcessSytronECCFlag( x, v ) ( (x)->sypl_ecc_flg = \
BEC_MAX( BEC_MIN( (v), uw_max_cfg.sypl_ecc_flg), uw_min_cfg.sypl_ecc_flg ) )
#define BEC_GetEmsPubPri( x ) ( (x)->ems_pub_pri )
#define BEC_SetEmsPubPri( x, v ) ( (x)->ems_pub_pri = \
BEC_MAX( BEC_MIN( (v), uw_max_cfg.ems_pub_pri), uw_min_cfg.ems_pub_pri ) )
#define BEC_GetEmsRipKick( x ) ( (x)->ems_rip_kick )
#define BEC_SetEmsRipKick( x, v ) ( (x)->ems_rip_kick = \
BEC_MAX( BEC_MIN( (v), uw_max_cfg.ems_rip_kick), uw_min_cfg.ems_rip_kick ) )
#define BEC_GetEmsWipeClean( x ) ( (x)->ems_wipe_clean )
#define BEC_SetEmsWipeClean( x, v ) ( (x)->ems_wipe_clean = \
BEC_MAX( BEC_MIN( (v), uw_max_cfg.ems_wipe_clean), uw_min_cfg.ems_wipe_clean ) )
#endif /* BECONFIG_H */