Distributed Name Service (DNS) Management Programming Manual
Appendix F DNS Programming Example,
TACL
46958 Tandem Computers Incorporated F–1
?SECTION dns^spierr ROUTINE
==
== Called when we've received an unexpected error from one of the
== SPI procedures:
==
== dns^spierr <SPI procecure name> <status>
==
#FRAME
#PUSH l^proc^name
#PUSH l^errnum
SINK [#ARGUMENT /VALUE l^proc^name/ VARIABLE/SYNTAX/]
SINK [#ARGUMENT /VALUE l^errnum/ NUMBER]
#OUTPUT *** #[l^proc^name] Error [l^errnum]
#RAISE dns_exception
#UNFRAME
?SECTION dns^check^status MACRO
==
== Ensures that L^STATUS = 0; if not, invoke DNS^SPIERR.
==
[#IF l^status |THEN|
[dns^spierr %1% l^status]
]
?SECTION dns^ssnull ROUTINE
==
== Jacket routine for #SSNULL:
==
== dns^ssnull <map-variable> <struct-variable>
==
#FRAME
#PUSH l^map^symbol
#PUSH l^struct^symbol
#PUSH l^status
SINK [#ARGUMENT /VALUE l^map^symbol/ VARIABLE]
SINK [#ARGUMENT /VALUE l^struct^symbol/ VARIABLE]
#SET l^status [#SSNULL [l^map^symbol] [l^struct^symbol]]
[#IF [l^status] |THEN|
[dns^spierr SSNULL [l^status]]
]
#UNFRAME