Jon Pinkley
2020-11-05 08:03:00 UTC
In 1998, Ken Coar submitted the LOCK utility to the DECUS VAXSIG tape.
LOCK was submitted twice first LOCK010 on VAX86C, and LOCK011 on VAX87A both under the GENDYN directory.
https://www.digiater.nl/openvms/decus/vax86c/gendyn/
https://www.digiater.nl/openvms/decus/vax87a/gendyn/
But these won't help much unless you are using VAX/VMS
It had source code for LOCK (in BLISS) in the VAX87A LOCK011.A installation saveset, but was distributed with some support routines in VAX specific Bliss library (KENLIB.L32) and an VAX object library SHRLIB.OLB
In 1998, I was able to get an Alpha version of KENLIB.L32 and SHRLIB.OLB directly from Ken Coar, and I also added some features to support some of the new DLM features, specifically /expedite of null lock request and support for QUECVT which uses /serialise (Ken's choice of spelling).
LOCK uses supervisor mode locks that survive image rundown, and the lock ids are help in process kernel mode logical names.
I find it to be an extremely useful utility.
If you are interested in it, here is where it lives.
https://sourceforge.net/projects/vms-otools/
and to download a zip file of everything, go to
https://sourceforge.net/p/vms-otools/code/HEAD/tree/
and then click download snapshot.
I used unzip -a when extracting to create "standard" text files instead of stream_lf.
I was able to regenerate a lock.exe from the source I downloaded, without any of my additions.
$ analyze/image lock_main.exe
Analyze Image 5-NOV-2020 02:44:01.18 Page 1
ROOT$USERS:[JON.SCR.LOCK_TEST_BUILD]LOCK_MAIN.EXE;1
ANALYZ A01-07
This is an OpenVMS Alpha image file
---snip---
Image Identification Information
image name: "LOCK_MAIN"
image file identification: "V1.2-012"
image file build identification: ""
link date/time: 4-NOV-2020 03:14:49.03
linker identification: "A13-03"
Patch Information
There are no patches at this time.
The following is the version I have been using for the last 22 years, probably compiled on an AS2000.
$ pipe analyze/image sys$system:lock_main.exe | search sys$pipe "image ident"/win=(0,10)
Image Identification Information
image name: "LOCK_MAIN"
image file identification: "T1.2-013JLP0.1"
image file build identification: ""
link date/time: 21-AUG-1998 00:37:27.63
linker identification: "A11-20"
Patch Information
There are no patches at this time.
$
My additions are not in the code that is on sourceforge, and I didn't find a command file to build the support files. There is no LCLDEF.SDL file for the LDLDEF.R32 file, but it should work as long as you use bliss32. I don't know if Ken could even find the original SDL file, because he did include the LOCK_DEF.SDL file. But for LCLDEF.R32 (used by KENLIB.B32), the LCLDEF.SDL was not provided.
I can't redistribute modified source without Ken's permission, but I could create a DIFFERENCES/SLP file with the changes needed to create what I have using EDIT/SUMSLP and the sources from sourceforge.
It is a utility that gets used frequently here, so it is one of the must have working when we migrate to the Itanium, so rebuilding from source was on my todo list.
LOCK was submitted twice first LOCK010 on VAX86C, and LOCK011 on VAX87A both under the GENDYN directory.
https://www.digiater.nl/openvms/decus/vax86c/gendyn/
https://www.digiater.nl/openvms/decus/vax87a/gendyn/
But these won't help much unless you are using VAX/VMS
It had source code for LOCK (in BLISS) in the VAX87A LOCK011.A installation saveset, but was distributed with some support routines in VAX specific Bliss library (KENLIB.L32) and an VAX object library SHRLIB.OLB
In 1998, I was able to get an Alpha version of KENLIB.L32 and SHRLIB.OLB directly from Ken Coar, and I also added some features to support some of the new DLM features, specifically /expedite of null lock request and support for QUECVT which uses /serialise (Ken's choice of spelling).
LOCK uses supervisor mode locks that survive image rundown, and the lock ids are help in process kernel mode logical names.
I find it to be an extremely useful utility.
If you are interested in it, here is where it lives.
https://sourceforge.net/projects/vms-otools/
and to download a zip file of everything, go to
https://sourceforge.net/p/vms-otools/code/HEAD/tree/
and then click download snapshot.
I used unzip -a when extracting to create "standard" text files instead of stream_lf.
I was able to regenerate a lock.exe from the source I downloaded, without any of my additions.
$ analyze/image lock_main.exe
Analyze Image 5-NOV-2020 02:44:01.18 Page 1
ROOT$USERS:[JON.SCR.LOCK_TEST_BUILD]LOCK_MAIN.EXE;1
ANALYZ A01-07
This is an OpenVMS Alpha image file
---snip---
Image Identification Information
image name: "LOCK_MAIN"
image file identification: "V1.2-012"
image file build identification: ""
link date/time: 4-NOV-2020 03:14:49.03
linker identification: "A13-03"
Patch Information
There are no patches at this time.
The following is the version I have been using for the last 22 years, probably compiled on an AS2000.
$ pipe analyze/image sys$system:lock_main.exe | search sys$pipe "image ident"/win=(0,10)
Image Identification Information
image name: "LOCK_MAIN"
image file identification: "T1.2-013JLP0.1"
image file build identification: ""
link date/time: 21-AUG-1998 00:37:27.63
linker identification: "A11-20"
Patch Information
There are no patches at this time.
$
My additions are not in the code that is on sourceforge, and I didn't find a command file to build the support files. There is no LCLDEF.SDL file for the LDLDEF.R32 file, but it should work as long as you use bliss32. I don't know if Ken could even find the original SDL file, because he did include the LOCK_DEF.SDL file. But for LCLDEF.R32 (used by KENLIB.B32), the LCLDEF.SDL was not provided.
I can't redistribute modified source without Ken's permission, but I could create a DIFFERENCES/SLP file with the changes needed to create what I have using EDIT/SUMSLP and the sources from sourceforge.
It is a utility that gets used frequently here, so it is one of the must have working when we migrate to the Itanium, so rebuilding from source was on my todo list.