1 /* BEGIN INCLUDE FILE linus_set_fn.incl.pl1 -- jaw 7/13/77
 2 
 3    81-10-26  Rickie  E.  Brinegar: Modified to have entry variables instead of
 4    entry  pointers.  This change included the addition of bit switches inorder
 5    to  be  able  to tell if the entry variable had been set yet.  Also changed
 6    the  name  of the structure from set_fn to linus_set_fn and the name of the
 7    variable that it was based on from setf_ptr to linus_set_fn_ptr.
 8 
 9    81-11-05 Rickie E.  Brinegar: Changed the entry pointers to entry variables
10    and  added bit switches to determine when the entries have or have not been
11    set.     Renamed    set_fn   sturcture   to   linus_set_fn,   setf_ptr   to
12    linus_set_fn_ptr,            and            nset_fn_init_args            to
13    initial_number_of_linus_set_fn_args.
14 
15 */
16 
17 dcl 1 linus_set_fn aligned based (linus_set_fn_ptr),        /* internal rep. of set fun. */
18     2 fwd_ptr ptr,                                          /* pointer to next set function to be eval.
19                                                                at this level */
20     2 prior_ptr ptr,                                        /* pointer to head of list of set functions
21                                                                to be evaluated prior to this one */
22     2 assign_entry entry variable,                          /* pointer to assign entry */
23     2 calc_entry entry variable,                            /* pointer to calc entry */
24     2 init_entry entry variable,                            /* pointer to initialization entry */
25     2 assign_al_ptr ptr,                                    /* pointer to assign entry arg list */
26     2 calc_al_ptr ptr,                                      /* pointer to calc entry arg list */
27     2 rtrv_al_ptr ptr,                                      /* pointer to arg list for dsl_$retrieve */
28     2 flags,
29       3 assign_entry_set bit (1) unaligned,                 /* 0 => null, 1 => not null */
30       3 calc_entry_set bit (1) unaligned,                   /* 0 => null, 1 => not null */
31       3 init_entry_set bit (1) unaligned,                   /* 0 => null, 1 => not null */
32       3 pad_bits bit (33) unaligned,
33     2 rslt_desc bit (36),                                   /* descriptor for result */
34     2 nargs fixed bin,                                      /* number of input args to calc entry */
35     2 arg (initial_number_of_linus_set_fn_args refer (linus_set_fn.nargs)),
36       3 type fixed bin (4) unal,                            /* 1 => constant
37                                                                2 => linus variable
38                                                                3 => scalar function
39                                                                4 => set function
40                                                                5 => expression
41                                                                6 => data base item */
42       3 must_convert bit (1) unal,                          /* on if must convert prior to call */
43       3 reserved bit (30) unal,
44       3 desc bit (36),                                      /* descriptor of source data */
45       3 assn_ptr ptr,                                       /* assign_ ptr for source data */
46       3 assn_type fixed bin,                                /* assign_ type for source data */
47       3 assn_len fixed bin (35),                            /* assign_ length for source data */
48       3 arg_desc bit (36),                                  /* descriptor for converted arg */
49       3 arg_assn_ptr ptr,                                   /* assign_ ptr for converted arg */
50       3 arg_assn_type fixed bin,                            /* assign_ type code for converted arg */
51       3 arg_assn_len fixed bin (35),                        /* assign_ length for converted arg */
52       3 ef_ptr ptr;                                         /* pointer to express. or function structure */
53 
54 dcl  initial_number_of_linus_set_fn_args fixed bin;
55 dcl  linus_set_fn_ptr ptr;
56 
57 /* END INCLUDE FILE linus_set_fn.incl.pl1 */