void init_ait3_ssc(struct lu_phy_attr *lu) { MHVTL_DBG(3, "+++ Trace mode pages at %p +++", &lu->mode_pg); ssc_pm.name = name_ait_3; ssc_pm.lu = lu; personality_module_register(&ssc_pm); /* Drive capabilities need to be defined before mode pages */ ssc_pm.drive_supports_append_only_mode = FALSE; ssc_pm.drive_supports_early_warning = TRUE; ssc_pm.drive_supports_prog_early_warning = FALSE; init_ait_inquiry(lu); init_ait_mode_pages(lu); add_log_write_err_counter(lu); add_log_read_err_counter(lu); add_log_sequential_access(lu); add_log_temperature_page(lu); add_log_tape_alert(lu); add_log_tape_usage(lu); add_log_tape_capacity(lu); add_log_data_compression(lu); ssc_pm.native_drive_density = &density_ait3; add_density_support(&lu->den_list, &density_ait1, 0); add_density_support(&lu->den_list, &density_ait2, 1); add_density_support(&lu->den_list, &density_ait3, 1); add_drive_media_list(lu, LOAD_RO, "AIT1"); add_drive_media_list(lu, LOAD_RO, "AIT1 Clean"); add_drive_media_list(lu, LOAD_RW, "AIT2"); add_drive_media_list(lu, LOAD_RO, "AIT2 Clean"); add_drive_media_list(lu, LOAD_RW, "AIT3"); add_drive_media_list(lu, LOAD_RO, "AIT3 Clean"); }
void init_ait3_ssc(struct lu_phy_attr *lu) { MHVTL_DBG(3, "+++ Trace mode pages at %p +++", sm); init_ait_inquiry(lu); ssc_pm.name = name_ait_3; ssc_pm.drive_native_density = medium_density_code_ait3; ssc_pm.media_capabilities = ait3_media_handling; personality_module_register(&ssc_pm); init_default_ssc_mode_pages(sm); /* init default mode pages */ lu->mode_pages = sm; }
void init_ait4_ssc(struct lu_phy_attr *lu) { MHVTL_DBG(3, "+++ Trace mode pages at %p +++", sm); init_ait_inquiry(lu); ssc_pm.name = name_ait_4; ssc_pm.drive_native_density = medium_density_code_ait4; ssc_pm.media_capabilities = ait4_media_handling; ssc_pm.clear_WORM = clear_ait_WORM, ssc_pm.set_WORM = set_ait_WORM, personality_module_register(&ssc_pm); init_default_ssc_mode_pages(sm); /* init default mode pages */ init_ait4_mode_pages(lu, sm); /* init AIT uniq mode pages */ lu->mode_pages = sm; ((struct priv_lu_ssc *)lu->lu_private)->capacity_unit = 1L << 10; /* Capacity units in KBytes */ register_ops(lu, SECURITY_PROTOCOL_IN, ssc_spin); register_ops(lu, SECURITY_PROTOCOL_OUT, ssc_spout); }
void init_ait4_ssc(struct lu_phy_attr *lu) { MHVTL_DBG(3, "+++ Trace mode pages at %p +++", &lu->mode_pg); ssc_pm.name = name_ait_4; ssc_pm.lu = lu; personality_module_register(&ssc_pm); /* Drive capabilities need to be defined before mode pages */ ssc_pm.drive_supports_append_only_mode = FALSE; ssc_pm.drive_supports_early_warning = TRUE; ssc_pm.drive_supports_prog_early_warning = FALSE; init_ait_inquiry(lu); init_ait_mode_pages(lu); add_log_write_err_counter(lu); add_log_read_err_counter(lu); add_log_sequential_access(lu); add_log_temperature_page(lu); add_log_tape_alert(lu); add_log_tape_usage(lu); add_log_tape_capacity(lu); add_log_data_compression(lu); ssc_pm.native_drive_density = &density_ait4; ssc_pm.clear_WORM = clear_ait_WORM, ssc_pm.set_WORM = set_ait_WORM, ((struct priv_lu_ssc *)lu->lu_private)->capacity_unit = 1L << 10; /* Capacity units in KBytes */ register_ops(lu, SECURITY_PROTOCOL_IN, ssc_spin); register_ops(lu, SECURITY_PROTOCOL_OUT, ssc_spout); add_density_support(&lu->den_list, &density_ait2, 0); add_density_support(&lu->den_list, &density_ait3, 1); add_density_support(&lu->den_list, &density_ait4, 1); add_drive_media_list(lu, LOAD_RO, "AIT2"); add_drive_media_list(lu, LOAD_RO, "AIT2 Clean"); add_drive_media_list(lu, LOAD_RW, "AIT3"); add_drive_media_list(lu, LOAD_RO, "AIT3 Clean"); add_drive_media_list(lu, LOAD_RW, "AIT4"); add_drive_media_list(lu, LOAD_RO, "AIT4 Clean"); add_drive_media_list(lu, LOAD_RW, "AIT4 WORM"); }