Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

iedupcb.h

&pagelevel(4)&pagelevel

Definitionen und Makros für den Unterprogramm-Kontrollblock EDTUPCB:

/*
*********************************************************************
** common typedefs
*********************************************************************
*/
#ifndef IEDT_TYPES
typedef unsigned char iedbyte;
typedef unsigned short iedshort;
typedef unsigned long iedlong;
typedef unsigned short iedutf16;
#define IEDT_TYPES
#endif
/*
*********************************************************************
** IEDUPCB parameter block V16
*********************************************************************
*/
typedef struct IEDUPCB_v16_mdl {
    /* interface identifier structure */
#pragma aligned 4
    iedshort unit;        /* function unit number : 66 */
    iedbyte function;     /* function number      : 0  */
    iedbyte version;      /* interface version    : 2  */
    /* returncode unused, will be returned in control block IEDGLCB */
    iedlong rc_nbr;
    /* inhibit flag byte */
    union {
        struct {
            iedbyte not_used_1:1;        /* reserved */
            iedbyte no_text_at_exit:1;   /* @HALT/@RET <text> */
            iedbyte no_edit_only:1;      /* @EDIT ONLY */
            iedbyte no_edit:1;           /* @EDIT */
            iedbyte no_user_prog:1;      /* @RUN, @USE */
            iedbyte no_bkpt:1;           /* @SYSTEM */
            iedbyte no_cmd:1;            /* @SYSTEM <string> */
            iedbyte no_exec:1;           /* @EXEC/@LOAD */
        } bit;
        iedbyte byte;
    } inhibit;
    /* reserve */
    iedbyte reserve[3];
} iedupcb_v16;
/*
*********************************************************************
** IEDUPCB parameter block V17
*********************************************************************
*/
typedef struct IEDUPCB_v17_mdl {
    /* interface identifier structure */
#pragma aligned 4
    iedshort unit;        /* function unit number : 66 */
    iedbyte function;     /* function number      : 0  */
    iedbyte version;      /* interface version    : 3  */
    /* returncode unused, will be returned in control block IEDGLCB */
    iedlong rc_nbr;
    /* inhibit flag byte */
    union {
        struct {
            iedbyte no_mode:1;             /* @MODE */
            iedbyte no_text_at_exit:1;     /* @HALT/@RET <text> */
            iedbyte no_edit_only:1;        /* @EDIT ONLY */
            iedbyte no_edit:1;             /* @EDIT */
            iedbyte no_user_prog:1;        /* @RUN, @USE */
            iedbyte no_bkpt:1;             /* @SYSTEM */
            iedbyte no_cmd:1;              /* @SYSTEM <string> */
            iedbyte no_exec:1;             /* @EXEC/@LOAD */
        } bit;
        iedbyte byte;
    } inhibit;
    /* reserve */
    iedbyte reserve[3];
} iedupcb_v17;
/*
*********************************************************************
** IEDUPCB parameter block default
*********************************************************************
*/
#ifdef EDT_V17
typedef iedupcb_v17 iedupcb;
#define IEDUPCB_mdl IEDUPCB_v17_mdl
#else
typedef iedupcb_v16 iedupcb;
#define IEDUPCB_mdl IEDUPCB_v16_mdl
#endif
/*
*********************************************************************
** macros for initialization, access, and modification
*********************************************************************
*/
#define IEDUPCB_UNIT_66   66
#define IEDUPCB_FUNCT_0   0
#define IEDUPCB_VERS_2    2
#define IEDUPCB_VERS_3    3
#define IEDUPCB_INIT_V16 { 66,0,2 }
#define IEDUPCB_INIT_V17 { 66,0,3 }
#ifdef EDT_V17
#define IEDUPCB_INIT       IEDUPCB_INIT_V17
#define IEDUPCB_VERS_STD   IEDUPCB_VERS_3
#else
#define IEDUPCB_INIT       IEDUPCB_INIT_V16
#define IEDUPCB_VERS_STD   IEDUPCB_VERS_2
#endif
#define IEDUPCB_MOD_VERS(p,v)   (p).version = v
#define IEDUPCB_MOD_IFID(p,u,f,v) \
    (p).unit  = u, (p).function = f, (p).version  = v
#define IEDUPCB_SET_NO_INHIBIT(p)   (p).inhibit.byte = 0