Annotation of 43BSDReno/contrib/isode-beta/vt/sector1.h, revision 1.1.1.1

1.1       root        1: /* sector1.h - VTPM: sector 1 definitions */
                      2: 
                      3: /* 
                      4:  * $Header: /f/osi/vt/RCS/sector1.h,v 7.0 89/11/23 22:31:39 mrose Rel $
                      5:  *
                      6:  *
                      7:  * $Log:       sector1.h,v $
                      8:  * Revision 7.0  89/11/23  22:31:39  mrose
                      9:  * Release 6.0
                     10:  * 
                     11:  */
                     12: 
                     13: /*
                     14:  *                               NOTICE
                     15:  *
                     16:  *    Acquisition, use, and distribution of this module and related
                     17:  *    materials are subject to the restrictions of a license agreement.
                     18:  *    Consult the Preface in the User's Manual for the full terms of
                     19:  *    this agreement.
                     20:  *
                     21:  */
                     22: 
                     23: 
                     24: #define MAXSPARGS      2       /*Max Special Profile Arguments (2 for TLENET)*/
                     25: #define MAXCDSOBJ      2       /*Max Display Objects (2 for TRANSPARENT)*/
                     26: #define MAXCSSOBJ      1       /*Max Control Objects to negotiate*/
                     27: #define MAXDEVOBJ      1       /*Max Device Objects*/
                     28: #define MAXFONTS       1
                     29: #define MAXREPS                1       /*Maximum Repertoires*/
                     30: #define MAXEMPS                1       /*Max Background Emphasis*/
                     31: #define MAXCOLORS      1       /*Aw C'mon*/
                     32: 
                     33: 
                     34: /* ASQ PDU Fields*/
                     35: #define ASQ_basic      0
                     36: #define ASQ_Imp_Ident  1
                     37: #define ASQ_Func_Units 2
                     38: #define ASQ_Profile    3
                     39: #define ASQ_P_Version  4
                     40: #define ASQ_Coll_Win   5
                     41: 
                     42: /* ASR PDU Fields */
                     43: #define ASR_Fail_String        0
                     44: #define ASR_Fail_Reason        1
                     45: #define ASR_Result     2
                     46: #define ASR_Imp_Ident  3
                     47: #define ASR_P_Version  4
                     48: #define ASR_Arg_List   5
                     49: #define ASR_Func_Units 6
                     50: #define ASR_Coll_Win   7
                     51: 
                     52: /* Functional Units Bit Map*/
                     53: #define        profileSwitch   0x01
                     54: #define profileMIN     0x02
                     55: #define negRelease     0x04
                     56: #define urgData                0x08
                     57: #define destBreak      0x10
                     58: 
                     59: /* NDQ ASN.1 Types */
                     60: #define ECHO_ON                0
                     61: #define ECHO_OFF       1
                     62: #define DISPLAY_OBJ    0
                     63: #define CTRL_OBJ       1
                     64: #define DO_NEXT_X      0
                     65: #define DO_NEXT_Y      1
                     66: #define DO_PTR_REL     2
                     67: #define DO_PTR_ABS     3
                     68: #define DO_TEXT                4
                     69: #define DO_RPT_TEXT    5
                     70: #define DO_ATTR                6
                     71: #define DO_ERASE       7
                     72: #define DO_PREV_X      8
                     73: #define DO_PREV_Y      9
                     74: 
                     75: /*DI/KB Control Objects*/
                     76: #define KB_SIZE                5       /* network bit ordering */
                     77: #define IP_OBJ         0x80
                     78: #define AO_OBJ         0x40
                     79: #define AYT_OBJ                0x20
                     80: #define DM_OBJ         0x10
                     81: #define BRK_OBJ                0x08
                     82: 
                     83: /*NI/NA Control Objects*/
                     84: #define NA_SIZE                4       /* network bit ordering */
                     85: #define ECHO_OBJ       0x80    /*0 is Local; 1 is Remote*/
                     86: #define SUP_GA         0x40    /*0 is Use Go Ahead; 1 is Suppress Go Ahead*/
                     87: #define DISP_BIN       0x20    /*1 = WACA is Binary; 0 = WACA is ASCII*/
                     88: #define KBD_BIN                0x10    /*1 = WACI is Binary; 0 = WACI is ASCII*/
                     89: 
                     90: /*Go Ahead Control Object*/
                     91: #define        GA_SIZE         1       /* network bit ordering */
                     92: #define GO_AHEAD       0x80
                     93: 
                     94: /*Synch Control Object*/
                     95: #define        SYNC_SIZE       1       /* network bit ordering */
                     96: #define SYNC           0x80
                     97: 
                     98: /*Default Profile Control Object*/
                     99: #define        DEF_SIZE        1       /* network bit ordering */
                    100: #define DEF_ECHO       0x80    /*True for local echo*/
                    101: 
                    102: #define FULL_ASCII     "ASCII" /*TEMP repertoire ID*/
                    103: #define ASCII_GO       "GO"
                    104: #define TRANSPARENT    "TRANS"
                    105: 
                    106: typedef struct trans_args      /*Arguments for transparent profile*/
                    107: {
                    108:        int num_reps;
                    109:        char *rep_ptr[MAXREPS];
                    110:        char *cur_rep;          /*Currently active repertoire*/
                    111: } TRANS_ARGS;
                    112: 
                    113: typedef struct telnet_args     /*Arguments for telnet profile*/
                    114: {
                    115:        int x_window;
                    116:        char full_ascii;        /*If 1, Full ASCII.  If 0, graphics only*/
                    117: } TELNET_ARGS;
                    118: 
                    119: typedef struct vt_profile      /*Structure for profile parameters*/
                    120: {
                    121:        char *profile_name;
                    122:        union
                    123:        {
                    124:                TRANS_ARGS      tr_arg_list;
                    125:                TELNET_ARGS     tel_arg_list;
                    126:        } arg_val;
                    127: } VT_PROFILE;
                    128: 
                    129: /* Data Structures for PDU's */
                    130: 
                    131: typedef struct ex_pointer      /*Explicit Pointer*/
                    132: {
                    133:        int x_true;
                    134:        int x_value;
                    135:        int y_true;
                    136:        int y_value;
                    137:        int z_true;
                    138:        int z_value;
                    139: } EX_POINTER;
                    140: 
                    141: typedef struct pointer /*General Pointer*/
                    142: {
                    143:        int ptr_type;   /*Values 0 - 6 */
                    144:        EX_POINTER e_ptr;
                    145: } POINTER;
                    146: 
                    147: typedef struct rpt_text                /*Repeat text*/
                    148: {
                    149:        POINTER fin_addr;
                    150:        int text_count;
                    151:        char *text;
                    152: } RPT_TEXT;
                    153: 
                    154: typedef struct erase_text      /*Erase*/
                    155: {
                    156:        POINTER start_erase;
                    157:        POINTER end_erase;
                    158:        int erase_attr;         /*Boolean*/
                    159: } ERASE_TEXT;
                    160: 
                    161: typedef struct text
                    162: {
                    163:        int text_count;
                    164:        char *text_ptr;
                    165: } TEXT_CONTENT;
                    166: 
                    167: typedef struct attrib
                    168: {
                    169:        int attr_id;            /* 0 - 4*/
                    170:        int attr_val;
                    171:        int attr_ext;
                    172:        POINTER beg_p;
                    173:        POINTER end_p;
                    174: } ATTRIB;
                    175: 
                    176: typedef struct bool_u
                    177: {
                    178:        int val_count;
                    179:        char *value;
                    180:        int mask_count;
                    181:        char *mask;
                    182: } BOOL_U;
                    183: 
                    184: typedef struct bit_str
                    185: {
                    186:        int bitcount;
                    187:        int bitstring;
                    188: } BIT_STR;
                    189: 
                    190: typedef struct do_update       /*Display Object Update*/
                    191: {
                    192:        char *do_name;
                    193:        int do_type;            /* 0 - 9 */
                    194:        union
                    195:        {
                    196:                EX_POINTER ptr_rel;
                    197:                POINTER ptr_abs;
                    198:                TEXT_CONTENT text_ud;
                    199:                RPT_TEXT rpt_seq;
                    200:                ATTRIB wrt_attrib;
                    201:                ERASE_TEXT erase;
                    202:        } do_cmd;
                    203: } DO_UPDATE;
                    204: 
                    205: typedef struct co_update       /*Control Object Update*/
                    206: {
                    207:        char *co_name;
                    208:        int co_type;            /* 0 - 4 */
                    209:        union
                    210:        {
                    211:                char *char_update;
                    212:                BOOL_U bool_update;
                    213:                int sym_update;
                    214:                int int_update;
                    215:                BIT_STR bit_update;
                    216:        } co_cmd;
                    217: } CO_UPDATE;
                    218: 
                    219: typedef struct text_update
                    220: {
                    221:        struct text_update *ndq_elem;   /*Pointer to next one in queue*/
                    222:        int echo_sw;            /*0 = Echo Now; 1 = Not Echo Now*/
                    223:        int type_sw;            /*0 = display; 1 = control*/
                    224:        union
                    225:        {
                    226:                DO_UPDATE do_list;
                    227:                CO_UPDATE co_list;
                    228:        } updates;
                    229: } TEXT_UPDATE;
                    230: 
                    231: typedef struct implem_id
                    232: {
                    233:        int oid_true;
                    234:        OID imp_oid;            /*Optional*/
                    235:        int name_true;
                    236:        char *name;             /*Optional*/
                    237:        int version_true;
                    238:        char *version;          /*Optional*/
                    239: } IMPLEM_ID;
                    240: 
                    241: typedef struct int_offer
                    242: {
                    243:        int type;               /*0 for single value, 1 for range*/
                    244:        int value;
                    245:        int min_val;
                    246:        int max_val;
                    247: } INT_OFFER;
                    248: 
                    249: typedef struct rep_font                /*Repertoire Font Offer*/
                    250: {
                    251:        int rep_type;           /*1 = NULL; 2 = SEQUENCE....*/
                    252:        char *rep_assign;       /*0 value for pointer means not used*/
                    253:        int valid_font_cap;
                    254:        INT_OFFER capability;
                    255:        int num_fonts;
                    256:        char *font_names[MAXFONTS];
                    257: } REP_FONT;
                    258: 
                    259: typedef struct dimen_param
                    260: {
                    261:        int bound_type;         /*0 for no bound, 1 for unbounded, 2 for
                    262:                                  INT_OFFER */
                    263:        INT_OFFER bound;
                    264:        BIT_STR addressing;     /*NOT optional according to 9041*/
                    265:        BIT_STR absolute;       /*Optional*/
                    266:        int window_type;        /*0 for not used, 1 for unbounded, 2 for
                    267:                                  INT_OFFER */
                    268:        INT_OFFER window;
                    269: } DIMEN_PARAM;
                    270: 
                    271: typedef struct rep_list                /*Repertoire list*/
                    272: {
                    273:        int valid_cap;
                    274:        INT_OFFER capability;   /*Listed as optional but seems you should
                    275:                                  have it. */
                    276:        int num_reps;           /*Number of repertoires -- seems it should
                    277:                                  usually equal capability. */
                    278:        REP_FONT repertoire[MAXREPS];
                    279: } REP_LIST;
                    280: 
                    281: typedef struct emp_list
                    282: {
                    283:        int valid_cap;
                    284:        INT_OFFER capability;   /*Technically Optional*/
                    285:        int num_emps;
                    286:        char *emp_string[MAXEMPS];
                    287: } EMP_LIST;
                    288: 
                    289: typedef struct color_list
                    290: {
                    291:        int valid_cap;
                    292:        INT_OFFER capability;
                    293:        int num_colors;
                    294:        char *color_string[MAXCOLORS];
                    295: } COLOR_LIST;
                    296: 
                    297: typedef struct cds_offer
                    298: {
                    299:        char *obj_name;
                    300:        BIT_STR dimensions;
                    301:        int valid_x_dim;
                    302:        DIMEN_PARAM x_dim;
                    303:        int valid_y_dim;
                    304:        DIMEN_PARAM y_dim;
                    305:        int valid_z_dim;
                    306:        DIMEN_PARAM z_dim;
                    307:        BIT_STR erasure;
                    308:        int valid_rep_list;
                    309:        REP_LIST rep_offer;
                    310:        int valid_emp_list;
                    311:        EMP_LIST emp_offer;
                    312:        int valid_fore_color;
                    313:        COLOR_LIST fore_color_list;
                    314:        int valid_back_color;
                    315:        COLOR_LIST back_color_list;
                    316:        BIT_STR access_right;
                    317: } CDS_OFFER;
                    318: 
                    319: typedef struct css_offer       /*Unused in TELNET (and hopefully Forms)*/
                    320: {
                    321:        int i;                  /*For compiler*/
                    322: } CSS_OFFER;
                    323: 
                    324: typedef struct dev_offer       /*Also unused*/
                    325: {
                    326:        int i;                  /*For compiler*/
                    327: } DEV_OFFER;
                    328: 
                    329: typedef struct special_offer
                    330: {
                    331:        int param_num;
                    332:        int param_type;         /*0,1,or2*/
                    333:        union
                    334:        {
                    335:                char *bool_arg; /*Turns into bitstring = 0 or 1*/
                    336:                INT_OFFER int_arg;
                    337:                char *string_arg;
                    338:        } args;
                    339: } SPECIAL_OFFER;
                    340: 
                    341: typedef struct arg_offer_list
                    342: {
                    343:        int oid_true;   /*Optional--Use Default Profile if not specified*/
                    344:        OID prof_oid;
                    345:        int num_sp_param;       /*Number of special profile arguments*/
                    346:        int num_cds_objects;    /*Number of Conceptual Data Store objects*/
                    347:        int num_css_objects;    /*Number of Control Signal Status objects*/
                    348:        int num_dev_objects;    /*Number of Device Object identifiers*/
                    349:        SPECIAL_OFFER sp_offer_list[MAXSPARGS];
                    350:        CDS_OFFER cds_offer_list[MAXCDSOBJ];
                    351:        CSS_OFFER css_offer_list[MAXCSSOBJ];
                    352:        DEV_OFFER dev_offer_list[MAXDEVOBJ];
                    353:        BIT_STR del_ctrl;       /*Delivery Control*/
                    354: } ARG_OFFER_LIST;
                    355: 
                    356: typedef struct asq_msg
                    357: {
                    358:        int class;              /*Basic only (=1)*/
                    359:        int valid_imp;
                    360:        IMPLEM_ID imp_id;       /*Optional*/
                    361:        BIT_STR func_units;
                    362:        int valid_prof;
                    363:        ARG_OFFER_LIST asq_profile;     /*Profile is optional*/
                    364:        BIT_STR version;        /*Default = '1'B*/
                    365:        int valid_coll;
                    366:        int coll_winner;        /*Optional*/
                    367: } ASQ_MSG;
                    368: 
                    369: typedef struct fail_reason
                    370: {
                    371:        int type;               /*0 or 1*/
                    372:        char *usr_reason;
                    373:        int provider_reason;    /* 1,2,3,or 4*/
                    374: } FAIL_REASON;
                    375: 
                    376: 
                    377: typedef struct font_value              /*Repertoire Font Value*/
                    378: {
                    379:        int rep_type;           /*1 = NULL; 2 = SEQUENCE....*/
                    380:        char *rep_assign;       /*0 value for pointer means not used*/
                    381:        int valid_font_cap;
                    382:        int capability;
                    383:        int num_fonts;
                    384:        char *font_names[MAXFONTS];
                    385: } FONT_VALUE;
                    386: 
                    387: typedef struct dimen_value
                    388: {
                    389:        int bound_type;         /*0 for no bound, 1 for unbounded, 2 for
                    390:                                  integer */
                    391:        int bound;
                    392:        int valid_addr;
                    393:        int addressing; /*NOT optional according to 9041*/
                    394:        int valid_abs;
                    395:        int absolute;   /*Optional*/
                    396:        int window_type;        /*0 for not used, 1 for unbounded, 2 for
                    397:                                  integer */
                    398:        int window;
                    399: } DIMEN_VALUE;
                    400: 
                    401: typedef struct rep_val_list            /*Repertoire value list*/
                    402: {
                    403:        int valid_cap;
                    404:        int capability;
                    405:        int num_reps;           /*Number of repertoires */
                    406:        FONT_VALUE repertoire[MAXREPS];
                    407: } REP_VALUE;
                    408: 
                    409: typedef struct emp_value
                    410: {
                    411:        int valid_cap;
                    412:        int capability;
                    413:        int num_emps;
                    414:        char *emp_string[MAXEMPS];
                    415: } EMP_VALUE;
                    416: 
                    417: typedef struct color_value
                    418: {
                    419:        int valid_cap;
                    420:        int capability;
                    421:        int num_colors;
                    422:        char *color_string[MAXCOLORS];
                    423: } COLOR_VALUE;
                    424: 
                    425: typedef struct cds_value
                    426: {
                    427:        char *obj_name;
                    428:        int dimensions;         /*0 if not valid*/
                    429:        int valid_x_dim;
                    430:        DIMEN_VALUE x_dim;
                    431:        int valid_y_dim;
                    432:        DIMEN_VALUE y_dim;
                    433:        int valid_z_dim;
                    434:        DIMEN_VALUE z_dim;
                    435:        int valid_erasure;
                    436:        int erasure;
                    437:        int valid_rep_list;
                    438:        REP_VALUE rep_value;
                    439:        int valid_emp_list;
                    440:        EMP_VALUE emp_value;
                    441:        int valid_fore_color;
                    442:        COLOR_VALUE fore_color_list;
                    443:        int valid_back_color;
                    444:        COLOR_VALUE back_color_list;
                    445:        int valid_access_right;
                    446:        int access_right;
                    447: } CDS_VALUE;
                    448: 
                    449: typedef struct css_value       /*Unused in TELNET */
                    450: {
                    451:        int i;                  /*For compiler*/
                    452: } CSS_VALUE;
                    453: 
                    454: typedef struct dev_value       /*Also unused*/
                    455: {
                    456:        int i;                  /*For compiler*/
                    457: } DEV_VALUE;
                    458: 
                    459: typedef struct special_value
                    460: {
                    461:        int param_num;
                    462:        int param_type;         /*0,1,or2*/
                    463:        union
                    464:        {
                    465:                int bool_arg;   /*Turns into bitstring = 0 or 1*/
                    466:                int int_arg;
                    467:                char *string_arg;
                    468:        } args;
                    469: } SPECIAL_VALUE;
                    470: 
                    471: typedef struct arg_val_list
                    472: {
                    473:        int num_sp_param;       /*Number of special profile arguments*/
                    474:        int num_cds_objects;    /*Number of Conceptual Data Store objects*/
                    475:        int num_css_objects;    /*Number of Control Signal Status objects*/
                    476:        int num_dev_objects;    /*Number of Device Object identifiers*/
                    477:        SPECIAL_VALUE sp_val[MAXSPARGS];
                    478:        CDS_VALUE cds_val[MAXCDSOBJ];
                    479:        CSS_VALUE css_val[MAXCSSOBJ];
                    480:        DEV_VALUE dev_val[MAXDEVOBJ];
                    481:        int del_ctrl;   /*Delivery Control*/
                    482: } ARG_VAL_LIST;
                    483: 
                    484: typedef struct asr_msg
                    485: {
                    486:        int valid_reason;       /*1 if reason is supplied*/
                    487:        FAIL_REASON reason;     /*Optional*/
                    488:        int result;             /*0,1, or 2*/
                    489:        int valid_imp;          /*1 if implementation i.d is supplied*/
                    490:        IMPLEM_ID imp_id;       /*Optional*/
                    491:        BIT_STR version;        /*Only '1'B now valid*/
                    492:        int valid_arg_list;
                    493:        ARG_VAL_LIST arg_list;
                    494:        BIT_STR func_units;
                    495:        int valid_coll;         /*Is collision_winner valid?*/
                    496:        int coll_winner;        /*Optional (0,1,2)*/
                    497: } ASR_MSG;     
                    498:        
                    499: 

unix.superglobalmegacorp.com

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