Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

$NBSSIG - send signal to event item bourse

&pagelevel(3)&pagelevel

The $NBSSIG function enables the exit routine to indicate to a waiting task that a bourse event has occurred (like POSSIG in TU). A post code is transferred to the task waiting for the event with the aid of SOLSIG.
Prerequisite: an event item must exist and the associated bourse ID must be stored with $GTBOID with system-global accessibility.

macro format and operands description

[label] $NBSSIG                                      

MF=C / D / E / L / M

[,PREFIX=prefix]

[,PARAM=addr]

[,BOID=boid / (R1)]

[,SDATA=(1, addr / (R2))]

MF

Defines the macro format.

=C

The parameter list is generated as a data area.

=D

The parameter list is generated as a DSECT with the name specified for “label”; default value: label = NTEG.

=E

Function call.

=L

The parameter list is generated (without field names and equates).

=M

Modification of the parameter list with current values.

PREFIX

Character for the field names in the parameter list. Only possible in conjunction with MF=C/D.

=prefix

Character with which the field names in the parameter list are to begin; default value: N.

PARAM

Address of the parameter list if MF=E is specified.

=addr

Address of the parameter list.

BOID=

Bourse ID.

=boid

Bourse ID stored globally using $GTBOID.

=(R1)

Register containing the bourse ID.

SDATA

Field with the address of the 1-word post code transferred to the waiting task with SOLSIG. This can be, for example, the address of the data to be output into an audit file.

=(1,...)

addr = address of the field containing the 1-word post code.
R2 = register with the address value of the field containing the 1-word post code.

Notes

  • R12 and R13 must not have been modified since the exit routine was called.

  • R14, R15 and R1 are updated by MF=E.

  • The parameter list must be processed in line with reentrant programming.

Return codes

The following return codes are transferred in the parameter list’s standard header (using $NDSSIG MF=D/C):

Maincode

Meaning

NTBSM1OK

Successful call

NTBSM1IC

Inconsistent parameters

NTBSM1BE

Error in bourse data

NTBSM1IB

Invalid bourse data

NTBSM1BD

Bourse already destroyed, i.e. event item no longer exists

NTBSM1QL

Overflow in the bourse send queue

NTBSM1NS

No slots available for the send queue

No action is required for any of the return codes except NTBSM1OK.

 

Programming example

EXITXXXX @ENTR TYP=E,ENV=SPLSPEC,LOCAL=ADF
          :
         L     R1,BOIDX ———————————————————————————————————————————————  (1) 
         L     R1,0(R1)
         MVC   CPARAM(NTBS#),LPARAM ———————————————————————————————————  (2) 
         $NBSSIG MF=M,PARAM=CPARAM,BOID=(R1),SDATA=(1,SDATA) ——————————  (3) 
         $NBSSIG MF=E,PARAM=CPARAM ————————————————————————————————————  (4) 
         CLI   NTBSMR1,NTBSM1OK ———————————————————————————————————————  (5) 
         BNE   exception
          :
         @EXIT
          :
LPARAM   $NBSSIG MF=L —————————————————————————————————————————————————  (6) 
NTBSS#   DS    0A
NTBSFHE  DS    0XL8           GENERAL OPERAND LIST HEADER
NTBSFCTU DC    AL2(93)        FUNCTION UNIT NUMBER
NTBSFCT  DC    AL1(6)         FUNCTION NUMBER
NTBSFCTV DC    AL1(1)         FUNCTION INTERFACE VERSION NUMBER
NTBSRET  DC    X'FFFFFFFF'    RETURN CODE NOT VALID
NTBSMR1  EQU   NTBSRET+3,1    MAIN RETURN CODE 1
*
NTBSBOID DC    F'0'           BOID
         DC    X'00'          unused
         DC    X'00'          unused
NTBSVECT DC    B'01000000'    VECT. FIELD
NTBSDLTH DC    X'00'          DATA LENGTH
NTBSLTIM DC    H'600'         LIFETIME
NTBSPRIO DC    AL1(0)         PRIORITY
         DC    X'00'          unused
NTBSSIG  DC    F'0'           SIGNAL
         DC    F'0'           unused
         DC    F'0'           unused
NTBSSDTA DC    A(0)           SEND DATA ADDRESS
NTBSARSL DC    A(0)           AR Slot address (only for SIH user)
NTBS#    EQU   *-NTBSS#       Length of parameterlist
          :
BOIDX    DC    A(BOID) ————————————————————————————————————————————————  (7) 
         EXTRN BOID
SDATA    DC    A(MESS)
MESS     DC    Y(MESSEND-MESS)
         DC    C'  ANY KIND OF TEXT'
         :
         @END
ADF      @PAR  L=YES
          :
CPARAM   $NBSSIG MF=C —————————————————————————————————————————————————  (8) 
          :
ADF      @PAR  LEND=YES 



(1)

The bourse ID is supplied with a value.

(2)

The current parameter list is preset with the default values.

(3)

The bourse ID and the post code are added.

(4)

The function $NBSSIG is called.

(5)

The return code is evaluated.

(6)

Standard values for the parameter list.

(7)

Example of how the bourse ID is determined and the post code used.

(8)

Dummy character of the current parameter list in automatic memory layout.