Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Identifying Accelerated programs

208 views
Skip to first unread message

NSAS - Yves Tournier

unread,
Nov 17, 2010, 4:13:47 PM11/17/10
to
Hi all,
I am looking at a way to find all accelerated programs on a disc on S-
series. I only know the bind command show info from <file> but it's
not an easy way to scan all obejcts on a volume. I could not find
anything using FUP or any guardian procedure.
Any idea will be appreciated
Yves

JShepherd

unread,
Nov 17, 2010, 5:45:43 PM11/17/10
to
In article <c0a4e85c-37bd-4c00...@q14g2000yqe.googlegroups.com>,
tour...@aol.com says...

Open the file, read the object file header and test
the appropriate fields.

The header layout is in $system.zguard.dobjfmt

Keith Dick

unread,
Nov 17, 2010, 8:39:51 PM11/17/10
to

The easiest way I can see to do it is a TACL routine that captures the output of FUP INFO $vol.*.* WHERE FILECODE=100 into a TACL variable, then gets the file names out of that variable one by one, captures the output of BIND SHOW INFO FROM <file> into another TACL variable, looks through that second TACL variable to see whether it has accelerator information, and if so, displays the filename as one that is accelerated.

Instead of using FUP INFO, it could find the filenames using the #FILEINFO built-in in a loop. It would be easier to code using #FILEINFO, but I have a feeling it would run a bit slower. Maybe not enough slower to matter much, but I don't know for sure.

If you want some help writing such a TACL routine, ask and I would be happy to write some code for you, but I cannot test it, so you might have to do a little debugging of the TACL. I'm pretty sure it would not require much debugging.

wbreidbach

unread,
Nov 18, 2010, 4:11:53 AM11/18/10
to

Instead of BIND you can use VPROC to get that information.

Keith Dick

unread,
Nov 18, 2010, 4:36:00 AM11/18/10
to

VPROC might be better. I really don't know. I'm not aware of any documentation that says how VPROC is supposed to behave and what it is supposed to display in all situations. BIND has the advantage that it is described better.

mark.h...@excite.com

unread,
Nov 18, 2010, 5:56:31 AM11/18/10
to
> VPROC might be better.  I really don't know.  I'm not aware of any documentation that says how VPROC is supposed to behave and what it is supposed to display in all situations.  BIND has the advantage that it is described better.- Hide quoted text -
>
> - Show quoted text -

Vproc would work example listings of combinations below acelerated,
native and not


$SYSTEM.SYSTEM.FUP
Binder timestamp: 23JUL1999 05:14:48
Version procedure: S7053D45^31MAR99^LOAD^AAS^28MAY
Version procedure: T6553D45^23JUL99^FUP^23JUL99
Target CPU: TNS, TNS/R
AXCEL timestamp: 23JUL1999 05:15:30

$SYSTEM.SYSTEM.AR
GMT Binder timestamp: 20FEB1997 18:40:50
Version procedure: T8432D40_01NOV95_CRTLMAIN
Version procedure: T8629D43_17Mar97_20Feb97
Native Mode: runnable file

$SYSTEM.SYSTEM.ARMTRACE
GMT Binder timestamp: 22APR1992 15:31:40
Version procedure: T9051C31^16APR92^AAN01A
Target CPU: TNS/R


Keith Dick

unread,
Nov 18, 2010, 11:38:28 AM11/18/10
to

Thanks for posting those examples.

I do not mean to be difficult on this point, but a few examples might not show some case in which VPROC would give a misleading result.

For example, all of the files in this demonstration contain proper version procedures. It certainly would be important to check what output VPROC gives for a few accelerated and unaccelerated code 100 files that contain no procs whose names match the version procedure pattern. But even if a few examples without version procedures seem to work, that isn't proof that VPROC will work for all cases. It would be a highly suggestive demonstration, and probably proof enough for the purpose we are discussing right now, but I still would be a little wary of using VPROC for a purpose for which I'm not sure it was intended and thoroughly tested. I'm much more willing to trust that BIND would handle every case correctly.

