/*
 * THIS FILE IS AUTOMATICALLY GENERATED BY /pbulk/work/net/nasd/work/nasd-1.3/rpcgen/nasd_rpcgen
 * DO NOT MODIFY BY HAND
 *
 * Generated: Sat Jan  3 11:58:56 2026
 * Source: nasd_types.rpc
 * Annotation: off
 * Min alignment: 1
 * Pad to: 8
 * Standard prefix: not specified
 */

#ifndef __nasd_types_H_
#define __nasd_types_H_

#include <nasd/nasd_rpcgen_c.h>

#include <nasd/nasd_base_types.h>
#include <nasd/nasd_error.h>
#define NASD_KEY_SZ 16
#define NASD_FS_SPECIFIC_INFO_SIZE 256
typedef nasd_int32 nasd_access_rights_t;
typedef nasd_int32 nasd_args_len_t;
typedef nasd_uint16 nasd_audit_t;
typedef nasd_int16 nasd_av_t;
typedef nasd_int16 nasd_disk_ident_t;
typedef nasd_uint32 nasd_drive_rshutdown_flags_t;
typedef nasd_uint64 nasd_identifier_t;
typedef nasd_int8 nasd_layout_type_t;
typedef nasd_int8 nasd_ioqueue_type_t;
typedef nasd_uint64 nasd_offset_t;
typedef nasd_int16 nasd_partnum_t;
typedef nasd_uint32 nasd_trace_seq_t;
typedef nasd_byte nasd_key_t[16];
#define NASD_AV_T_SIZE 2
typedef nasd_otw_base_t nasd_av_otw_t[1];
#define NASD_IDENTIFIER_T_SIZE 8
typedef nasd_otw_base_t nasd_identifier_otw_t[1];
#define NASDID_NULL 0
#define NASD_ID_NULL 0
typedef nasd_byte_t nasd_fs_specific_t[256];
struct nasd_timespec_s {
  nasd_int32 ts_sec;
  nasd_int32 ts_nsec;
};
typedef struct nasd_timespec_s nasd_timespec_t;
#define NASD_TIMESPEC_T_SIZE 8
typedef nasd_otw_base_t nasd_timespec_otw_t[1];
struct nasd_client_addr_s {
  nasd_uint32 ip_addr;
  nasd_uint32 port;
};
typedef struct nasd_client_addr_s nasd_client_addr_t;
typedef nasd_int32 nasd_index_stream_identifier_t;
struct nasd_layout_hint_s {
  nasd_identifier_t lh_nid;
};
typedef struct nasd_layout_hint_s nasd_layout_hint_t;
#define NASD_LAYOUT_HINT_SIZE 8
struct nasd_attribute_s {
  nasd_uint64 block_preallocation;
  nasd_uint64 blocks_used;
  nasd_uint32 block_size;
  nasd_av_t av;
  nasd_rpcgen_int8 pad001[2];
  nasd_uint64 object_len;
  nasd_timespec_t attr_modify_time;
  nasd_timespec_t object_modify_time;
  nasd_timespec_t object_create_time;
  nasd_timespec_t fs_attr_modify_time;
  nasd_timespec_t fs_object_modify_time;
  nasd_layout_hint_t layout_hint;
  nasd_byte fs_specific[256];
};
typedef struct nasd_attribute_s nasd_attribute_t;
#define NASD_ATTRIBUTE_SIZE 336
typedef nasd_int32 nasd_fieldmask_t;
typedef nasd_int8 nasd_guard_t;
#define NASD_ATTR_BLOCK_PREALLOCATION 1
#define NASD_ATTR_HIGHEST_BLOCKNO 2
#define NASD_ATTR_BLOCKS_USED 4
#define NASD_ATTR_BLOCK_SIZE 8
#define NASD_ATTR_OBJECT_LEN 16
#define NASD_ATTR_ATTR_MODIFY_TIME 32
#define NASD_ATTR_MODIFY_TIME 64
#define NASD_ATTR_AV 128
#define NASD_ATTR_LAYOUT_HINT 256
#define NASD_ATTR_FS_SPECIFIC 16777216
#define NASD_ATTR_VALID_BITS 16777725
#define NASD_INTEGRITY_ARGS 1
#define NASD_INTEGRITY_DATA 2
#define NASD_PRIVACY_ARGS 16
#define NASD_PRIVACY_DATA 32
#define NASD_PRIVACY_CAPABILITY 64
#define NASD_SECURITY_COLOCATED 128
#define NASD_NO_PROTECTION 0
#define NASD_SECURE_OPS 51
#define NASD_INTEGRITY_OPS 3
#define NASD_BLACK_CAPABILITY 1
#define NASD_RED_CAPABILITY 2
#define NASD_BLACK_KEY 3
#define NASD_RED_KEY 4
#define NASD_PARTITION_KEY 5
#define NASD_DRIVE_KEY 6
#define NASD_MASTER_KEY 7
struct nasd_capability_s {
  nasd_identifier_t ni;
  nasd_int32 expiration_seconds;
  nasd_access_rights_t rights;
  nasd_uint16 min_protection;
  nasd_audit_t AuditID;
  nasd_uint16 type;
  nasd_rpcgen_int8 pad001[2];
  nasd_offset_t region_start;
  nasd_offset_t region_end;
  nasd_partnum_t partnum;
  nasd_rpcgen_int8 pad002[6];
};
typedef struct nasd_capability_s nasd_capability_t;
#define NASD_CAPABILITY_SZ 48
typedef nasd_otw_base_t nasd_capability_otw_t[6];
struct nasd_security_param_s {
  nasd_partnum_t partnum;
  nasd_uint16 type;
  nasd_uint16 actual_protection;
  nasd_rpcgen_int8 pad001[2];
};
typedef struct nasd_security_param_s nasd_security_param_t;
#define NASD_SECURITY_PARAM_SZ 8
typedef nasd_otw_base_t nasd_security_param_otw_t[1];
struct nasd_cookie_s {
  nasd_capability_t capability;
  nasd_key_t key;
};
typedef struct nasd_cookie_s nasd_cookie_t;
#define NASD_COOKIE_SIZE 64
#define NASD_ACCESS_RIGHTS_SETATTR 1
#define NASD_ACCESS_RIGHTS_READ 2
#define NASD_ACCESS_RIGHTS_WRITE 4
#define NASD_ACCESS_RIGHTS_CREATE 32
#define NASD_ACCESS_RIGHTS_GETATTR 64
#define NASD_ACCESS_RIGHTS_REMOVE 128
#define NASD_ACCESS_RIGHTS_GETINFO 256
#define NASD_ACCESS_RIGHTS_GETSTATUS 512
#define NASD_ACCESS_RIGHTS_FLUSH 1024
#define NASD_ACCESS_RIGHTS_EJECT 2048
struct nasd_file_io_list_s {
  nasd_uint64 offset;
  nasd_int64 stride;
  nasd_uint64 element_cnt;
  nasd_uint64 len;
};
typedef struct nasd_file_io_list_s nasd_file_io_list_t;
typedef nasd_int32 nasd_list_len_t;
/* !!! pipes not supported yet !!! */
typedef struct nasd_byte_pipe_t_s {
  int  placeholder;
} nasd_byte_pipe_t;
#define NASD_IV_SIZE 8
#define NASD_DIGEST_SIZE 20
typedef nasd_byte nasd_digest_t[20];
typedef nasd_byte nasd_iv_t[8];
struct nasd_digest_nonce_s {
  nasd_digest_t digest;
  nasd_rpcgen_int8 pad001[4];
  nasd_timespec_t nonce;
};
typedef struct nasd_digest_nonce_s nasd_digest_nonce_t;
typedef nasd_otw_base_t nasd_digest_nonce_otw_t[4];
typedef nasd_int32 nasd_len_t;
struct nasd_opstat_s {
  nasd_uint64 num_ops;
  nasd_uint64 op_nsecs;
  nasd_uint64 min_nsecs;
  nasd_uint64 max_nsecs;
  nasd_uint64 invalid;
  nasd_uint64 in_flight;
};
typedef struct nasd_opstat_s nasd_opstat_t;
typedef nasd_uint64 nasd_opcount_t;
struct nasd_args_s {
  nasd_security_param_t in_security_param;
  nasd_capability_t in_capability_args;
};
typedef struct nasd_args_s nasd_args_t;
struct nasd_res_s {
  nasd_status_t nasd_status;
  nasd_rpcgen_int8 pad001[4];
};
typedef struct nasd_res_s nasd_res_t;
typedef nasd_otw_base_t nasd_res_otw_t[1];
#define SZSZ 8
struct nasd_trace_header_s {
  nasd_uint8 tr_class;
  nasd_uint8 tr_type;
  nasd_uint16 tr_len;
  nasd_trace_seq_t tr_seq;
  nasd_timespec_t tr_time;
};
typedef struct nasd_trace_header_s nasd_trace_header_t;
#define NASD_TRACE_HEADER_SIZE 16
typedef nasd_byte_t nasd_trace_header_otw_t[16];
struct nasd_net_address_s {
  nasd_disk_ident_t disk_identifier;
  nasd_rpcgen_int8 pad001[2];
  nasd_int32 network_address;
  nasd_int32 port_number;
  nasd_int32 partnum;
};
typedef struct nasd_net_address_s nasd_net_address_t;
struct nasd_edrfs_identifier_s {
  nasd_identifier_t nasd_identifier;
  nasd_disk_ident_t disk_identifier;
  nasd_int16 partnum;
  nasd_int32 pad1;
};
typedef struct nasd_edrfs_identifier_s nasd_edrfs_identifier_t;

#endif /* !__nasd_types_H_ */
