- Integrated Systems
- About Us
- Integrated Systems
- About Us
11-15-2010 04:57 AM
Solved! Go to Solution.
11-15-2010 06:59 AM
If that's not the particular "vector table" you're referring to, then please post a hunk of the Macro32 code involved; some additional background, context, and a reproducer.
11-15-2010 07:46 AM
11-15-2010 09:36 AM
.title lgi$loginout_callouts - data transfer vector holder definition
11-15-2010 10:13 AM
So you need help declaring a VMS data structure.
For this case, I'd probably use the declarations that are present in LGIDEF, but that's your call.
Here's the data structure definition you're working with:
The necessary declarations are present in Macro32 library, in the Bliss library, and in the C library. Probably in various other language definition libraries, too.
Here's how to get a look at the C struct declaration:
$ lib sys$share:sys$lib_c.tlb/extr=LGIDEF/out=lgidef.h
Here's an introduction to C programming on VMS, and which includes a discussion of SYS$LIB_C.TLB:
Whomever coded that Macro32 module didn't do it using the system declarations (no big deal); that'd normally be a block buffer declaration (.blkb, probably) and then the Macro32 symbolic offsets from LGIDEF module. (There's no macro declaration, so what was done with that Macro32 code is functional.)
To that end, there are examples of referring to the *DEF modules in various Macro32 examples, including here:
Those show DEF declarations, and the rest of the stuff.
I'd guess that the Macro32 compiler error you're hitting is related to a (missing) PSECT declaration, but I'd need to run a build on an Itanium to confirm that. Probably something like:
needs to be added ahead of the declarations. But without an Itanium box and without the diagnostics, the specific error isn't clear. (That code should still build, so there's probably something pretty simple wrong with it.)
Here's an introduction to Macro32 programming on VMS:
11-15-2010 10:24 AM
See the C code example attached to my response in this thread:
11-15-2010 12:48 PM
11-15-2010 02:19 PM
First, welcome to the HP ITRC OpenVMS Forum.
So that we can understand precisely what is happening, it would be extremely helpful if you could post the precise error message that you are encountering.
An alignment problem can be addressed directly by properly aligning the PSECT or by using the .ALIGN macro directive.
More information would be extremely useful.
- Bob Gezelter, http://www.rlgsc.com
11-15-2010 04:57 PM
Please show use how you come to that conclusion.
The macro you present compiles to the exact same definitions/psects/references/aligment on Alpha as on Itanium. For yucks I tried using "AMAC V5.0-120" and "IMAC V5.0-120-4". They both generate a Psect: . BLANK . 00000028 (00040.) 01 (001.) NOPIC CON REL LCL NOSHR EXE RD WRT
Now as Hoff says, those Psect attribute may no longer be appropriate.
Have you read Jess's reply carefully? You only awared it 5-points suggesting it did not help, yet he points to a rather complete and working example.
11-16-2010 03:51 AMSolution
The C solution is perhaps the best though.