/*
 * 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:55 2026
 * Source: nasd_control.rpc
 * Annotation: off
 * Min alignment: 1
 * Pad to: 8
 * Standard prefix: not specified
 */

#ifndef __nasd_control_H_
#define __nasd_control_H_

#include <nasd/nasd_rpcgen_c.h>

#include <nasd/nasd_types.h>
#define NASD_INFO_PAGESIZE 8192
typedef nasd_byte_t nasd_info_page_t[8192];
typedef nasd_otw_base_t nasd_info_page_otw_t[1024];
#define NASD_CTRL_NULL 0
#define NASD_CTRL_DRIVE_INFO 1
#define NASD_CTRL_PART_INFO 2
#define NASD_CTRL_PART_OBJS 3
#define NASD_CTRL_TRACE_INFO 4
#define NASD_CTRL_TRACE_DATA 5
#define NASD_DRIVE_CACHE_TYPES 11
#define NASD_BUILD_STAMP_SIZE 128
typedef nasd_byte nasd_build_stamp_t[128];
struct nasd_ctrl_drive_info_s {
  nasd_identifier_t ctrl_id;
  nasd_uint64 max_parts;
  nasd_uint64 blocksize;
  nasd_uint64 num_parts;
  nasd_uint64 num_blocks;
  nasd_uint64 blocks_allocated;
  nasd_build_stamp_t build_stamp;
  nasd_rpcgen_int8 pad001[8016];
};
typedef struct nasd_ctrl_drive_info_s nasd_ctrl_drive_info_t;
typedef nasd_otw_base_t nasd_ctrl_drive_info_otw_t[1024];
struct nasd_ctrl_part_info_s {
  nasd_identifier_t ctrl_id;
  nasd_identifier_t first_obj;
  nasd_uint64 num_obj;
  nasd_uint64 part_size;
  nasd_uint64 blocks_used;
  nasd_uint64 blocks_allocated;
  nasd_uint64 max_objs;
  nasd_uint64 blocksize;
  nasd_uint16 min_protection;
  nasd_rpcgen_int8 pad001[8126];
};
typedef struct nasd_ctrl_part_info_s nasd_ctrl_part_info_t;
typedef nasd_otw_base_t nasd_ctrl_part_info_otw_t[1024];
struct nasd_ctrl_index_read_cfg_s {
  nasd_identifier_t ctrl_id;
  nasd_uint32 num_clients;
  nasd_uint32 max_bandwidth;
  nasd_uint32 client_bandwidth;
  nasd_uint32 num_slots;
  nasd_uint32 bandwidth_share;
  nasd_uint32 throttle_rate;
  nasd_rpcgen_int8 pad001[8160];
};
typedef struct nasd_ctrl_index_read_cfg_s nasd_ctrl_index_read_cfg_t;
typedef nasd_otw_base_t nasd_ctrl_index_read_cfg_otw_t[1024];
#define NASD_CTRL_DRIVE_OPDEPTHS 32
struct nasd_ctrl_drive_opstats_s {
  nasd_identifier_t ctrl_id;
  nasd_opstat_t null;
  nasd_opstat_t sync;
  nasd_opstat_t part_creat;
  nasd_opstat_t create;
  nasd_opstat_t getattr;
  nasd_opstat_t read_simple;
  nasd_opstat_t read2_simple;
  nasd_opstat_t tread_simple;
  nasd_opstat_t write_simple;
  nasd_opstat_t setattr;
  nasd_opstat_t flush_obj;
  nasd_opstat_t remove;
  nasd_opstat_t initialize;
  nasd_opstat_t change_key;
  nasd_opstat_t eject_obj;
  nasd_opstat_t strt_iread;
  nasd_opstat_t stop_iread;
  nasd_opstat_t rshutdown;
  nasd_opstat_t getinfo;
  nasd_opstat_t remote_attach;
  nasd_opstat_t remote_detach;
  nasd_opstat_t remote_invoke;
  nasd_opstat_t last_operation_placeholder;
  nasd_timespec_t opdepths[32];
  nasd_rpcgen_int8 pad001[6824];
};
typedef struct nasd_ctrl_drive_opstats_s nasd_ctrl_drive_opstats_t;
typedef nasd_otw_base_t nasd_ctrl_drive_opstats_otw_t[1024];
struct nasd_ctrl_cache_stat_s {
  nasd_identifier_t ctrl_id;
  nasd_uint64 drive_cpu_speed;
  nasd_timespec_t timestamp;
  nasd_timespec_t idle;
  nasd_uint64 region_blocks;
  nasd_uint64 mem_allocated;
  nasd_opcount_t lookup[11];
  nasd_opcount_t lookup_logical[11];
  nasd_opcount_t force[11];
  nasd_opcount_t miss[11];
  nasd_opcount_t get1[11];
  nasd_opcount_t get2[11];
  nasd_opcount_t get_logical[11];
  nasd_opcount_t falloc[11];
  nasd_opcount_t alloc_succeed;
  nasd_opcount_t alloc_fail;
  nasd_opcount_t grab_fl;
  nasd_opcount_t grab_consider[11];
  nasd_opcount_t grab_stillref;
  nasd_opcount_t grab_dirty_wait;
  nasd_opcount_t grab_lru_maxtrips;
  nasd_opcount_t dirty_threshold_kicks;
  nasd_opcount_t logical_found[11];
  nasd_opcount_t logical_no_digest;
  nasd_opcount_t anon_eject;
  nasd_opcount_t anon_replace;
  nasd_opcount_t anon_before;
  nasd_opcount_t anon_before_fail;
  nasd_opcount_t anon_before_noref;
  nasd_opcount_t anon_before_incore;
  nasd_opcount_t anon_after;
  nasd_opcount_t anon_after_fail;
  nasd_opcount_t anon_after_noref;
  nasd_opcount_t anon_after_incore;
  nasd_opcount_t anon_issue_noorder;
  nasd_opcount_t anon_notused;
  nasd_opcount_t anon_promoted[11];
  nasd_timespec_t read_pipe_stall_time;
  nasd_timespec_t read_ilookup_time;
  nasd_timespec_t read_bmap_time;
  nasd_timespec_t read_stall_time;
  nasd_timespec_t read_lget_time;
  nasd_timespec_t read_pget_time;
  nasd_timespec_t read_setup_time;
  nasd_timespec_t read_issue_time;
  nasd_timespec_t read_core_time;
  nasd_uint64 read_bytes;
  nasd_timespec_t read2_pipe_stall_time;
  nasd_timespec_t read2_ilookup_time;
  nasd_timespec_t read2_bmap_time;
  nasd_timespec_t read2_stall_time;
  nasd_timespec_t read2_lget_time;
  nasd_timespec_t read2_pget_time;
  nasd_timespec_t read2_setup_time;
  nasd_timespec_t read2_issue_time;
  nasd_timespec_t read2_core_time;
  nasd_uint64 read2_bytes;
  nasd_timespec_t write_pipe_stall_time;
  nasd_timespec_t write_ilookup_time;
  nasd_timespec_t write_bmap_time;
  nasd_timespec_t write_stall_time;
  nasd_uint64 write_bytes;
  nasd_opcount_t rescue_eject;
  nasd_opcount_t create_busy;
  nasd_timespec_t node_xlate_time;
  nasd_timespec_t node_wait_check_time;
  nasd_timespec_t node_compute_time;
  nasd_timespec_t node_hash_get_time;
  nasd_timespec_t node_block_get_time;
  nasd_rpcgen_int8 pad001[6760];
};
typedef struct nasd_ctrl_cache_stat_s nasd_ctrl_cache_stat_t;
typedef nasd_otw_base_t nasd_ctrl_cache_stat_otw_t[1024];
#define NASD_CTRL_LAYOUT_NAME_LEN 64
struct nasd_ctrl_layout_stat_s {
  nasd_identifier_t ctrl_id;
  nasd_byte_t layout_name[64];
  nasd_timespec_t get_node_block_time;
  nasd_timespec_t node_fail_create_time;
  nasd_timespec_t release_oneblock_time;
  nasd_timespec_t release_blocks_time;
  nasd_timespec_t init_adj_prealloc_time;
  nasd_timespec_t cancel_adj_prealloc_time;
  nasd_timespec_t adj_prealloc_time;
  nasd_timespec_t surrender_prealloc_time;
  nasd_timespec_t node_deleting_time;
  nasd_timespec_t alloc_blocks_time;
  nasd_timespec_t get_prealloc_time;
  nasd_rpcgen_int8 pad001[8032];
};
typedef struct nasd_ctrl_layout_stat_s nasd_ctrl_layout_stat_t;
typedef nasd_otw_base_t nasd_ctrl_layout_stat_otw_t[1024];
#define NASD_CTRL_IOQUEUE_NAME_LEN 64
struct nasd_ctrl_ioqueue_stat_s {
  nasd_identifier_t ctrl_id;
  nasd_byte_t ioqueue_name[64];
  nasd_uint64 max_ios_outstanding;
  nasd_timespec_t io_sort_time;
  nasd_timespec_t io_coalesce_time;
  nasd_rpcgen_int8 pad001[8096];
};
typedef struct nasd_ctrl_ioqueue_stat_s nasd_ctrl_ioqueue_stat_t;
typedef nasd_otw_base_t nasd_ctrl_ioqueue_stat_otw_t[1024];
struct nasd_ctrl_io_stat_s {
  nasd_identifier_t ctrl_id;
  nasd_opcount_t num_io_reads;
  nasd_opcount_t num_io_writes;
  nasd_opcount_t auto_flush;
  nasd_opcount_t header_read;
  nasd_opcount_t header_write;
  nasd_opcount_t pull_ios;
  nasd_opcount_t try_raise_pri;
  nasd_opcount_t raise_pri_busy;
  nasd_opcount_t raise_lower_pri;
  nasd_opcount_t raise_pri;
  nasd_opcount_t retries;
  nasd_opcount_t header_force_sync;
  nasd_opcount_t header1_write;
  nasd_opcount_t header2_write;
  nasd_timespec_t io_subsys_time;
  nasd_timespec_t io_outstanding_time;
  nasd_opcount_t coalesce_stop_dir;
  nasd_opcount_t coalesce_stop_contig_read;
  nasd_opcount_t coalesce_stop_align_read;
  nasd_opcount_t coalesce_stop_max_read;
  nasd_opcount_t coalesce_stop_contig_write;
  nasd_opcount_t coalesce_stop_align_write;
  nasd_opcount_t coalesce_stop_max_write;
  nasd_opcount_t io_blocks_enqueued;
  nasd_opcount_t io_blocks_launched;
  nasd_opcount_t io_blocks_finished;
  nasd_opcount_t io_completion_count;
  nasd_rpcgen_int8 pad001[7968];
};
typedef struct nasd_ctrl_io_stat_s nasd_ctrl_io_stat_t;
typedef nasd_otw_base_t nasd_ctrl_io_stat_otw_t[1024];
#define NASD_CTRL_IO_SIZEBUCKETS 1023
struct nasd_ctrl_io_size_stat_s {
  nasd_identifier_t ctrl_id;
  nasd_uint64 io_sizes[1023];
};
typedef struct nasd_ctrl_io_size_stat_s nasd_ctrl_io_size_stat_t;
typedef nasd_otw_base_t nasd_ctrl_io_size_stat_otw_t[1024];
struct nasd_ctrl_trace_basic_s {
  nasd_identifier_t ctrl_id;
  nasd_uint64 enabled;
  nasd_rpcgen_int8 pad001[8176];
};
typedef struct nasd_ctrl_trace_basic_s nasd_ctrl_trace_basic_t;
typedef nasd_otw_base_t nasd_ctrl_trace_basic_otw_t[1024];

#endif /* !__nasd_control_H_ */
