ice_copy_and_init_pkg(9)
π ice_copy_and_init_pkg(9) β Kernel API Manual π
πΈ NAME πΈ
ice_copy_and_init_pkg β initialize/download a copy of the package β bestie, this is the copy-first-then-init glow-up π
β¨
β¨ SYNOPSIS β¨
enum ice_ddp_state ice_copy_and_init_pkg (struct ice_hw *hw , const u8 *buf , u32 len );
π ARGUMENTS π
hwβ pointer to the hardware structure. the main-character struct πbufβ pointer to the package buffer. the package source we're working with β¨lenβ size of the package buffer. how many bytes we're dealing with π¦
π DESCRIPTION π
Okay so ice_copy_and_init_pkg does exactly what the name says: it copies the package buffer, and then calls ice_init_pkg to initialize the copied package contents. copy first, init second, slay π
The copying is necessary if the package buffer supplied is constant, or if the memory may disappear shortly after calling this function. like, secure the data before it ghosts you π
If the package buffer resides in the data segment and can be modified, the caller is free to use ice_init_pkg instead of ice_copy_and_init_pkg. no copy needed, go straight to init, iykyk β¨
However, if the package buffer needs to be copied first, such as when being read from a file, the caller should use ice_copy_and_init_pkg. file-read situation says copy first, periodt π
This function will first copy the package buffer, before calling ice_init_pkg. The caller is free to immediately destroy the original package buffer, as the new copy will be managed by this function and related routines. so iconic β the new copy is handled for you, original can go off the grid π«Ά
π SEE ALSO π
Kernel file: ./drivers/net/ethernet/intel/ice/ice_ddp.c go read the source, bestie π
The whole friend group:
ice_verify_pkg(9)ice_free_seg(9)ice_chk_pkg_version(9)ice_pkg_val_buf(9)ice_find_buf_table(9)ice_pkg_enum_buf(9)ice_pkg_advance_sect(9)ice_pkg_enum_section(9)ice_pkg_enum_entry(9)ice_sw_fv_handler(9)ice_get_prof_index_max(9)ice_get_ddp_pkg_state(9)ice_init_pkg_regs(9)ice_marker_ptype_tcam_handler(9)ice_add_dvm_hint(9)ice_add_tunnel_hint(9)ice_label_enum_handler(9)ice_enum_labels(9)ice_boost_tcam_handler(9)ice_find_boost_entry(9)ice_is_init_pkg_successful(9)ice_pkg_buf_alloc(9)ice_get_sw_prof_type(9)ice_get_sw_fv_bitmap(9)ice_get_sw_fv_list(9)ice_init_prof_result_bm(9)ice_pkg_buf_free(9)ice_pkg_buf_reserve_section(9)ice_pkg_buf_alloc_section(9)ice_pkg_buf_alloc_single_section(9)ice_pkg_buf_get_active_sections(9)ice_pkg_buf(9)ice_acquire_global_cfg_lock(9)ice_release_global_cfg_lock(9)ice_aq_download_pkg(9)ice_is_buffer_metadata(9)struct ice_ddp_send_ctx(9)ice_ddp_send_hunk(9)ice_dwnld_cfg_bufs_no_lock(9)ice_get_pkg_seg_by_idx(9)ice_is_signing_seg_at_idx(9)ice_is_signing_seg_type_at_idx(9)ice_download_pkg_sig_seg(9)ice_download_pkg_config_seg(9)ice_dwnld_sign_and_cfg_segs(9)ice_match_signing_seg(9)ice_post_dwnld_pkg_actions(9)ice_download_pkg_with_sig_seg(9)ice_dwnld_cfg_bufs(9)ice_download_pkg_without_sig_seg(9)ice_download_pkg(9)ice_aq_get_pkg_info_list(9)ice_aq_update_pkg(9)ice_aq_upload_section(9)ice_update_pkg_no_lock(9)ice_update_pkg(9)ice_find_seg_in_pkg(9)ice_has_signing_seg(9)ice_get_pkg_segment_id(9)ice_get_pkg_sign_type(9)ice_get_signing_req(9)ice_init_pkg_info(9)ice_get_pkg_info(9)ice_chk_pkg_compat(9)ice_init_pkg_hints(9)ice_fill_hw_ptype(9)ice_init_pkg(9)ice_get_set_tx_topo(9)ice_cfg_tx_topo(9)
π Kernel API Manual Β· October 2026 Β· source dir ./drivers/net/ethernet/intel/ice β bye bestie, go copy-then-init responsibly π
β¨
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms