HPlogo 900 Series HP 3000 Computer Systems: MPE/iX Architected Interface Facility: Operating System Reference Manual

Appendix B AIF Data Structures

» 

Technical documentation

Complete book in PDF
» Feedback

 » Table of Contents

 » Index

 bit1                     =     0 .. 1;





 bit2                     =     0 .. 3;





 bit8                     =     0 .. 255;





 bit14                    =     0 .. 16383;





 bit16                    =     0 .. 65535;





 bit31                    =     0 .. 2147483647;
 buffer_type =



          record

              case boolean of

                true:   (buff_str : string[n]);

                false:  (buff_len : integer;

                         buffer   : packed array [1..n]);

              end;



 Array size: 4 + n + 1 bytes



n represents a user-defined size.
 buffer_info_type =



          record

          buffer_offset  : integer; (0.0 @ 4.0)

          pathname_len   : integer; (4.0 @ 4.0)

          end;

 Record size: 8 bytes

 Alignment:   4 bytes
 clock_type =



    crunched record

    case bit32 of 

       1: ( hour        : bit8;     (0.0 @ 1.0)

            min         : bit8;     (1.0 @ 1.0)

            sec         : bit8;     (2.0 @ 1.0)

            ten_sec     : bit8;     (3.0 @ 1.0)

       2: ( clock_funct : bit32;    (0.0 @ 4.0)  

    end;



 Record size: 4 bytes

 Alignment:   4 bytes
 datestr_type =

    record

    month_str    : packed array[1..3] of char;  (0.0 @ 3.0)

    day_of_week  : packed array[1..3] of char;  (3.0 @ 3.0)

 end;



 Record size: 6 bytes

 Alignment: 1 byte
 date_type = 

    record

    year         : integer;  (0.0 @ 4.0)

    month        : integer;  (4.0 @ 4.0)

    day_of_month : integer;  (8.0 @ 4.0)

 end;



 Record size: 12 bytes

 Alignment: 4 bytes 
  device_name_type    =



          packed array[1..18] of char;                 (0.0  @ 18.0)





 Array size: 18 bytes

 Element size: 1 byte

 Alignment : 1 byte
  directory_name_type  =



          record

            user    : packed array[1..16] of char ;    (0.0  @ 16.0)

            group   : packed array[1..16] of char ;    (16.0 @ 16.0)

            account : packed array[1..16] of char ;    (32.0 @ 16.0)

          end ;





 Record size: 48 bytes

 Alignment  :  4 bytes



 The values for the user, group, and account must be upper-case.


drives_type =



record

  cnt          : integer;

  drives_ldevs : array [1..n] of integer;

end;



n represents a user-defined size.

Record size : 4 + 4n bytes

Alignment   : 4 bytes
  dstsrec_type  =



          record

            cnt     : integer;                         (0.0 @ 4.0)

            dstinfo :

               array[1..n] of

                  record

                     dstno   : integer;                (0.0 @ 4.0)

                     dstva   : anyptr;                 (4.0 @ 8.0)

                  end ;

          end ;





 Record size: 12n + 4 bytes

 Alignment  : 4 bytes



 n represents a user-defined size.
  filename_type   =



          record

            filename  : packed array[1..16] of char;      (0.0  @ 16.0)

            group     : packed array[1..16] of char;      (16.0 @ 16.0)

            account   : packed array[1..16] of char;      (32.0 @ 16.0)

          end ;





 Record size: 48 bytes

 Alignment  : 1 byte



 All three arrays are always returned padded, with blanks on the right.

 Most interfaces accept them, when a file name is input, to be flushed

 with blanks on the right.
  fnamerec_type       = record

                        cnt       : integer

                        fnames    : array[1..n] of

                                     filename_type;

                        end;



 Record size: 4 + 20n bytes

 Alignment  : 4 bytes
  fnumpid_type  =



          record

            fnum    : integer;                               (0.0 @ 4.0)

            pid     : longint_type;                          (4.0 @ 8.0)

          end ;





 Record size: 12 bytes

 Alignment  : 4 bytes
  i32rec_type       = record

                      cnt      : integer;

                      ints     : array[1..n] of integer;

                      end;



 Record size: 4 + 4n bytes 

 Alignment  : 4 bytes
  i64rec_type      = record

                      cnt      : integer;

                      lints    : array[1..n] of longint;

                      end;



 Record size: 4 + 8n bytes

 Alignment  : 4 bytes
  item_array_type  =

       

        array[1..n] of globalanypointer;



 Array size: 8n bytes

 Element size: 8 bytes

 Alignment: 4 bytes



 n represents a user defined size.


  itemstatus_array_type  =



        array[1..n] of status_type;



 Array size: 4n bytes

 Element size: 4 bytes

 Alignment:  4 bytes



 n represents a user defined size.


  itemnum_array_type  =



        array[1..n] of integer;



 Array size: 4n bytes

 Element size: 4 bytes

 Alignment:  4 bytes



 n represents a user defined size.


  jskey_type          =



          integer;                                           (0.0 @ 4.0)



 Alignment  : 4 bytes
  jsdev_type  =



          record

            device_class  : boolean;                         ( 0.0 @ 1.0 )

            output_device : integer;                         ( 4.0 @ 4.0)

          end ;



 Record size: 8 bytes

 Alignment  : 4 bytes
  jsnum_type          =



          packed record

            js_type : bit2;                                  ( 0.0 @ 0.2 )

            js_num  : bit14;                                 ( 0.2 @ 1.6 )

            js_ext  : shortint;                              ( 2.0 @ 2.0 )

          end ;



 Record size: 4 bytes

 Alignment  : 4 bytes 



 The js_type field can have a value of 1 or 2; 1 indicates a session

 and 2 indicates a job. The js_num field can have any value from 1-16383.
  logon_desc_type   =



          record

            job_name    : pac16;                             ( 0.0 @ 16.0)

            acct_name   : pac16;                             (16.0 @ 16.0)

            acct_pass   : pac16;                             (32.0 @ 16.0)

            user_name   : pac16;                             (48.0 @ 16.0)

            user_pass   : pac16;                             (64.0 @ 16.0)

            group_name  : pac16;                             (80.0 @ 16.0)

            group_pass  : pac16;                             (96.0 @ 16.0)

          end ;



 Record size: 112 bytes

 Alignment  : 1 byte
  longint_type  =



          record

            left    : integer;                               (0.0 @ 4.0)

            right   : integer;                               (4.0 @ 4.0)

          end ;



 Record size: 8 bytes

 Alignment  : 4 bytes
 max_pathlen =  1024



This value can be retrieved from AIFSCGET, item 3062.
 max_pathname_type =



          packed array [ 1 .. max_pathlen ] of char;



 Array size: max_pathlen bytes   Element Size: 1 byte

 Alignment: 1 byte


  message_buffer_type   =



          packed array[1..n] of char;



 Array size: n bytes

 Element size: 1 byte

 Alignment : 1 byte



 The type is user-defined. n represents any number <= 32767.


media_label_type =



record

  media_name : packed array [1..32] of char;      (0.0 @ 20.0)

  subname1   : packed array [1..16] of char;     (20.0 @ 10.0)

  subname2   : packed array [1..16] of char;     (20.0 @ 10.0)

end;



Record size : 64 bytes

Alignment   : 1 byte


mm_side_type =



record

  media_label  : media_label_type;               (0.0 @ 40.0)

  volume_label : packed array[1..8] of char;    (40.0 @ 8.0)

end;



Record size : 72 bytes

Alignment   : 1 byte


mm_slot_info_type =



record

  slot_number : integer;                 (0.0 @ 4.0)

  slot_state  : mm_slot_state_type;      (4.0 @ 1.0)

  side_a      : mm_side_type;            (5.0 @ 48.0)

  side_b      : mm_side_type;           (4D.0 @ 48.0)

end;



Record size : 152 bytes

Alignment   : 4 bytes


mm_slot_state_type =



  (empty_slot, full_slot, rsvd_slot);


  mpe_name_type      =



      packed array[1..16] of char;       (0.0 @ 16)



 Array size: 16 bytes

 Alignment : 1 byte




  pac8               =



          packed array[1..8] of char;                  (0.0 @ 8.0)





 Array size: 8 bytes

 Element size: 1 byte

 Alignment : 1 byte
  pac16               =



          packed array[1..16] of char;                 (0.0 @ 16.0)





 Array size: 16 bytes

 Element size: 1 byte

 Alignment : 1 byte
  pac18               =



          packed array[1..18] of char;                 (0.0 @ 18.0)



 Array size: 18 bytes

 Element size: 1 byte

 Alignment : 1 byte
  pac32               =



          packed array[1..32] of char;                 (0.0 @ 32.0)



 Array size: 32 bytes

 Element size: 1 byte

 Alignment : 1 byte
  pac34               =



          packed array[1..34] of char;                 (0.0 @ 34.0)



 Array size: 34 bytes

 Element size: 1 byte

 Alignment : 1 byte
  pac256               =



          packed array[1..256] of char;                (0.0 @ 256.0)



 Array size: 256 bytes

 Element size: 1 byte

 Alignment : 1 byte
path_identifier   =  $alignment 4$



          record

               ufid        :  ufid_type;

               link_id     :  bit32;

               parent_ufid :  ufid_type;

          end;



 Record size: 44 bytes

 Alignment : 4 bytes
path_id_rec_type   =  $alignment 4$



          record

               cnt         :  integer;

               path_ids    :  rec [1..n] of path_identifier;

          end;



 n represents a user-defined size.

 Record size: 4 + 44n bytes

 Alignment : 4 bytes
pathname_type =



          record

              case boolean of

                 true:  (path_str :  string [n]);

                 false: (path_rec :  record

                           length      :  integer;

                           pathname    :  packed array [1..n] of char;

                           end);

                 end;





 Record size : 4 + n + 1 bytes

 Alignment   : 4 bytes



 n represents a user-defined size.    Currently the maximum pathname

 length is 1024 bytes.
  pid_type  =



          record

            left    : integer;                               (0.0 @ 4.0)

            right   : integer;                               (4.0 @ 4.0)

          end ;



 Record size: 8 bytes

 Alignment  : 4 bytes
  recfnumpid_type  =



          record

            count   : integer;                               (0.0 @ 4.0)

            fnumpid : array[1..n] of fnumpid_type            (4.0 @ 12n.0)

          end ;



 Record size: 12n + 4 bytes

 Alignment  : 4 bytes



 n represents a user-defined size.
  search_key_type             =



          record

            case integer of

               1: ( key_js_num  : integer );                  (0.0 @ 4.0)

               2: ( key_pid     : longint_type );             (0.0 @ 8.0)

               3: ( key_ufid    : ufid_type );                (0.0 @ 20.0)

               4: ( key_fname   : filename_type );            (0.0 @ 48.0)

               5: ( key_dname   : directory_name_type );      (0.0 @ 48.0)

               6: ( key_sfnum   : integer );                  (0.0 @ 4.0)

               7: ( key_portid  : integer );                  (0.0 @ 4.0)

               8: ( key_portnm  : pac16 );                    (0.0 @ 16.0)

               9: ( key_plfd    : localanyptr );              (0.0 @ 4.0)

              10: ( key_js_ind  : integer );                  (0.0 @ 4.0)

              11: ( key_pid_ind : integer );                  (0.0 @ 4.0)

              12: ( key_ldev    : integer );                  (0.0 @ 4.0)

              13: ( key_va      : bit64   );                  (0.0 @ 8.0)

              14: ( key_int     : integer );                  (0.0 @ 4.0)

              15: ( key_class   : pac16   );                  (0.0 @ 16.0)

              16: ( key_pathname: max_pathname_type );        (0.0 @ 1024.0)

         end ;



 Record size: 1024 bytes

 Alignment  : 4 bytes
  sel_eq_type       =



          record

             stringlen: integer ;                            (0.0 @ 4.0) 

             str : packed array[1..280] of char ;            (4.0 @ 280.0)

             housekeep: bit8;                                (280.0 @ 1.0)

          end ;





 Record size: 288 bytes

 Alignment  : 4 bytes
  spf_id_type       =



          packed record

             case boolean of

                true: ( id_number  : bit31;                  (0.0 @ 3.7)

                        i_or_o_flag: bit1);                  (3.7 @ 0.1)

                false: ( all: integer);                      (0.0 @ 4.0)

          end ;





 Record size: 4 bytes

 Alignment  : 4 bytes
  status_type     =



          record

            case boolean of

               true  : ( all: integer );                     (0.0 @ 4.0)

               false : ( info  : shortint;                   (0.0 @ 2.0)

                         subsys: shortint );                 (2.0 @ 2.0)

          end ;





 Record size: 4 bytes

 Alignment  : 4 bytes


storage_slot_type =



record

  lower_limit  : integer;

  upper_limit  : integer;

  slot_info    : array [1..n] of mm_slot_info_type;

end;



n represents a user-defined size.

Record size : 4 + 4 + 152n

Alignment   : 4 bytes
  t_vol_class_name =



       packed array[1..32] of char;                         (0.0 @ 32.0)



 Array size : 32 bytes

 Alignment  : 1  byte


  t_volume_name    =



       packed array [1..16] of char;                        (0.0 @ 16.0)



 Array size : 16 bytes

 Alignment  : 1  byte
  t_vol_set_name   = 



       packed array[1..32] of char;                        (0.0 @ 32.0) 
  ufidrec_type           = record

                           cnt          : integer;

                           ufids        : array[1..n] of

                                          ufid_type;

                           end; 
  ufid_type        =



          record

                 ufid : packed array[1..20] of char;     (0.0 @ 14.0)

          end ;





 Array size: 20 bytes

 Element size: 1 byte

 Alignment : 4 bytes
key_workgroup_type =

record

 wgindex           : integer;            (0.0 @ 4.0)

 creation_count    : integer;            (4.0 @ 4.0)

end;



Record Size  : 8 bytes

Alignment    : 4 bytes

  


pac20 =



   packed array[1..20] of char;          (0.0 @ 14.0)



Array size: 20 bytes

Element size: 1 byte

Alignment : 1 byte




Feedback to webmaster