1 /* BEGIN INCLUDE FILE ... _imft_std_commands.incl.pl1 */
 2 
 3 /* Created:  April 1982 by G. Palter */
 4 /* Modified: July 1982 by G. Palter to add true AIM support */
 5 /* Modified: March 1983 by Robert Coren to add local_io_error abort code */
 6 /* Modified: August 1983 by Robert Coren to add access_floor to AIM2 record */
 7 
 8 
 9 /****^  HISTORY COMMENTS:
10   1) change(88-08-12,Beattie), approve(88-08-01,MCR7948),
11      audit(88-10-14,Farley), install(88-10-14,MR12.2-1165):
12      Add imft_version to sync_record structure to inform other driver of this
13      driver's version of the IMFT software.
14                                                    END HISTORY COMMENTS */
15 
16 
17 /* Standard command and reply control records used by IMFT drivers */
18 
19 
20 /* Standard command/reply types */
21 
22 dcl (IMFT_DATA                initial (0),                  /* data record */
23      IMFT_SYNC1               initial (1),                  /* first half of synchronization sequence */
24      IMFT_SYNC2               initial (2),                  /* second half of synchronization sequence */
25      IMFT_ABORT               initial (3),                  /* abort the current operation */
26      IMFT_LOGOUT              initial (4),                  /* one side requests that the other logout */
27      IMFT_RESYNCHRONIZE       initial (5),                  /* reply requesting resynchronization */
28      IMFT_AIM1                initial (6),                  /* first half of establsihing AIM ceiling */
29      IMFT_AIM2                initial (7))                  /* second half of establishing AIM ceiling */
30           fixed binary (7) unaligned unsigned static options (constant);
31 
32 
33 /* Synchronization control record: sent as the SYNC1 command and reply and as the SYNC2 command; the SYNC2 reply is a
34    zero-length record which is only sent if the SYNC2 command indicates success */
35 
36 dcl  1 sync_record aligned based (sync_record_ptr),
37        2 my_userid character (32),                          /* Person_id of system sending this record */
38        2 my_password character (8),                         /* scrambled card input passowrd */
39        2 code fixed binary (35),                            /* non-zero code => validation failed; break the connection */
40        2 correct_userid character (32),                     /* Person_id that was expected if incorrect */
41        2 imft_version character (8);                        /* version of IMFT being used by driver */
42 
43 dcl  sync_record_ptr pointer;
44 
45 
46 /* Abort command record */
47 
48 dcl  1 abort_command aligned based (abort_command_ptr),
49        2 reason fixed binary,                               /* reason to abort this operation */
50        2 code fixed binary (35);                            /* real error code for an I/O error */
51 
52 dcl  abort_command_ptr pointer;
53 
54 dcl (IMFT_ABORT_IO_ERROR      initial (1),                  /* I/O error */
55      IMFT_ABORT_ABORTED       initial (2),                  /* random fault */
56      IMFT_ABORT_DEFERRED      initial (3),                  /* operator deferred request */
57      IMFT_ABORT_CANCELLED     initial (4),                  /* operator cancelled request */
58      IMFT_ABORT_SAVED         initial (5),                  /* operator saved the request silently */
59      IMFT_ABORT_RESTARTED     initial (6),                  /* operator restarted the request */
60      IMFT_ABORT_LOCAL_IO_ERROR initial (7))                 /* I/O error on local system */
61           fixed binary static options (constant);
62 
63 
64 /* AIM ceiling control records: the AIM1 command and reply are the aim_attributes structures defining the attributes on
65    the system; the AIM2 command/reply record follows */
66 
67 dcl  1 aim2_record aligned based (aim2_record_ptr),
68        2 code fixed binary (35),                            /* non-zero => AIM ceiling can not be established */
69        2 computed_ceiling bit (72),                         /* ceiling computed by other system (before translation) */
70        2 computed_floor bit (72),                           /* floor computed by other system (before translation) */
71        2 flags unaligned,
72          3 explicit_ceiling_given bit (1),                  /* ON => an explicit access ceiling follows */
73          3 explicit_floor_given bit (1),                    /* ON => an explicit access floor follows */
74          3 pad bit (34),
75        2 explicit_ceiling bit (72),                         /* the explicitly requested ceiling (before translation) */
76        2 explicit_floor bit (72);                           /* the explicitly requested floor (before translation) */
77 
78 /* The following version of the structure is used for pre-version 3.0 IMFT */
79 
80 dcl  1 v2_aim2_record aligned based (aim2_record_ptr),
81        2 code fixed binary (35),                            /* non-zero => AIM ceiling can not be established */
82        2 computed_ceiling bit (72),                         /* ceiling computed by other system (before translation) */
83        2 explicit_ceiling_given bit (1),                    /* ON => an explicit access ceiling follows */
84        2 explicit_ceiling bit (72);                         /* the explicitly requested ceiling (before translation) */
85 
86 dcl  aim2_record_ptr pointer;
87 
88 /* END INCLUDE FILE ... _imft_std_commands.incl.pl1 */