1 /* BEGIN INCLUDE FILE ... _imft_ft_commands.incl.pl1 */
  2 
  3 /* Created:  April 1982 by G. Palter */
  4 /* Modified: July 1982 by G. Palter for true AIM support */
  5 /* Modified: March 1983 by Robert Coren to add remote request record */
  6 /* Modified: April 1983 by Robert Coren to add eof_reply record */
  7 
  8 
  9 /****^  HISTORY COMMENTS:
 10   1) change(88-11-10,Beattie), approve(88-08-01,PBF7948),
 11      audit(88-11-14,Farley), install(88-11-14,MR12.2-1214):
 12      Change declaration of request_number to match up with what is
 13      coming from request_descriptor structure to prevent size condtions.
 14                                                    END HISTORY COMMENTS */
 15 
 16 
 17 /* Command and reply control records used by the IMFT file transfer protocol */
 18 
 19 
 20 /* Command/reply types */
 21 
 22 dcl (IMFT_BOF                 initial (11),                 /* start a file/subtree transfer */
 23      IMFT_EOF                 initial (12),                 /* end of a file/subtree transfer */
 24      IMFT_REMOTE_REQUEST      initial (13))                 /* request for remote transfer */
 25           fixed binary (7) unaligned unsigned static options (constant);
 26 
 27 
 28 /* File/subtree transfer command record */
 29 
 30 dcl 1 bof_command aligned based (bof_command_ptr),
 31       2 global,                                             /* data pertaining to both systems */
 32         3 object_type fixed binary (2),                     /* type of object (segment/directory/MSF) */
 33         3 object_access_class bit (72),                     /* access class of the object we transmitted */
 34         3 request_number fixed binary (35),                 /* daemon's sequence number for this request */
 35         3 queue fixed binary,                               /* priority queue */
 36         3 flags aligned,
 37           4 notify bit (1) unaligned,                       /* ON => send notifications when successfull */
 38           4 continued bit (1) unaligned,                    /* ON => this is continuation of a previous request */
 39           4 restarted bit (1) unaligned,                    /* ON => this is a restart of a previous request */
 40           4 priority_request bit (1) unaligned,             /* ON => this request was given high priority */
 41           4 pad bit (32) unaligned,
 42       2 local_system,                                       /* data pertaining to local (source) system */
 43         3 local_user character (32) unaligned,              /* Person.Project of user who requested the transfer */
 44         3 local_user_authorization bit (72),                /* process authorization of the user who issued request */
 45         3 local_user_ring fixed binary,                     /* ring of execution of user when he issued request */
 46         3 local_dirname character (168) unaligned,          /* where the branch is on the local system */
 47         3 local_ename character (32) unaligned,             /* ... */
 48       2 foreign_system like ft_request.request;             /* data pertaining to foreign (target) system */
 49 
 50 dcl  bof_command_ptr pointer;
 51 
 52 
 53 /* Remote request command record */
 54 
 55 dcl  1 remote_request aligned based (rem_req_ptr),
 56        2 global,
 57          3 request_number fixed binary (35),                /* sequence # of this request */
 58          3 queue fixed binary,                              /* priority queue in which this request was submitted */
 59          3 flags,
 60            4 priority_request bit (1) unaligned,
 61            4 pad bit (35) unaligned,
 62        2 local_system,
 63          3 local_user character (32) aligned,               /* Person.Project of user who submitted the request */
 64          3 local_user_authorization bit (72),               /* process authorization of user who issued the request */
 65          3 local_user_ring fixed binary,                    /* ring of execution of user when request issued */
 66        2 request_info like ft_request;                      /* defined in _imft_ft_request.incl.pl1 */
 67 
 68 dcl rem_req_ptr pointer;
 69 
 70 
 71 /* File/subtree transfer reply record */
 72 
 73 dcl  1 bof_reply aligned based (bof_reply_ptr),
 74        2 request_number fixed binary (35),                  /* sequence # of the request for which this is the reply */
 75        2 abort_request bit (1) aligned,                     /* ON => remote system refuses to accept this file/subtree */
 76        2 abort_message character (1024) varying;            /* reason why the remote system rejects the request */
 77 
 78 dcl  bof_reply_ptr pointer;
 79 
 80 
 81 /* File_subtree end-of-file command record */
 82 
 83 dcl 1 eof_command aligned based (eof_command_ptr),
 84       2 request_number fixed binary (35),
 85       2 backup_errors bit (1) aligned;                      /* ON => errors reported by backup_dump_ */
 86 
 87 dcl eof_command_ptr pointer;
 88 
 89 
 90 /* File/subtree end-of-file reply record */
 91 
 92 dcl  1 eof_reply aligned based (eof_reply_ptr),
 93        2 request_number fixed binary (35),                  /* sequence # of the request whose completion this acknowledges */
 94        2 error bit (1) aligned;                             /* ON => remote system was unable to load the object successfully */
 95 
 96 dcl  eof_reply_ptr pointer;
 97 
 98 
 99 /* Types of objects which can be transmitted by IMFT */
100 
101 dcl (LINK           initial (0),                            /* links actually aren't allowed, but... */
102      SEGMENT        initial (1),
103      DIRECTORY      initial (2),                            /* actually the entire subtree is transferred */
104      MSF            initial (3))
105           fixed binary (2) static options (constant);
106 
107 dcl  OBJECT_TYPES (0:3) character (32) static options (constant) initial (
108           "link",   "segment",          "subtree",          "multisegment file");
109 
110 /* END INCLUDE FILE ... _imft_ft_commands.incl.pl1 */