mustlearntandem

unread,
Nov 18, 2010, 12:07:06 PM11/18/10
to
On Nov 17, 5:45 pm, inva...@nowhere.com (JShepherd) wrote:
> In article <c0a4e85c-37bd-4c00-82b2-0ae3fac7f...@q14g2000yqe.googlegroups.com>,
> tourni...@aol.com says...

>
>
>
> >Hi all,
> >I am looking at a way to find all accelerated programs on a disc on S-
> >series. I only know the bind command show info from <file> but it's
> >not an easy way to scan all obejcts on a volume. I could not find
> >anything using FUP or any guardian procedure.
> >Any idea will be appreciated
> >Yves
>
> Open the file, read the object file header and test
> the appropriate fields.
>
> The header layout is in $system.zguard.dobjfmt

This is probably one of the easiest and most reliable ways to
accomplish this. There is a simple flag in the header for Axcel and
OCA along with associated bit DEFINEs.

You should just be able to open the object, read the header, check the
target CPU and test the appropriate flag.

wbreidbach

unread,
Nov 18, 2010, 12:25:48 PM11/18/10
to
On 18 Nov., 17:38, Keith Dick <kd...@acm.org> wrote:
> For example, all of the files in this demonstration contain proper version procedures.  It certainly would be important to check what output VPROC gives for a few accelerated and unaccelerated code 100 files that contain no procs whose names match the version procedure pattern.  But even if a few examples without version procedures seem to work, that isn't proof that VPROC will work for all cases.  It would be a highly suggestive demonstration, and probably proof enough for the purpose we are discussing right now, but I still would be a little wary of using VPROC for a purpose for which I'm not sure it was intended and thoroughly tested.  I'm much more willing to trust that BIND would handle every case correctly.  - Zitierten Text ausblenden -
>
> - Zitierten Text anzeigen -

Just 2 samples with an Integrity:

$DSMSCM.CHECKOBJ.CHECKER
Binder timestamp: 21JUN2010 13:46:27
Version procedure: T0000H06^21JUN10^R01^V01^M000
TNS/E Native Mode: runnable file

$DSMSCM.CHECKOBJ.CHECKPWX
Binder timestamp: 18NOV2010 14:11:09
Version procedure: >> NO T9xxx PROC <<
Target CPU: UNSPECIFIED
OCA timestamp: 18NOV2010 14:11:29

Would be similar on an S-series with AXCEL instead of OCA.

NSAS - Yves Tournier

unread,
Nov 18, 2010, 5:07:59 PM11/18/10
to
Thank you all and especially Tony Sim who sent me a Tacl macro running
VPROC with a formatted output. It works fine for me
The macro displays compiled timestamp + accelerated timestamp if any.
Yves

Dave Does Tandem Nonstop

unread,
Nov 24, 2010, 4:43:16 AM11/24/10
to
JShepherd offered up this bit of brilliance on 11/17/2010 2:45 PM,
ipsissima verba:

It appears the OP already has a solution he likes, but here's a
TACL-only variation, based of something similar I wrote to display a
bunch of information on ZZSA files.
You give it a subvolume, and it will list the AXCEL and OCA status of
every TNS object in the subvolume. I just tossed in the compile
timestamp, so the formatting is off, but it's an fyi start, easily
modified/enhanced...

?TACL Routine
#FRAME
#PUSH file2test subv subv^test cnt e r p oct ipf
#PUSH ts

[#DEF file^hdr Struct
Begin
filler 180;
uint cts(0:2);
filler 302;
int2 ipf_addr;
int2 ipf_len;
uint ipf_flags;
int2 oct_addr;
uint oct_flags;
filler 8;
End;
]

[#CASE [#ARGUMENT /Value subv/Subvol Otherwise]
|1| #SET file2test [subv]
|2| #SET file2test [#DEFAULTS /Current/]
]

