Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

iedamcb.h

&pagelevel(4)&pagelevel

Definitionen und Makros für den Satzzugriffs-Kontrollblock EDTAMCB:

/*
*********************************************************************
** 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
/*
*********************************************************************
** IEDAMCB parameter block V16
*********************************************************************
*/
typedef struct IEDAMCB_v16_mdl {
    /* interface identifier structure */
#pragma aligned 4
    iedshort unit;        /* function unit number : 66 */
    iedbyte function;     /* function number      : 0  */
    iedbyte version;      /* interface version    : 1  */
    /* returncode unused, will be returned in control block IEDGLCB */
    iedlong rc_nbr;
    /* transfer mode flag byte */
    union {
        struct {
            iedbyte not_used_1:5;        /* not used */
            iedbyte locate:1;            /* locate mode */
            iedbyte not_used_2:2;        /* not used */
        } mode_bits;
        iedbyte mode_byte;               /* mode byte */
    } mode_flag;
/* flag byte */
union {
    struct {
        iedbyte not_used:6;          /* not used */
        iedbyte inh_set_modify:1;    /* inhibit setting modify flag */
        iedbyte ign_mark13:1;        /* ignore mark 13 */
    } flag_bits;
    iedbyte flag_byte;
} flag;
/* reserve */
iedbyte reserve2[2];
/* input parameters */
iedbyte filename[8];         /* workfile */
long displacement;           /* displacement */
iedshort length_key1;        /* length of key1 */
iedshort length_key2;        /* length of key2 */
/* input parameters (only in move mode) */
iedshort length_key_outbuffer;   /* length of key output buffer */
iedshort length_rec_outbuffer;   /* length of rec output buffer */
/* input/output parameters */
iedshort length_key;             /* length of key */
iedshort length_rec;             /* length of record */
/* marks */
union {
    iedshort mark_field;
    struct {
        union {
            iedbyte mark2;               /* upper marks */
            struct {
                iedbyte mark_15:1;       /* mark 15 */
                iedbyte mark_14:1;       /* mark 14 */
                iedbyte mark_13:1;       /* mark 13 */
                iedbyte nouse_1:1;       /* not used */
                iedbyte nouse_2:1;       /* not used */
                iedbyte nouse_3:1;       /* not used */
                iedbyte mark_9:1;        /* mark 9 */
                iedbyte mark_8:1;        /* mark 8 */
            } mark2_bits;
        } upper_marks;
        union {
            iedbyte mark1;               /* lower marks */
            struct {
                iedbyte mark_7:1;        /* mark 7 */
                    iedbyte mark_6:1;        /* mark 6 */
                    iedbyte mark_5:1;        /* mark 5 */
                    iedbyte mark_4:1;        /* mark 4 */
                    iedbyte mark_3:1;        /* mark 3 */
                    iedbyte mark_2:1;        /* mark 2 */
                    iedbyte mark_1:1;        /* mark 1 */
                    iedbyte nouse_4:1;       /* not used */
                } mark1_bits;
            } lower_marks;
        } mark_bytes;
    } marks;
    /* reserve */
    iedbyte reserve[2];
} iedamcb_v16;
/*
*********************************************************************
** IEDAMCB parameter block V17
*********************************************************************
*/
typedef struct IEDAMCB_v17_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;
    /* not used */
    iedbyte reserve1;
    /* flag byte */
    union {
        struct {
            iedbyte not_used:6;        /* not used */
            iedbyte inh_set_modify:1;  /* inhibit setting modify flag */
            iedbyte ign_mark13:1;      /* ignore mark 13 */
        } flag_bits;
        iedbyte flag_byte;
    } flag;
