[NAME,NAME,...]: sentry inhib=>type,vararg=>type,
SYMDEF=>type
If you specify any other value in the "type" position, "sentry" sets a software inhibit.
If you specify any other value in the "type" position, the effect is "vararg=>yes".
If you specify any other value in the "type" position, the names are not declared as SYMDEFs. Note that the "type" keywords are case-sensitive and must be specified in lowercase.
"sentry" is the standard function entry routine, to be used at the beginning of a function. The stack is bumped in the usual way (described in the Runtime Manual). Space for arguments should be allocated with "argdef" (before the "sentry" macro).
You may not use the "cheap" macro to obtain cheap storage in a function that uses the "sentry" entry. If you try, "cheap" displays an error message.
func: sentry
#generates
.retrn: .symref
zero FRAME_SIZE,0 #FRAME_SIZE word
func: .symdef
func: .null
.entry: .symref
tra .entry,,p.oper
func: sentry inhib=>yes
#generates
u.retn: .symref
zero FRAME_SIZE,0
func: .symdef
func: .null
.intry: .symref
tra .intry,,p.oper #inhibit entry
func: sentry vararg=>yes
#generates
.retrn: .symref
zero FRAME_SIZE,0
func: .symdef
func: .null
.entry: .symref
tra .vntry,,p.oper #vararg entry
Copyright © 1996, Thinkage Ltd.