[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference azur::mcc

Title:DECmcc user notes file. Does not replace IPMT.
Notice:Use IPMT for problems. Newsletter location in note 6187
Moderator:TAEC::BEROUD
Created:Mon Aug 21 1989
Last Modified:Wed Jun 04 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:6497
Total number of notes:27359

3994.0. "directive id limit?" by SKIGOD::PFROMER (Ed Pfromer, ESM Engineering) Thu Oct 29 1992 13:38

Is there a limit on the value of directive IDs?  For prototyping purposes,
I've written some MSL with directives in the 600+ id range, in order to not
collide with any other directives in my dictionary.

The MSL build and dictionary update seemed to work ok.  But when I issued
the command from the FCL, I got and unsupported verb/entity/partition message.

I've looked at sys$library:mcc_vea_def.h, and it looks like theres a range
of verbs in the 400 range that aren't being used; I'll try these next.

How is one supposed to prototype with MCC?  Are we supposed to get a block
of verb and entity ids up front, or waste time like I'm doing taking guesses?

T.RTitleUserPersonal
Name
DateLines
3994.1Good idea to registerTOOK::MINTZLKG2-2 near pole X3, cube 6072, dtn 226-5033Thu Oct 29 1992 13:458
If you know what global entities you will be managing, it is a good idea
to register their ids up front.  Discovering a conflict later can be
very painful.

I suppose the same applies for verbs, if you really need to create new
ones.  But typically you can use existing verbs.

-- Erik
3994.2It should work okayTOOK::GUERTINDon't waffle (unless you want to)Thu Oct 29 1992 15:248
    I have used MCC_K_VERB_EXTEND1, ... MCC_K_VERB_EXTEND4 (numbered 39
    thru 42) without any problems.  These verbs are reserved for
    prototyping.  How many new directives do you have?  There should not
    be any problems with coming up with new directive codes, so long as
    the directive names do not conflict (for example, do not specify
    that SHOW has directive code 666).
    
    -Matt.
3994.3more help pleaseSKIGOD::PFROMEREd Pfromer, ESM EngineeringThu Oct 29 1992 15:3112
We have well over 20 verbs.  

I tried using codes 400, 401 and 402, and I still get:

%MCC-E-NOTFOUND,  unsupported combination of verb, entity, partition

The dictionary clearly has the verbs defined, but I can't access the from
MCC.  Any ideas?

Some of my verbs work (mostly ones with ids of 50 and below) and some do not.
Do I need to do some enrolling of modules here?  If so, which ones?
3994.4TOOK::GUERTINDon't waffle (unless you want to)Thu Oct 29 1992 15:599
    Well MCC-E-NOTFOUND is different.  It implies that the dictionary is
    fine, but the dispatch tables do not have dispatch entries.  Can you
    post your vector.mar file?  Are you enrolling in the Function Table or
    the Access Table.  Try enrolling into the Function Table for new
    directives.  There is "filtering" mechanism built into the MCC Kernel
    which only allows a set of pre-defined verbs to be passed down to
    the Access Modules.
    
    -Matt.
3994.5more questionsSKIGOD::PFROMEREd Pfromer, ESM EngineeringThu Oct 29 1992 16:1216
>    fine, but the dispatch tables do not have dispatch entries.  Can you
>    post your vector.mar file?  Are you enrolling in the Function Table or

I'm not modifying any vector.mar file when adding verbs.  Perhaps this is 
the source of my problem?

>    the Access Table.  Try enrolling into the Function Table for new
>    directives.  There is "filtering" mechanism built into the MCC Kernel
>    which only allows a set of pre-defined verbs to be passed down to
>    the Access Modules.
    
This filtering sounds like my problem.  If I use the predefined verb codes,
everything seems to work.  Now, how do I "enroll into the Function Table
for new directives"?

3994.6need vector file changesTOOK::PURRETTAFri Oct 30 1992 09:4713
    Ed,
    
    Why don't you take this up with me off-line.  What you need is
    either the special AM I put together for you a while back or one
    which the vector file has entrypoints defined for the verbs you're
    trying to use.  This is probably why Matt was asking about the
    EXTEND_X verbs.  The AM has entrypoints defined for those already
    but anything new that you come up with will not have a way to dispatch
    into code without changing (adding to) the vector file and rebuilding
    an AM, then re-enrolling it.
    
    John
    
3994.7Try thisTOOK::GUERTINDon't waffle (unless you want to)Fri Oct 30 1992 11:0343
    In your dispatch table (the <whatever>.MAR file), you have dispatch
    entries defined for your management module.  The basic format is
     < Verb, Entity, Partition, routine-to-call >, where the V.E.P is
    used as a key in the dispatch table lookup.  After you declare your
    *_init, *_probe, and *_log routine entry points, generally, a
    declaration of the new verb code is done...
    
;+
; Define the transfer vector for this FM. This must be first.
;-
        mcc_init_vector my_test_fm_init
        mcc_init_vector my_test_fm_log
        mcc_init_vector my_test_fm_probe

MCC_K_VERB_MY_DIRECTIVE = 666
MCC_K_CLASS_MY_TEST_FM = 127
    
        ;
        ; Begin the dispatch tables
        ;
        mcc_start_dispatch_table my_test_fm_dispatch_table

        ;
        ; Dispatch entry for My Test
        ;
        mcc_dispatch_entry -
                MY_DIRECTIVE, <MCC_ENTITY <MY_TEST_FM, *>>, NULL, my_fm_directive

        mcc_end_dispatch_table

    
    In your <whatever>_init routine, you must call mcc_enr_enroll(...). 
    The first parameter is either MCC_K_FUNCTION or MCC_K_ACCESS.  If you
    specify MCC_K_FUNCTION, your dispatch table gets enrolled into the
    Function Table.  If you specify MCC_K_ACCESS, your dispatch table get
    enrolled into the Access Table.  Since you want to add new verbs, you
    need to enroll these new verbs into the Function Table.  If you have an
    Access Module (which you apparently do have), you should also enroll
    them in the Access Table.  So that FMs can issue mcc_call_access()
    with the Verbs and it will work.
    
    Hope this helps,
    -Matt.
3994.8thanks for the helpSKIGOD::PFROMEREd Pfromer, ESM EngineeringFri Oct 30 1992 13:346
Thanks everyone for the assistance.

John, I'll take this up with you offline.

--ed
3994.9Correction on Dispatching, plus commentsTOOK::KOHLSRuth KohlsMon Nov 02 1992 10:3020
1) All codes must fit in a 32 bit unsigned int, and using the same names and 
 codes as are already defined in mcc_vea_def.sdl and .h where the intended new 
 function matches the description of an existing verb is required. 

 The DSSR registry assigns new codes, and yes, this should be done as soon
 as the entity model you're working with is reasonably stable.

2) The dispatch process searches the FM table first, and then if a request
   isn't matched, searches the AM table.  There are 4 exceptions, directives 
   that the Registration FM must act on before an AM:  

		Register, 
		Deregister, 
		Rename, and
		Erase.

3) the problem above looks to me like a  vector table problem, and I understand
it is being worked off line.

Ruth K.
3994.10TOOK::PURRETTAMon Nov 02 1992 22:5715
    Matt, Ruth,
    
    Ed doesn't have an FM.  Only MSL and MOM code.  We're working together
    on a project to allow his global entities to dispatch directly into
    the DNA5 AM and have the AM figure out which node the MOM is running on
    and send the request to the Common Agent on that node.
    
    Until I can figure out how to dynamicly update the dispatch table with
    the DNA5 AM entrypoint addresses so that his new globals and verbs can
    find its way to the right place, he's going to need me to build them
    into the AM vector file.
    
    Any ideas buys you a coffee.  Solutions, heck, I'll pay for a month! :^)
    
    John