/* reserve */
iedbyte reserve2[2];
/* input parameters */
iedbyte filename[8];         /* workfile */
long displacement;           /* displacement */
iedshort length_key1;        /* length of key1 */
iedshort length_key2;        /* length of key2 */
/* input parameters */
iedshort length_key_outbuffer;  /* length of key output buffer */
iedshort length_rec_outbuffer;  /* length of rec output buffer */
/* input/output parameters */
iedshort length_key;         /* length of key */
iedshort length_rec;         /* length of record */
/* marks */
union {
    iedshort mark_field;
    struct {
        union {
            iedbyte mark2;               /* upper marks */
            struct {
                iedbyte mark_15:1;       /* mark 15 */
                iedbyte mark_14:1;       /* mark 14 */
                iedbyte mark_13:1;       /* mark 13 */
                iedbyte nouse_1:1;       /* not used */
                iedbyte nouse_2:1;       /* not used */
                iedbyte nouse_3:1;       /* not used */
                iedbyte mark_9:1;        /* mark 9 */
                iedbyte mark_8:1;        /* mark 8 */
            } mark2_bits;
        } upper_marks;
        union {
            iedbyte mark1;               /* lower marks */
            struct {
                iedbyte mark_7:1;        /* mark 7 */
                iedbyte mark_6:1;        /* mark 6 */
                iedbyte mark_5:1;        /* mark 5 */
                iedbyte mark_4:1;        /* mark 4 */
                iedbyte mark_3:1;        /* mark 3 */
                iedbyte mark_2:1;        /* mark 2 */
                iedbyte mark_1:1;        /* mark 1 */
                iedbyte nouse_4:1;       /* not used */
            } mark1_bits;
        } lower_marks;
    } mark_bytes;
    } marks;
    /* reserve */
    iedbyte reserve[2];
} iedamcb_v17;
/*
*********************************************************************
** IEDAMCB parameter block default
*********************************************************************
*/
#ifdef EDT_V17
typedef iedamcb_v17 iedamcb;
#define IEDAMCB_mdl IEDAMCB_v17_mdl
#else
typedef iedamcb_v16 iedamcb;
#define IEDAMCB_mdl IEDAMCB_v16_mdl
#endif
/*
*********************************************************************
** macros for initialization, access, and modification
*********************************************************************
*/
#define IEDAMCB_UNIT_66   66
#define IEDAMCB_FUNCT_0   0
#define IEDAMCB_VERS_1    1
#define IEDAMCB_VERS_2    2
#define IEDAMCB_INIT_V16 { 66,0,1,0,{0},{0},{0},"        ",0,8,8,8,0,8, }
#define IEDAMCB_INIT_V17 { 66,0,2,0,0,{0},{0},"        ",0,8,8,8,0,8, }
#ifdef EDT_V17
#define IEDAMCB_INIT       IEDAMCB_INIT_V17
#define IEDAMCB_VERS_STD   IEDAMCB_VERS_2
#else
#define IEDAMCB_INIT       IEDAMCB_INIT_V16
#define IEDAMCB_VERS_STD   IEDAMCB_VERS_1
#endif
#define IEDAMCB_MOD_VERS(p,v)   (p).version = v
#define IEDAMCB_MOD_IFID(p,u,f,v) \
    (p).unit  = u, (p).function = f, (p).version  = v
#define IEDAMCB_SET_NO_MARKS(p)   (p).marks.mark_field = 0
#define MARK_1(p)   (p).marks.mark_bytes.lower_marks.mark1_bits.mark_1
#define MARK_2(p)   (p).marks.mark_bytes.lower_marks.mark1_bits.mark_2
#define MARK_3(p)   (p).marks.mark_bytes.lower_marks.mark1_bits.mark_3
#define MARK_4(p)   (p).marks.mark_bytes.lower_marks.mark1_bits.mark_4
#define MARK_5(p)   (p).marks.mark_bytes.lower_marks.mark1_bits.mark_5
#define MARK_6(p)   (p).marks.mark_bytes.lower_marks.mark1_bits.mark_6
#define MARK_7(p)   (p).marks.mark_bytes.lower_marks.mark1_bits.mark_7
#define MARK_8(p)   (p).marks.mark_bytes.upper_marks.mark2_bits.mark_8
#define MARK_9(p)   (p).marks.mark_bytes.upper_marks.mark2_bits.mark_9
#define MARK_13(p)  (p).marks.mark_bytes.upper_marks.mark2_bits.mark_13
#define MARK_14(p)  (p).marks.mark_bytes.upper_marks.mark2_bits.mark_14
#define MARK_15(p)  (p).marks.mark_bytes.upper_marks.mark2_bits.mark_15