Annotation of 43BSDReno/contrib/isode-beta/vt/send_asr.py, revision 1.1

1.1     ! root        1: -- VTPM: encode ASR PDU
        !             2: 
        !             3: -- $Header: /f/osi/vt/RCS/send_asr.py,v 7.0 89/11/23 22:31:43 mrose Rel $
        !             4: --
        !             5: --
        !             6: -- $Log:       send_asr.py,v $
        !             7: -- Revision 7.0  89/11/23  22:31:43  mrose
        !             8: -- Release 6.0
        !             9: -- 
        !            10: 
        !            11: --
        !            12: --                               NOTICE
        !            13: --
        !            14: --    Acquisition, use, and distribution of this module and related
        !            15: --    materials are subject to the restrictions of a license agreement.
        !            16: --    Consult the Preface in the User's Manual for the full terms of
        !            17: --    this agreement.
        !            18: --
        !            19: --
        !            20: 
        !            21: 
        !            22: ASRPDU DEFINITIONS ::=
        !            23: 
        !            24: %{
        !            25: #include <stdio.h>
        !            26: #include "sector1.h"
        !            27: 
        !            28: #undef PEPYPARM
        !            29: #define PEPYPARM int *
        !            30: 
        !            31: #undef PEPYTEST
        !            32: 
        !            33: static int l,m;
        !            34: 
        !            35: #ifdef PEPYTEST
        !            36: 
        !            37: char *myname;
        !            38: ASR_MSG ud;
        !            39: static char my_version = 0x01;
        !            40: static char my_fu = 0x1c;
        !            41: 
        !            42: main(argc,argv)
        !            43: int argc;
        !            44: char **argv;
        !            45: {
        !            46: 
        !            47:        PE pe;
        !            48:        int i;
        !            49: 
        !            50:        myname = argv[0];
        !            51: 
        !            52:        ud.valid_reason = 0;
        !            53:        ud.result = 1;
        !            54:        ud.valid_imp = 0;
        !            55:        ud.valid_arg_list = 1;
        !            56:        ud.version.bitstring  = my_version;
        !            57:        ud.version.bitcount = 1;
        !            58:        ud.arg_list.num_sp_param = 1;
        !            59:        ud.arg_list.num_cds_objects = 2;
        !            60:        ud.arg_list.num_css_objects = 0;
        !            61:        ud.arg_list.num_dev_objects = 0;
        !            62:        ud.arg_list.sp_val[0].param_num = 1;
        !            63:        ud.arg_list.sp_val[0].param_type = 1;
        !            64:        ud.arg_list.sp_val[0].args.int_arg = 80;
        !            65:        ud.arg_list.cds_val[0].obj_name = "KB";
        !            66:        ud.arg_list.cds_val[1].obj_name = "DI";
        !            67:        for(i=0; i<ud.arg_list.num_cds_objects; i++)
        !            68:        {
        !            69:                ud.arg_list.cds_val[i].dimensions = 0;
        !            70:                ud.arg_list.cds_val[i].valid_x_dim = 0;
        !            71:                ud.arg_list.cds_val[i].valid_y_dim = 0;
        !            72:                ud.arg_list.cds_val[i].valid_z_dim = 0;
        !            73:                ud.arg_list.cds_val[i].valid_erasure = 0;
        !            74:                ud.arg_list.cds_val[i].valid_rep_list = 1;
        !            75:                ud.arg_list.cds_val[i].valid_emp_list = 0;
        !            76:                ud.arg_list.cds_val[i].valid_fore_color = 0;
        !            77:                ud.arg_list.cds_val[i].valid_back_color = 0;
        !            78:                ud.arg_list.cds_val[i].valid_access_right = 0;
        !            79:                ud.arg_list.cds_val[i].rep_value.valid_cap = 1;
        !            80:                ud.arg_list.cds_val[i].rep_value.capability = 1;
        !            81:                ud.arg_list.cds_val[i].rep_value.num_reps = 1;
        !            82:                ud.arg_list.cds_val[i].rep_value.repertoire[0].rep_type = 2;
        !            83:                ud.arg_list.cds_val[i].rep_value.repertoire[0].rep_assign = 
        !            84:                                        "ABC";
        !            85:                ud.arg_list.cds_val[i].rep_value.repertoire[0].valid_font_cap =
        !            86:                                        0;
        !            87:        }
        !            88:        ud.func_units.bitstring = my_fu;
        !            89:        ud.func_units.bitcount = 5;
        !            90: 
        !            91:        build_ASRPDU_ASRpdu(&pe,1,NULL,NULLCP,&ud);
        !            92: 
        !            93:        print_ASRPDU_ASRpdu(pe,1,NULLIP,NULLVP,&ud);
        !            94: 
        !            95:        rcv_asr(pe);
        !            96: 
        !            97:        exit(0);
        !            98: }
        !            99: 
        !           100: #endif
        !           101: 
        !           102: %}
        !           103: 
        !           104: BEGIN
        !           105: 
        !           106: SECTIONS build none none
        !           107: 
        !           108: ASRpdu ::= CHOICE <<1>>
        !           109: 
        !           110: {
        !           111:        asrpdu [1] IMPLICIT ASRcontent [[p (PEPYPARM)parm]]
        !           112: }
        !           113: 
        !           114: ASRcontent 
        !           115: %{
        !           116:        ASR_MSG *arg = (ASR_MSG *)parm;
        !           117: %}
        !           118:        ::= SEQUENCE
        !           119: {
        !           120:        userReason [0] IMPLICIT PrintableString [[s arg->reason.usr_reason]]
        !           121:        OPTIONAL <<(arg->valid_reason && (arg->reason.type == 0))>>,
        !           122: 
        !           123:        provReason [1] IMPLICIT INTEGER [[i arg->reason.provider_reason]]
        !           124:        OPTIONAL <<(arg->valid_reason && (arg->reason.type == 1))>>,
        !           125: 
        !           126:        [2] IMPLICIT INTEGER [[i arg->result]],
        !           127: 
        !           128:        [3] IMPLICIT ImplemIdent [[p (PEPYPARM)&(arg->imp_id)]]
        !           129:        OPTIONAL <<arg->valid_imp>>,
        !           130: 
        !           131:        [4] IMPLICIT BITSTRING
        !           132:        [[x int2strb (arg->version.bitstring, arg->version.bitcount)
        !           133:          $ arg->version.bitcount]],
        !           134: 
        !           135:        [5] IMPLICIT ArgumValueList [[p (PEPYPARM)&(arg->arg_list)]]
        !           136:        OPTIONAL <<arg->valid_arg_list>>,
        !           137: 
        !           138:        [6] IMPLICIT BITSTRING
        !           139:        [[x int2strb (arg->func_units.bitstring, arg->func_units.bitcount)
        !           140:          $ arg->func_units.bitcount]],
        !           141: 
        !           142:        [7] IMPLICIT INTEGER [[i arg->coll_winner]]
        !           143:        OPTIONAL <<arg->valid_coll>>
        !           144: }
        !           145: 
        !           146: ImplemIdent 
        !           147: %{
        !           148:        IMPLEM_ID       *arg = (IMPLEM_ID *)parm;
        !           149: %}
        !           150:        ::= SEQUENCE
        !           151: {
        !           152:        impIdent [0] IMPLICIT OBJECT IDENTIFIER
        !           153:        [[O arg->imp_oid]]
        !           154:        OPTIONAL <<arg->oid_true>>,
        !           155: 
        !           156:        impName [1] IMPLICIT PrintableString
        !           157:        [[s arg->name]]
        !           158:        OPTIONAL <<arg->name_true>>,
        !           159: 
        !           160:        impVersion [2] IMPLICIT PrintableString
        !           161:        [[s arg->version]]
        !           162:        OPTIONAL <<arg->version_true>>
        !           163: }
        !           164: 
        !           165: ArgumValueList 
        !           166: %{
        !           167:        ARG_VAL_LIST    *arg = (ARG_VAL_LIST *)parm;
        !           168: %}
        !           169:        ::= SET OF <<l=0; l<(arg->num_sp_param
        !           170:                        + (arg->num_cds_objects?1:0)); l++>> Goobers [[p parm]]
        !           171: 
        !           172: Goobers 
        !           173: %{
        !           174:        ARG_VAL_LIST    *arg = (ARG_VAL_LIST *)parm;
        !           175: %}
        !           176:        ::= CHOICE <<(l < arg->num_sp_param) ? 1 : 2>>
        !           177: {
        !           178:        [0] IMPLICIT SpecialArgs [[p (PEPYPARM)&(arg->sp_val[l])]],
        !           179:        vteParams [1] IMPLICIT ParamValueList [[p parm]]
        !           180: }
        !           181: 
        !           182: SpecialArgs 
        !           183: %{
        !           184:        SPECIAL_VALUE   *arg = (SPECIAL_VALUE *)parm;
        !           185: %}
        !           186:        ::= SEQUENCE
        !           187: {
        !           188:        identifier INTEGER [[i arg->param_num]],
        !           189:        value CHOICE <<arg->param_type + 1>>
        !           190:        {
        !           191:                BOOLEAN [[b arg->args.bool_arg]],
        !           192:                INTEGER [[i arg->args.int_arg]],
        !           193:                PrintableString[[s arg->args.string_arg]]
        !           194:        }
        !           195: }
        !           196: 
        !           197: ParamValueList 
        !           198: %{
        !           199:        ARG_VAL_LIST    *arg = (ARG_VAL_LIST *)parm;
        !           200: %}
        !           201:        ::= SEQUENCE
        !           202: {
        !           203:        displayObjects  [0] IMPLICIT CDSValues [[p parm]]
        !           204:        OPTIONAL <<arg->num_cds_objects>>,
        !           205: 
        !           206: --     controlObjects  [1] IMPLICIT CSSValues [[p parm]]
        !           207: --     OPTIONAL <<arg->num_css_objects>>,
        !           208: 
        !           209: --     deviceObjects   [2] IMPLICIT DEVValues [[p parm]]
        !           210: --     OPTIONAL <<arg->num_dev_objects>>,
        !           211: 
        !           212:        deliveryControl [3] IMPLICIT INTEGER
        !           213:        [[i arg->del_ctrl]]
        !           214:        OPTIONAL <<arg->del_ctrl>>
        !           215: }
        !           216: 
        !           217: --Note Problem with IMPLICIT SEQUENCE Definition below.  PEPY does not accept
        !           218: --it as defined in 9041 and in fact that definition is ridiculous.  At the
        !           219: --moment it is not clear if even hand coding available in ISODE 3.0 can
        !           220: --produce the requirement of 9041.
        !           221: 
        !           222: CDSValues
        !           223: %{
        !           224:        ARG_VAL_LIST    *arg = (ARG_VAL_LIST *)parm;
        !           225: %}
        !           226:        ::= SET OF <<l=0; l<arg->num_cds_objects; l++>> SEQUENCE
        !           227: {
        !           228:        objectName PrintableString
        !           229:                [[s arg->cds_val[l].obj_name]],
        !           230: 
        !           231:        ObjectOffer [[p (PEPYPARM)&(arg->cds_val[l])]]
        !           232: }
        !           233: 
        !           234: CSSValues ::= NULL --Unused for now--
        !           235: 
        !           236: DEVValues ::= NULL --Unused for now--
        !           237: 
        !           238: ObjectOffer 
        !           239: %{
        !           240:        CDS_VALUE       *arg = (CDS_VALUE *)parm;
        !           241: %}
        !           242:        ::= SEQUENCE
        !           243: {
        !           244:        dimensionValue [0]      IMPLICIT INTEGER
        !           245:        [[i arg->dimensions]]
        !           246:        OPTIONAL <<arg->dimensions>>,
        !           247: 
        !           248:        xParamValue [1]         IMPLICIT DimValue [[p 
        !           249:        (PEPYPARM)&(arg->x_dim)]]
        !           250:        OPTIONAL <<arg->valid_x_dim>>,
        !           251: 
        !           252:        yParamValue [2]         IMPLICIT DimValue [[p (PEPYPARM)&(arg->y_dim)]]
        !           253:        OPTIONAL <<arg->valid_y_dim>>,
        !           254: 
        !           255:        zParamValue [3]         IMPLICIT DimValue [[p (PEPYPARM)&(arg->z_dim)]]
        !           256:        OPTIONAL <<arg->valid_z_dim>>,
        !           257: 
        !           258: --     erasurevalue [4]        IMPLICIT BOOLEAN
        !           259: --     [[b arg->erasure]]
        !           260: --     OPTIONAL <<arg->valid_erasure>>,
        !           261: 
        !           262:        repValueList [5]        IMPLICIT CompRepValue [[p (PEPYPARM)&(arg->rep_value)]]
        !           263:        OPTIONAL <<arg->valid_rep_list>>,
        !           264: 
        !           265: --     empValueList [6]        IMPLICIT CompEmpValue [[p (PEPYPARM)&(arg->emp_value)]]
        !           266: --     OPTIONAL <<arg->valid_emp_list>>,
        !           267: 
        !           268: --     foreColorVal [7]        IMPLICIT ColorValue [[p (PEPYPARM)&(arg->fore_color_list)]]
        !           269: --     OPTIONAL <<arg->valid_fore_color>>,
        !           270: 
        !           271: --     backColorVal [8]        IMPLICIT ColorValue [[p (PEPYPARM)&(arg->back_color_list)]]
        !           272: --     OPTIONAL <<arg->valid_back_color>>,
        !           273: 
        !           274:        objectAccRight [9]      IMPLICIT INTEGER
        !           275:        [[i arg->access_right]]
        !           276:        OPTIONAL <<arg->valid_access_right>>
        !           277: }
        !           278: 
        !           279: DimValue 
        !           280: %{
        !           281:        DIMEN_VALUE     *arg = (DIMEN_VALUE *)parm;
        !           282: %}
        !           283:        ::= SEQUENCE
        !           284: {
        !           285:        bound           [0] CHOICE
        !           286:        <<arg->bound_type>>
        !           287:        {
        !           288:                unbounded NULL,
        !           289: 
        !           290:                limit INTEGER
        !           291:                [[i arg->bound]]
        !           292:        }
        !           293:        OPTIONAL <<arg->bound_type>>,
        !           294: 
        !           295:        addressing      [1] IMPLICIT INTEGER
        !           296:        [[i arg->addressing]]
        !           297:        OPTIONAL <<arg->valid_addr>>,
        !           298: 
        !           299:        absolute        [2] IMPLICIT INTEGER
        !           300:        [[i arg->absolute]]
        !           301:        OPTIONAL <<arg->valid_abs>>,
        !           302: 
        !           303:        window          [3] CHOICE
        !           304:        <<arg->window_type>>
        !           305:        {
        !           306:                unbounded NULL,
        !           307: 
        !           308:                limit INTEGER
        !           309:                [[i arg->window]]
        !           310:        }
        !           311:        OPTIONAL <<arg->window_type>>
        !           312: }
        !           313: 
        !           314: CompRepValue 
        !           315: %{
        !           316:        REP_VALUE       *arg = (REP_VALUE *)parm;
        !           317: %}
        !           318:        ::= SEQUENCE
        !           319: {
        !           320:        repCapability   [0] IMPLICIT INTEGER
        !           321:        [[i arg->capability]]
        !           322:        OPTIONAL <<arg->valid_cap>>,
        !           323: 
        !           324:        [1] IMPLICIT SEQUENCE OF <<m=0; m<arg->num_reps; m++>>
        !           325:                RepFontValue [[p (PEPYPARM)&(arg->repertoire[m])]]
        !           326:                OPTIONAL <<arg->num_reps>>
        !           327: }
        !           328: 
        !           329: RepFontValue 
        !           330: %{ 
        !           331:        int i; 
        !           332:        FONT_VALUE      *arg = (FONT_VALUE *)parm;
        !           333: %} ::= 
        !           334: CHOICE <<arg->rep_type>>
        !           335: {
        !           336:        NULL,
        !           337: 
        !           338:        SEQUENCE
        !           339:        {
        !           340:                repertoire      [0] IMPLICIT PrintableString
        !           341:                [[s arg->rep_assign]]
        !           342:                OPTIONAL <<arg->rep_assign>>,
        !           343: 
        !           344:                fontCapability  [1] IMPLICIT INTEGER
        !           345:                [[i arg->capability]]
        !           346:                OPTIONAL <<arg->valid_font_cap>>,
        !           347: 
        !           348:                                [2] IMPLICIT SEQUENCE OF
        !           349:                                <<i=0; i<arg->num_fonts; i++>>
        !           350:                                PrintableString
        !           351:                                [[s arg->font_names[i] ]]
        !           352:                                OPTIONAL <<arg->num_fonts>>
        !           353:        }
        !           354: }
        !           355: 
        !           356: --CompEmpValue 
        !           357: --%{
        !           358: --     int i;
        !           359: --     EMP_VALUE       *arg = (EMP_VALUE *)parm;
        !           360: --%} ::= SEQUENCE
        !           361: --{
        !           362: --     empCap          [0] IMPLICIT INTEGER
        !           363: --                     [[i arg->capability]]
        !           364: --                     OPTIONAL <<arg->valid_cap>>,
        !           365: 
        !           366: --                     SEQUENCE OF <<i=0; i<arg->num_emps; i++>>
        !           367: --                             PrintableString
        !           368: --                             [[s arg->emp_string[i] ]]
        !           369: --                             OPTIONAL <<arg->num_emps>>
        !           370: --}
        !           371: 
        !           372: --ColorValue 
        !           373: --%{
        !           374: --     int i;
        !           375: --     COLOR_VALUE     *arg = (COLOR_VALUE *)parm;
        !           376: --%} ::= SEQUENCE
        !           377: --{
        !           378: --     colorCap        [0] IMPLICIT INTEGER
        !           379: --                     [[i arg->capability]]
        !           380: --                     OPTIONAL <<arg->valid_cap>>,
        !           381: 
        !           382: --     colorNames      SEQUENCE OF <<i=0; i<arg->num_colors; i++>>
        !           383: --                             PrintableString
        !           384: --                             [[s arg->color_string[i] ]]
        !           385: --                             OPTIONAL <<arg->num_colors>>
        !           386: --}
        !           387: 
        !           388: END
        !           389: 
        !           390: %{
        !           391: 
        !           392: #ifdef PEPYTEST
        !           393: 
        !           394: void advise(what,fmt,a,b,c,d,e,f,g,h,i,j)
        !           395: char *what, *fmt, *a, *b, *c, *d, *e, *f, *g, *h, *i, *j;
        !           396: {
        !           397: 
        !           398:        (void) fflush(stdout);
        !           399: 
        !           400:        fprintf(stderr,"%s:  ",myname);
        !           401:        fprintf(stderr,fmt,a,b,c,d,e,f,g,h,i,j);
        !           402:        if(what)
        !           403:                (void) fputc(' ',stderr),perror(what);
        !           404:        else
        !           405:                (void) fputc('\n',stderr);
        !           406:        (void)fflush(stderr);
        !           407: }
        !           408: 
        !           409: testdebug(pe,words)
        !           410: PE pe;                 /*Not Really, but pretend*/
        !           411: char *words;
        !           412: {
        !           413: 
        !           414:        printf("%s \n",words);
        !           415: }
        !           416: 
        !           417: #endif
        !           418: 
        !           419: %}

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.