The Read Semaphore Values routine returns the current or maximum
    values, or both, of the specified counting semaphore. The
    semaphore must have been created by PPL$CREATE_SEMAPHORE.
    Format
      PPL$READ_SEMAPHORE  semaphore-id [,semaphore-value]
                          [,semaphore-maximum]
1 – Arguments
 semaphore-id
    OpenVMS usage identifier
    type          longword (unsigned)
    access        read only
    mechanism     by reference
    Identifier of the specified semaphore. The semaphore-id argument
    is the address of an unsigned longword containing the identifier.
    Semaphore-id is returned by PPL$CREATE_SEMAPHORE.
 semaphore-value
    OpenVMS usage word_signed
    type          word (signed)
    access        write only
    mechanism     by reference
    Receives information about the specified semaphore. The optional
    semaphore-value argument is the address of a signed word
    containing the current value of the semaphore or the number of
    blocked processes. If positive, semaphore-value contains the
    number of available resources associated with this semaphore;
    if negative, it contains the number of waiting processes. If the
    value returned is zero, there are no available resources and no
    waiting processes.
 semaphore-maximum
    OpenVMS usage word_signed
    type          word (signed)
    access        write only
    mechanism     by reference
    Maximum value of the semaphore. The semaphore-maximum argument is
    the address of a signed word containing the maximum value of the
    semaphore specified by semaphore-id.