📄 snx.tpl
字号:
/***************************************************************************
*
* Copyright (c) 1993 MRI CORPORATION.
*
* All rights reserved. MRI source code is an unpublished
* work and the use of a copyright notice does not imply otherwise.
* This source code contains confidential, trade secret material of
* MRI. Any attempt or participation in deciphering, decoding,
* reverse engineering or in any way altering the source code is
* strictly prohibited, unless the prior written consent of
* MRI is obtained.
*
*
* Module Name: snx.tpl
*
* Identification: @(#) 1.28 snx.tpl
*
* Date: 10/25/94 14:41:25
*
****************************************************************************
*/
#include <syskind.h>
#include <vrtxil.h>
#include "sys/types.h"
#include "sys/sysnames.h"
#include "sys/kernel.h"
#include "kernel/swkconf.h"
#include "exec/device.h"
#include "sys/config.h"
#include "sys/stream.h"
#include "sys/tihdr.h"
#include "netinet/in.h"
@define(make_host, `` { ''"$1"``, ''"`@(snx.hosts.$1)'"``, 1 ''}``,'')@dnl
@define(make_host_list,`@ifelse($1,,,`@make_host($1)'
`@make_host_list(@shift($@))')')@dnl # RULES TO GENERATE THE HOST TABLE
@define(make_interface, `` { ''"$1"``, ''"`@(snx.interface.$1.devname)'"``, ''`@ifelse(@(snx.interface.$1.othermodule),,NULL,"@(snx.interface.$1.othermodule)")'``, ''"`@(snx.interface.$1.addr)'"``, ''`@ifelse(@(snx.interface.$1.broadcast),yes,1,0)'``, ''`@ifelse(@(snx.interface.$1.arpsupport),yes,1,0)'``, ''`@(snx.interface.$1.netmask)'``, ''`@ifelse(@(snx.interface.$1.frametype),,NULL,"@(snx.interface.$1.frametype)")'`` ''}``,'')@dnl
@define(make_interface_list,`@ifelse($1,,,`@make_interface($1)'
`@make_interface_list(@shift($@))')')@dnl # RULES FOR THE INTERFACE TABLE
@define(make_nmserv, `` ''{ "$1" }``,'')@dnl
@define(make_nameservers,`@ifelse($1,,,`@make_nmserv($1)'
`@make_nameservers(@shift($@))')')@dnl # RULES FOR THE NAMESERVER LIST
@define(make_route, `` ''{ "`@(snx.route.$1.type)'"``, ''"$1"``, ''"`@(snx.route.$1.gway)'"``, ''`@(snx.route.$1.metric)'``, ''"`@(snx.route.$1.qual)'" }``,'')@dnl
@define(make_route_list,`@ifelse($1,,,`@make_route($1)'
`@make_route_list(@shift($@))')')@dnl # RULES TO GENERATE THE ROUTING TABLE
@define(compute_count,`@ifelse($#,1,`@ifelse($1,,`@decr($#)',$#)',$#)')@dnl # COMPUTES THE NUMBER OF PARAMETERS
@define(make_dmodsw_dcl, `@ifelse(@(snx.drvmod.$1.enable),yes, extern struct streamtab `@(snx.drvmod.$1.streamtab)'``;'' )')@dnl
@define(make_dmodsw_decl,`@ifelse($1,,,`@make_dmodsw_dcl($1)'
`@make_dmodsw_decl(@shift($@))')')@dnl
@define(make_dmodsw, `@ifelse(@(snx.drvmod.$1.enable),yes,`` ''{ "$1"``,''`@ifelse(@substr(@(snx.drvmod.$1.flags),0,1),D, `` SDT_DRV'', `` SDT_MOD'')'`@ifelse(@substr(@(snx.drvmod.$1.flags),1,1),3,|SDT_SVR3,|SDT_SVR4)'``,'' 0``,'' &`@(snx.drvmod.$1.streamtab)' }``,'')')@dnl
@define(make_dmodsw_list,`@ifelse($1,,,`@make_dmodsw($1)'
`@make_dmodsw_list(@shift($@))')')@dnl
@define(make_dmodconf_dcl, `@ifelse(@(snx.drvmod.$1.enable),yes, `@ifelse(@(snx.drvmod.$1.initf),0,,extern void `@(snx.drvmod.$1.initf)'``();'')' )')@dnl
@define(make_dmodconf_decl,`@ifelse($1,,,`@make_dmodconf_dcl($1)'
`@make_dmodconf_decl(@shift($@))')')@dnl
@define(make_dmodconf, `@ifelse(@(snx.drvmod.$1.enable),yes,`@ifelse(@(snx.drvmod.$1.initf),0,,`` ''{ `@(snx.drvmod.$1.initf)' }``,'')')')@dnl
@define(make_dmodconf_list,`@ifelse($1,,,`@make_dmodconf($1)'
`@make_dmodconf_list(@shift($@))')')@dnl
@define(make_snmpv1_com, `` ''"$1`` ''`@(snx.snmpv1.com.$1.ip)'`` ''`@(snx.snmpv1.com.$1.priv)'"``,'')@dnl
@define(make_snmpv1_com_list, `@ifelse($1,,,`@make_snmpv1_com($1)'
`@make_snmpv1_com_list(@shift($@))')')@dnl
@define(make_snmpv1_trap, `` ''"$1`` ''`@(snx.snmpv1.trap.$1.ip)'"``,'')@dnl
@define(make_snmpv1_trap_list, `@ifelse($1,,,`@make_snmpv1_trap($1)'
`@make_snmpv1_trap_list(@shift($@))')')@dnl
@define(make_snmpv2_party_list, `@ifelse(@(snx.snmpv2.party.$1),,,`` ''"`@(snx.snmpv2.party.$1)'"``,''
`@make_snmpv2_party_list(@incr($1))')')@dnl
@define(make_snmpv2_cntx_list, `@ifelse(@(snx.snmpv2.cntx.$1),,,`` ''"`@(snx.snmpv2.cntx.$1)'"``,''
`@make_snmpv2_cntx_list(@incr($1))')')@dnl
@define(make_snmpv2_acl_list, `@ifelse(@(snx.snmpv2.acl.$1),,,`` ''"`@(snx.snmpv2.acl.$1)'"``,''
`@make_snmpv2_acl_list(@incr($1))')')@dnl
@define(make_snmpv2_view_list, `@ifelse(@(snx.snmpv2.view.$1),,,`` ''"`@(snx.snmpv2.view.$1)'"``,''
`@make_snmpv2_view_list(@incr($1))')')@dnl
@dnl @define(make_snmpv2_sys_contact, `@ifelse(@(snx.snmpv2.sys.contact),,"","`@(snx.snmpv2.sys.contact)'")')@dnl
@define(make_snmpv2_sys_contact, `@ifelse(@(snx.snmpv2.sys.contact),,,``@(snx.snmpv2.sys.contact)'')')@dnl
@define(make_snmpv2_sys_location, `@ifelse(@(snx.snmpv2.sys.location),,,``@(snx.snmpv2.sys.location)'')')@dnl
@define(make_snmpv2_peer, `` ''{ "$1"``,'' "`@(snx.snmpv2.peers.$1.root)'"``,'' "`@(snx.snmpv2.peers.$1.passwd)'" }``,'')@dnl
@define(make_snmpv2_peers_list,`@ifelse($1,,,`@make_snmpv2_peer($1)'
`@make_snmpv2_peers_list(@shift($@))')')@dnl
@ifelse(@(snx.snmp.enabled),yes,``
extern char **''@(snx.snmpv1.usr_com.funct)``();
extern char **''@(snx.snmpv1.usr_trap.funct)``();
char **(*snmpv1_usr_com_funct)() = ''@(snx.snmpv1.usr_com.funct)``;
char **(*snmpv1_usr_trap_funct)() = ''@(snx.snmpv1.usr_trap.funct)``;
int ev_snmpd; /* event flag for SMUX peers to sync with SNMPd */
char **snmpv1_def_usr_hook(char **iparm)
{ return iparm; }
char *snmpv1_def_com_tbl[] = {
''@make_snmpv1_com_list(@(snx.snmpv1.com_list))``
0
};
char *snmpv1_def_trap_tbl[] = {
''@make_snmpv1_trap_list(@(snx.snmpv1.trap_list))``
0
};
char *snmpv2_sys_contact = "''@make_snmpv2_sys_contact(1)``" ;
char *snmpv2_sys_location = "''@make_snmpv2_sys_location(1)``" ;
extern char **''@(snx.snmpv2.usr_party.funct)``();
extern char **''@(snx.snmpv2.usr_cntx.funct)``();
extern char **''@(snx.snmpv2.usr_acl.funct)``();
extern char **''@(snx.snmpv2.usr_view.funct)``();
char **(*snmpv2_usr_party_funct)() = ''@(snx.snmpv2.usr_party.funct)``;
char **(*snmpv2_usr_cntx_funct)() = ''@(snx.snmpv2.usr_cntx.funct)``;
char **(*snmpv2_usr_acl_funct)() = ''@(snx.snmpv2.usr_acl.funct)``;
char **(*snmpv2_usr_view_funct)() = ''@(snx.snmpv2.usr_view.funct)``;
char **snmpv2_def_usr_hook(int funct, char **iparm)
{ return iparm; }
char *snmpv2_def_party_tbl[] = {
''@make_snmpv2_party_list(1)``
0
};
char *snmpv2_def_cntx_tbl[] = {
''@make_snmpv2_cntx_list(1)``
0
};
char *snmpv2_def_acl_tbl[] = {
''@make_snmpv2_acl_list(1)``
0
};
char *snmpv2_def_view_tbl[] = {
''@make_snmpv2_view_list(1)``
0
};
struct {
char *name;
char *root;
char *passwd;
} snmpv2_peers_tbl [] = {
''@make_snmpv2_peers_list(@(snx.snmpv2.peers.list))``
{0, 0, 0}
};
int snmpv2_ether_mib_support_in_driver = ''@ifelse(@(snx.snmp.ether_mib.enabled),yes,1,0)``; '')@dnl
/*
* Verbosity level (cmn_err())
*/
int swk_dbgprt = @(snx.verbosity);
/*
* if no ldterm module present, tell serial driver to do a sub-set
*/
int sio_no_ldterm = @ifelse(@(snx.sio.ldterm_present),yes,0,1);
/*
* Message passing library parameters
*/
int swk_syscallq_id = @(snx.msglib.syscallq_id);
int swk_syscallq_size = @(snx.msglib.syscallq_size);
int swk_sysintrq_id = @(snx.msglib.sysintrq_id);
int swk_sysintrq_size = @(snx.msglib.sysintrq_size);
int swk_signalq_id = @(snx.msglib.signalq_id);
int swk_signalq_size = @(snx.msglib.signalq_size);
int swk_psignalq_id = @(snx.msglib.psignalq_id);
int swk_psignalq_size = @(snx.msglib.psignalq_size);
int swk_intr_calls = @(snx.msglib.intr_calls);
int swk_ocq_id = @(snx.msglib.ocq_id);
int swk_ocq_size = @(snx.msglib.ocq_size);
/*
* Streams Tunable Parameters
*/
int nstrpush = @(snx.streams.nstrpush);
int strmsgsz = @(snx.streams.strmsgsz);
int strctlsz = @(snx.streams.strctlsz);
int strthresh = @(snx.streams.strthresh);
int swk_max_mblks = @(snx.streams.max_mblks);
int swk_buf16 = @(snx.streams.str16bufs);
int swk_buf32 = @(snx.streams.str32bufs);
int swk_buf64 = @(snx.streams.str64bufs);
int swk_buf128 = @(snx.streams.str128bufs);
int swk_buf256 = @(snx.streams.str256bufs);
int swk_buf512 = @(snx.streams.str512bufs);
int swk_buf1024 = @(snx.streams.str1024bufs);
int swk_buf2048 = @(snx.streams.str2048bufs);
int swk_buf4560 = @(snx.streams.str4560bufs);
/*
* Streams Timers Parameters
*/
unsigned long swk_timer_delta = @(snx.streams.timer_delta);
int swk_max_timers = @(snx.streams.max_timers);
/*
* Streams Main Task Parameters
*/
int swk_max_msgs = @(snx.streams.max_msgs);
int swk_max_stacks = @(snx.streams.max_stacks);
/*
* Streams Memory Parameters
*/
unsigned int swk_heap_size = @(snx.streams.heap_size);
unsigned int swk_mblk_weight = @(snx.streams.mblk_weight); /* in bytes */
unsigned int swk_logio_bufs_pending = @(snx.streams.logio_bufs_pending);
unsigned int tcp_recvspace = @(snx.tcp.def_rcvbuf);
/*
* Interface libraries
*/
int swk_socket_lib = @(snx.interface.socket),
swk_tli_lib = @(snx.interface.tli);
/*
* IP flag(s)
*/
int initial_ip_forwarding = @(snx.ip.forwarding);
/*
* Driver/Module declaration and configuration
*/
@make_dmodsw_decl(@(snx.drvmod.list))
struct sdev_tbl dmodsw[] =
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -