Operating System - OpenVMS
1752794 Members
7318 Online
108789 Solutions
New Discussion юеВ

Re: comparing UAF$Q_PRIV and UAF$Q_DEF_PRIV

 
SOLVED
Go to solution
David Jones_21
Trusted Contributor

Re: comparing UAF$Q_PRIV and UAF$Q_DEF_PRIV

I don't know if it is still the case, but a $SETPRV call from kernel mode lets you set any privilege bit except PRV$_SETPRV. Having
CMKNL privilege therefore lets you write a substitute for the "SET PROCESS/PRIVILEGE " command.
I'm looking for marbles all day long.
Arch_Muthiah
Honored Contributor

Re: comparing UAF$Q_PRIV and UAF$Q_DEF_PRIV

Jan/Hein/Galen/David,

Thanks for your responses.

Hein: I am sorry, the code you suggested does not give the result.

I still need some help to find all the privilieges for a user in a single $MACRO symbol.

I tried with $UAFDEF, $PSBDEF, and $ARBPDEF (absolete in VMS > V7.2), unable to find any variable. Still I belive there should be a symbol to hold all PRIVs.

Galen: Your response was informative. good.
Though I don't want to add any more question within this thread for which still I need your assistance, one small additional question....
< SETPRV, on the other hand, only works if < it's in AUTHPRIV

---this is the case only with SETPRV ?

Note: Yesterday I happened to visit office multiple times in the night to cooperate India branch, so I don't have enough time to go thru your answers. Also I searched the net, I don't find any "MACRO 32 programming manual"?. Any idea? (not VAX instrn reference manual)

Will be back tonight to assign the points.
Thanks.
Archunan
Regards
Archie
Ian Miller.
Honored Contributor

Re: comparing UAF$Q_PRIV and UAF$Q_DEF_PRIV

MACRO32 programming manual - I suggest

http://h71000.www7.hp.com/doc/82final/5601/5601PRO.HTML
____________________
Purely Personal Opinion
Hein van den Heuvel
Honored Contributor

Re: comparing UAF$Q_PRIV and UAF$Q_DEF_PRIV

>> Hein: I am sorry, the code you suggested does not give the result.

It was just there to show a direction to go into. You'll have to figure out the details.

>> I still need some help to find all the privilieges for a user in a single $MACRO symbol.

There is no single place. You'll have to either run the test against multipel masks, or masks the priv bits together with an OR (BIS)

>> I tried with $UAFDEF, $PSBDEF, and $ARBPDEF (absolete in VMS > V7.2)

UAFDEF is availabel in SYS$LIBRARY:LIB.MLB
But where do you get the data from?
From GETUAI as recommended? (need UAIDEF)
Directly the SYSUAF record?(need UAFDEF)
From the running process live data structures?

< SETPRV, on the other hand, only works if < it's in AUTHPRIV
---this is the case only with SETPRV ?

Yes, best we know. Otherwise it would be too easy to grab setprv.

>> Also I searched the net, I don't find any "MACRO 32 programming manual"?. Any idea? (not VAX instrn reference manual)

What about...
"VAX MACRO and Instruction Set Reference Manual"
http://h71000.www7.hp.com/doc/73final/4515/4515PRO.html

Hein.
Arch_Muthiah
Honored Contributor

Re: comparing UAF$Q_PRIV and UAF$Q_DEF_PRIV

Thanks for the responses.

Hein:
I get the system info on FAB, RAB, XAB, NAM blocks, using RMS services instead of system services, using UAFDEF symbols directly.
As you have confirmed that there is no single MACRO symbol to get all priv, I guess
I should go ahead use UAF$Q_PRIV and UAF$Q_DEF_PRIV symbols seperately one after another. I was bit reluctant/difficult use this way as I need to track all registers (almost some 10 Registers) to do so many shifting back and forth to point to specfic locations. I am wondering how come there is no facility to get the combined priv in a symbol and UAF$Q_PRIV ! UAF$Q_DEF_PRIV (ORing)is not working for me.

Ian/Hein:
Thanks for the URL for docs. Anyway I have this doc, it is not so helpfull. but there are some individual people authorized to sell out "VAX MACRO Programming guide" related docs, I am trying to find those.

Jan/Wim/Hein/Gillings/Bob/Volker:
Do you know any one from whom I can get some VAX MACRO programming related documents? (HP or private).

I will appreciate any further assistance on my intial question.

Thanks
Archunan
Regards
Archie
Hein van den Heuvel
Honored Contributor

Re: comparing UAF$Q_PRIV and UAF$Q_DEF_PRIV

