comp.lang.ada
 help / color / mirror / Atom feed
From: Mats.Weber@elca-matrix.ch (Mats Weber)
Subject: Re: DECAda/VMS - calling GETJPI
Date: 1996/06/03
Date: 1996-06-03T00:00:00+00:00	[thread overview]
Message-ID: <Mats.Weber-0306961512540001@mlma27.elca-matrix.ch> (raw)
In-Reply-To: 31B2AF74.668E@dial.eunet.ch


In article <31B2AF74.668E@dial.eunet.ch>, Alan Paterson
<paterson@dial.eunet.ch> wrote:

>Here's one for the VMS gurus (I can't post it to comp.os.vms, 
>'cos there's a psychopath there who throws abuse at me):
>
>I want to examine all processes currently active. The system 
>service to do this is, of course, GetJPI (either in Starlet or 
>Lib). To perform wildcard process search, this procedure 
>expects to receive a value of -1 for the process_id parameter. 
>Unfortunately, in the "official" spec-files for these 
>procedures, this parameter has the type UNSIGNED_LONGWORD. Ada, 
>quite correctly, objects to this kind of thing :-)

The best way of doing this is by calling process_scan (in Starlet or lib).
I have once written a program that does all this and displays all kinds of
process info (much better than show system). If you want it, send me
e-mail and I'll give you the source.

>So, what I now do is the following:
>
>   PID  : UNSIGNED_LONGWORD;
>   PID0 : INTEGER;
>   for PID0 use at PID'address;

This is erroneous in Ada 83, and at least dangerous without a pragma
Volatile or something. You should prefer Unchecked_Conversion, which will
work when Standard.Integer becomes 64 bits.

>begin
>   PID0 := -1;
>   loop
>      GetJPI(..., Process_Id => PID, ...);
>
>This works, but I can't help but wonder if there isn't a more 
>elegant way to do it. Does anyone have experience with this?

Yes, there is:

   PID  : UNSIGNED_LONGWORD := -1;
begin
   PID := -1;
   loop
      GetJPI(..., Process_Id => PID, ...);

works because System.UNSIGNED_LONGWORD is -2**31 .. 2**31 - 1.




  parent reply	other threads:[~1996-06-03  0:00 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1996-06-03  0:00 DECAda/VMS - calling GETJPI Alan Paterson
1996-06-03  0:00 ` Ken Garlington
1996-06-03  0:00 ` Stuart Palin
1996-06-03  0:00   ` Michael F Brenner
1996-06-03  0:00     ` Robert Dewar
1996-06-04  0:00       ` Ken Garlington
1996-06-06  0:00         ` Robert Dewar
1996-06-04  0:00       ` Michael F Brenner
1996-06-04  0:00         ` Robert Dewar
1996-06-04  0:00           ` Michael F Brenner
1996-06-04  0:00             ` Robert Dewar
1996-06-04  0:00             ` Robert Dewar
1996-06-05  0:00               ` Wraparound on modular conversion (was: DECAda/VMS - calling GETJPI) Tucker Taft
1996-06-05  0:00                 ` Robert Dewar
1996-06-05  0:00               ` DECAda/VMS - calling GETJPI Fergus Henderson
1996-06-05  0:00                 ` Robert A Duff
1996-06-05  0:00               ` Robert A Duff
1996-06-05  0:00                 ` Robert Dewar
1996-06-05  0:00             ` Adam Beneschan
1996-06-07  0:00               ` Norman H. Cohen
1996-06-11  0:00                 ` Adam Beneschan
1996-06-03  0:00 ` Mats Weber [this message]
  -- strict thread matches above, loose matches on Subject: below --
1996-06-06  0:00 George Haddad
1996-06-07  0:00 ` Robert Dewar
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox