HP3000-L Archives

August 2003, Week 3

HP3000-L@RAVEN.UTC.EDU

Options: Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Subject:
From:
Stan Sieler <[log in to unmask]>
Reply To:
Stan Sieler <[log in to unmask]>
Date:
Tue, 19 Aug 2003 11:30:08 -0700
Content-Type:
text/plain
Parts/Attachments:
text/plain (102 lines)
Hi,

There's only one kind of PIN (Process Identification Number).

Prior to MPE/iX 7.0, the maximum PIN was about 8191 (and smaller on
some older releases).  With 7.0, very large systems can enable the
BIGPIN option, increasing the limit to 12000 PINs.

Thus, a PIN can be represented in 16 bits.

As for 16-bit vs. 32-bit....

On MPE V, intrinsics that accepted PIN parameters used 16 bits
for the parameters.  On MPE/iX, we wanted to look forward to the
possibility of having more than 32767 processes.  (During the original
design of HPE, which became MPE XL / MPE/iX, negative values had
a special meaning.  Sadly, that feature was dropped (apparently
by Ed McClanahan) after I left HP.)   The possibility of having
a larger number of processes -- someday -- led me to use 32-bits to
hold PINs in all new (i.e., native mode) data structures.

However, for source-code compatibility reasons, all native mode intrinsics
that had the same name as their CM counterparts had to keep their
parameter size the same (where possible ... CREATEPROCESS, SEARCH, and
MYCOMMAND are the three most common intrinsics whose parameters
had to change).  New intrinsics (e.g., AIFPROCGET) should have a
32-bit parameter for passing/returning a PIN ... even though values
no larger than 12000 will be returned.

Here are the NM intrinsics that either have an explicit PIN parameter,
or that return a PIN as a functional result.  (Omitted from the list
are intrinsics like HPFOPEN and JOBINFO, which can accept or return
PINs via a somewhat different mechanism.)

Intrinsics in SYSINTR:
   ACTIVATE       uint16 <-- BUG
   CREATE          int16
   CREATEPROCESS   int16
   FATHER         uint16 <-- BUG
   GETPRIORITY    uint16 <-- BUG
   GETPROCID      uint16 <-- BUG
   GETPROCINFO    uint16 <-- BUG
   KILL           uint16 <-- BUG
   LOCRINOWNER     int16
   MAIL            int16
   PROCINFO       uint16 <-- BUG
   RECEIVEMAIL     int16
   SENDMAIL        int16

Note that I flagged some as "BUG".  Those intrinsics are **DOCUMENTED**
as having a signed 16 bit parameter/result, but are *IMPLEMENTED*
(in the SYSINTR/PEINTR files) as having *UNSIGNED* 16 bit parameters.

(A very brief look at NL.PUB.SYS, seems to confirm that those parameters
/functional results are indeed unsigned 16-bit integers.)

Sheesh.

Although debatably called "intrinsics", we should also peek at some of
the routines in the AIF (Architected Interface Facility) ... they're examples
of routines that should have 32-bit signed integers for PIN parameters/results:

Intrinsics in AIF intrinsic file(s):
   AIFPROCGET      int32
   AIFPROCPUT      int32
   PEARM          uint16 <-- BUG
   PEDISARM        int32

Oh well :(


> But then I looked at PROCINFO.  That has a 16 bit PIN which is
> documented as not being compatible with GETPROCINFO PIN's.

Documentation bug.
I have no idea what the author of that document was thinking of.

Hope that helps!

Note that I didn't even mention the MPE PID (which would have been better
named "XPIN" (for eXtended PIN).  The comp.sys.hp / HP3000-L posts:

   http://groups.google.com/groups?q=pid+pin+sieler&hl=en&lr=&ie=UTF-8&oe=UTF-
8&newwindow=1&selm=53253%40cup.portal.com&rnum=1

and

   http://groups.google.com/groups?q=pid+pin+sieler&hl=en&lr=&ie=UTF-8&oe=UTF-
8&newwindow=1&scoring=d&selm=F4B1826B1A21D211AEC5006008207AF401E23E3E%40dogbert.
csillc.com&rnum=4

discuss the MPE PID (different than POSIX PID or PA-RISC PID).


--
Stan Sieler
[log in to unmask]
www.allegro.com/sieler/wanted/index.html

* To join/leave the list, search archives, change list settings, *
* etc., please visit http://raven.utc.edu/archives/hp3000-l.html *

ATOM RSS1 RSS2