>> I get the system info on FAB, RAB, XAB, NAM blocks, using RMS services instead of system services, using UAFDEF symbols directly.


Right, that's what I suspected.
And you may need the SYSUAF file to get the USERNAME field data. But beyond that you shoudl consider feeding that username into $GETUAI and obtaining individual field data that way.

Anyway, may we assume that the record buffer you use is strictly for this purpose, and that it is pointed to by R6?
In that case you can do as I suggested earlier, just combine the data from the two fields into one of them. To get the ORred mask into PRIV you could use:

BISQ2 UAF$Q_DEV_PRIV(R6),UAF$Q_PRIV(R6)

Of course this destroys the original PRIV value, leaving just that ORred mask.

And then it seems that for the rest of the code you need to point to the mask to use, again with R6? If so:

MOVAB UAF$Q_PRIV(R6),R6

>> I was bit reluctant/difficult use this way as I need to track all registers (almost some 10 Registers) to do so many shifting back and forth to point to specfic locations.

Use the stack, or local data as intermediate storage!


>> Thanks for the URL for docs. Anyway I have this doc, it is not so helpfull. but there are some individual people authorized to sell out "VAX MACRO Programming guide" related docs, I am trying to find those.

Right.. it is not meant as a tutorial, but as a reference document. It seems strange to try to learn macro this day and age. Why not use C or any other language you happen to have available. Then again, I always enjoyed having learned macro (through years of trial and error :-).

Cheers,
Hein.
Arch_Muthiah
Honored Contributor

Re: comparing UAF$Q_PRIV and UAF$Q_DEF_PRIV

Hein,

Thanks for your continous response to solve my problem. I followed all your uggestions.

Yes, as you said, I can not use BISQ2 as it shifts the actual bits in UAF$Q_PRIV and UAF$Q_DEF_PRIVin wich I need to keep intact throughout the loop for other processing.

I tried with BISQ3 with 3rd Operand, it doesn't give the expected result. Also I use R6 to have UAF$L_UIC plus ^X2E OFFSET, then I should MOVAB UAF$Q_PRIV!UAF$Q_DEF_PRIV + effective address of R6 to R6 Register. This was my idea.

But BISQ3 and UAF$Q_PRIV!UAF$Q_DEF_PRIV does not give the expected result, I have followed other way I said, that is testing UAF$Q_PRIV and UAF$Q_DEF_PRIV separately.

I completed it and it is working now with addition of another Register.

Thanks for your continuous assistance, I learned new things from you, Jan and Galon responses.

Archunan
Regards
Archie
Arch_Muthiah
Honored Contributor

Re: comparing UAF$Q_PRIV and UAF$Q_DEF_PRIV

Hein/Jan/Ian/Galen/David,

The problem solved with your suggestions and ideas.

I appreciate your responsible continuous assistance with vaious suggestions which really helped me to solve and learn new things.

Archunan
Regards
Archie
Arch_Muthiah
Honored Contributor

Re: comparing UAF$Q_PRIV and UAF$Q_DEF_PRIV

Hi all,

I am wondering on no ressponses from Volker, WIM, and Jhon Gillings (Bob gone out of this thread with his single response). Really I always expect some responses from you all.

Anyway Jan,Hein,Ian,Bob, Galen and David helped me.

I have copule of decision making question on moving to Itanium/OpenVMS in the comming days. I want to advance book your timings for that in the comming days.

Archunan
Regards
Archie
Hein van den Heuvel
Honored Contributor

Re: comparing UAF$Q_PRIV and UAF$Q_DEF_PRIV

>> UAF$Q_PRIV!UAF$Q_DEF_PRIV

Now that is scary! :-)
You are ORring the offest (not the data) of one qudword with the offset of an other quadword. The result will be the a more or less random offset, larger than both.

>> I am wondering on no ressponses from Volker, WIM, and Jhon Gillings

^hey were watching and saw you were in good hands :-).

John is reducing his presence in thos forum due to a conflict of interested. He _loves_ to help, but his real work is to provide support through the official channels, notably for Australian/Asian customers. I'm sure you can all appreciate the precarious trade-off between free advice and official, paid-for support. If more folks would use the points more consistently, then he and other HP employees might be able to justify their much appreciated efforts here more easily, but this is not the case.

>> I have copule of decision making question on moving to Itanium/OpenVMS in the comming days. I want to advance book your timings for that in the comming days.

Be sure to keep yuour eyes open for the Itanium porting seminars. They are extremely good values considering the top-notch resources teaching the seminars, and the system you get to take home.
The 2006 seminars are about to be annouced.

Cheers,
Hein.