Loading...
Select Version
&pagelevel(4)&pagelevel
Definitions and macros for the subroutine control block 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