#SET subv^test [file2test]
#SET file2test [#NEXTFILENAME [file2test].A]

[#LOOP |While| [#MATCH [subv^test]* [file2test]] |Do|
[#IF [#FILEINFO /Code/[file2test]] = 100 |Then|
#SET e [#REQUESTER /Wait 512/Read [file2test] e r p]
[#CASE [e]
|0| #APPEND p >
Sink [#REQUESTER /Wait/Close e]
#EXTRACTV r file^hdr
#SET ipf [#COMPUTE file^hdr:ipf_flags / 16384]
#SET oct [#COMPUTE file^hdr:oct_flags / 16384]
#SET ts [#COMPUTE [file^hdr:cts(0)] * 4294967296
+ [file^hdr:cts(1)] * 65536
+ [file^hdr:cts(2)]
]
#output Compiled - [_contime_to_text [#CONTIME [ts]]]
#OUTPUT /Hold/[file2test]
#OUTPUT /Column 30,Hold/ [#CASE [oct]
| 0 1 | Not Axcel'd
| 2 | Axcel'd but disabled
| 3 | Axcel'd
]
#OUTPUT /column 60/ [#CASE [ipf]
| 0 1 | Not OCA'd
| 2 | OCA'd
| 3 | OCA'd but disabled
]
|Otherwise| #OUTPUT [file2test] - open error [e]
] == End Case
] == End if

#SET file2test [#NEXTFILENAME [file2test]]

] == End Loop

#UNFRAME

Jay Madore

unread,
Feb 8, 2019, 10:32:26 AM2/8/19
to
Here is an updated version for NonStop-X (OCAX).
(formatting changes as well)

?TACL Routine
#FRAME
#PUSH file2test subv subv^test cnt e r p oct ipf ocx
#PUSH ts


[#DEF file^hdr Struct
Begin
filler 180;
uint cts(0:2);
filler 290;
int2 ocx_addr;
int2 ocx_len;
uint ocx_flags;
filler 2;
int2 ipf_addr;
int2 ipf_len;
uint ipf_flags;
int2 oct_addr;
uint oct_flags;
filler 8;
End;
]



[#CASE [#ARGUMENT /Value subv/Subvol Otherwise]
|1| #SET file2test [subv]
|2| #SET file2test [#DEFAULTS /Current/]
]


#SET subv^test [file2test]
#SET file2test [#NEXTFILENAME [file2test].A]


#OUTPUT OBJECT AXCEL? OCA? OCAX? COMPILED
#OUTPUT -------------------------- ----- ---- ----- ----------------------------


[#LOOP |While| [#MATCH [subv^test]* [file2test]] |Do|
[#IF [#FILEINFO /Code/[file2test]] = 100 |Then|
#SET e [#REQUESTER /Wait 512/Read [file2test] e r p]
[#CASE [e]
|0| #APPEND p >
Sink [#REQUESTER /Wait/Close e]
#EXTRACTV r file^hdr
#SET ipf [#COMPUTE file^hdr:ipf_flags / 16384]
#SET oct [#COMPUTE file^hdr:oct_flags / 16384]
#SET ocx [#COMPUTE file^hdr:ocx_flags / 16384]
#SET ts [#COMPUTE [file^hdr:cts(0)] * 4294967296
+ [file^hdr:cts(1)] * 65536
+ [file^hdr:cts(2)]
]

#OUTPUT /Hold/[file2test]
#OUTPUT /Column 28,Hold/ [#CASE [oct]
| 0 1 | NO
| 2 | FAIL
| 3 | YES
]
#OUTPUT /column 35, HOLD/ [#CASE [ipf]
| 0 1 | NO
| 2 | YES
| 3 | FAIL
]


#OUTPUT /column 41, HOLD/ [#CASE [ocx]
| 0 1 | NO
| 2 | YES
| 3 | FAIL
]


#OUTPUT /column 47/ [_contime_to_text [#CONTIME [ts]]]
0 new messages