JavaScript is required to for searching.
Skip Navigation Links
Exit Print View
man pages section 9: DDI and DKI Kernel Functions     Oracle Solaris 10 8/11 Information Library
search filter icon
search icon

Document Information

Preface

Introduction

Kernel Functions for Drivers

adjmsg(9F)

allocb(9F)

allocb_tmpl(9F)

aminphys(9F)

anocancel(9F)

aphysio(9F)

ASSERT(9F)

assert(9F)

atomic_add_16(9F)

atomic_add_16_nv(9F)

atomic_add_32(9F)

atomic_add_32_nv(9F)

atomic_add_64(9F)

atomic_add_64_nv(9F)

atomic_add_8(9F)

atomic_add_8_nv(9F)

atomic_add(9F)

atomic_add_char(9F)

atomic_add_char_nv(9F)

atomic_add_int(9F)

atomic_add_int_nv(9F)

atomic_add_long(9F)

atomic_add_long_nv(9F)

atomic_add_ptr(9F)

atomic_add_ptr_nv(9F)

atomic_add_short(9F)

atomic_add_short_nv(9F)

atomic_and_16(9F)

atomic_and_16_nv(9F)

atomic_and_32(9F)

atomic_and_32_nv(9F)

atomic_and_64(9F)

atomic_and_64_nv(9F)

atomic_and_8(9F)

atomic_and_8_nv(9F)

atomic_and(9F)

atomic_and_uchar(9F)

atomic_and_uchar_nv(9F)

atomic_and_uint(9F)

atomic_and_uint_nv(9F)

atomic_and_ulong(9F)

atomic_and_ulong_nv(9F)

atomic_and_ushort(9F)

atomic_and_ushort_nv(9F)

atomic_bits(9F)

atomic_cas_16(9F)

atomic_cas_32(9F)

atomic_cas_64(9F)

atomic_cas_8(9F)

atomic_cas(9F)

atomic_cas_ptr(9F)

atomic_cas_uchar(9F)

atomic_cas_uint(9F)

atomic_cas_ulong(9F)

atomic_cas_ushort(9F)

atomic_clear_long_excl(9F)

atomic_dec_16(9F)

atomic_dec_16_nv(9F)

atomic_dec_32(9F)

atomic_dec_32_nv(9F)

atomic_dec_64(9F)

atomic_dec_64_nv(9F)

atomic_dec_8(9F)

atomic_dec_8_nv(9F)

atomic_dec(9F)

atomic_dec_ptr(9F)

atomic_dec_ptr_nv(9F)

atomic_dec_uchar(9F)

atomic_dec_uchar_nv(9F)

atomic_dec_uint(9F)

atomic_dec_uint_nv(9F)

atomic_dec_ulong(9F)

atomic_dec_ulong_nv(9F)

atomic_dec_ushort(9F)

atomic_dec_ushort_nv(9F)

atomic_inc_16(9F)

atomic_inc_16_nv(9F)

atomic_inc_32(9F)

atomic_inc_32_nv(9F)

atomic_inc_64(9F)

atomic_inc_64_nv(9F)

atomic_inc_8(9F)

atomic_inc_8_nv(9F)

atomic_inc(9F)

atomic_inc_ptr(9F)

atomic_inc_ptr_nv(9F)

atomic_inc_uchar(9F)

atomic_inc_uchar_nv(9F)

atomic_inc_uint(9F)

atomic_inc_uint_nv(9F)

atomic_inc_ulong(9F)

atomic_inc_ulong_nv(9F)

atomic_inc_ushort(9F)

atomic_inc_ushort_nv(9F)

atomic_ops(9F)

atomic_or_16(9F)

atomic_or_16_nv(9F)

atomic_or_32(9F)

atomic_or_32_nv(9F)

atomic_or_64(9F)

atomic_or_64_nv(9F)

atomic_or_8(9F)

atomic_or_8_nv(9F)

atomic_or(9F)

atomic_or_uchar(9F)

atomic_or_uchar_nv(9F)

atomic_or_uint(9F)

atomic_or_uint_nv(9F)

atomic_or_ulong(9F)

atomic_or_ulong_nv(9F)

atomic_or_ushort(9F)

atomic_or_ushort_nv(9F)

atomic_set_long_excl(9F)

atomic_swap_16(9F)

atomic_swap_32(9F)

atomic_swap_64(9F)

atomic_swap_8(9F)

atomic_swap(9F)

atomic_swap_ptr(9F)

atomic_swap_uchar(9F)

atomic_swap_uint(9F)

atomic_swap_ulong(9F)

atomic_swap_ushort(9F)

backq(9F)

bcanput(9F)

bcanputnext(9F)

bcmp(9F)

bcopy(9F)

bioclone(9F)

biodone(9F)

bioerror(9F)

biofini(9F)

bioinit(9F)

biomodified(9F)

bioreset(9F)

biosize(9F)

biowait(9F)

bp_copyin(9F)

bp_copyout(9F)

bp_mapin(9F)

bp_mapout(9F)

btop(9F)

btopr(9F)

bufcall(9F)

bzero(9F)

canput(9F)

canputnext(9F)

clrbuf(9F)

cmn_err(9F)

condvar(9F)

copyb(9F)

copyin(9F)

copymsg(9F)

copyout(9F)

crgetgid(9F)

crgetgroups(9F)

crgetngroups(9F)

crgetrgid(9F)

crgetruid(9F)

crgetsgid(9F)

crgetsuid(9F)

crgetuid(9F)

crgetzoneid(9F)

csx_AccessConfigurationRegister(9F)

csx_ConvertSize(9F)

csx_ConvertSpeed(9F)

csx_CS_DDI_Info(9F)

csx_DeregisterClient(9F)

csx_DupHandle(9F)

csx_Error2Text(9F)

csx_Event2Text(9F)

csx_FreeHandle(9F)

csx_Get16(9F)

csx_Get32(9F)

csx_Get64(9F)

csx_Get8(9F)

csx_GetEventMask(9F)

csx_GetFirstClient(9F)

csx_GetFirstTuple(9F)

csx_GetHandleOffset(9F)

csx_GetMappedAddr(9F)

csx_GetNextClient(9F)

csx_GetNextTuple(9F)

csx_GetStatus(9F)

csx_GetTupleData(9F)

csx_MakeDeviceNode(9F)

csx_MapLogSocket(9F)

csx_MapMemPage(9F)

csx_ModifyConfiguration(9F)

csx_ModifyWindow(9F)

csx_Parse_CISTPL_BATTERY(9F)

csx_Parse_CISTPL_BYTEORDER(9F)

csx_Parse_CISTPL_CFTABLE_ENTRY(9F)

csx_Parse_CISTPL_CONFIG(9F)

csx_Parse_CISTPL_DATE(9F)

csx_Parse_CISTPL_DEVICE(9F)

csx_Parse_CISTPL_DEVICE_A(9F)

csx_Parse_CISTPL_DEVICEGEO(9F)

csx_Parse_CISTPL_DEVICEGEO_A(9F)

csx_Parse_CISTPL_DEVICE_OA(9F)

csx_Parse_CISTPL_DEVICE_OC(9F)

csx_Parse_CISTPL_FORMAT(9F)

csx_Parse_CISTPL_FUNCE(9F)

csx_Parse_CISTPL_FUNCID(9F)

csx_Parse_CISTPL_GEOMETRY(9F)

csx_Parse_CISTPL_JEDEC_A(9F)

csx_Parse_CISTPL_JEDEC_C(9F)

csx_Parse_CISTPL_LINKTARGET(9F)

csx_Parse_CISTPL_LONGLINK_A(9F)

csx_Parse_CISTPL_LONGLINK_C(9F)

csx_Parse_CISTPL_LONGLINK_MFC(9F)

csx_Parse_CISTPL_MANFID(9F)

csx_Parse_CISTPL_ORG(9F)

csx_Parse_CISTPL_SPCL(9F)

csx_Parse_CISTPL_SWIL(9F)

csx_Parse_CISTPL_VERS_1(9F)

csx_Parse_CISTPL_VERS_2(9F)

csx_ParseTuple(9F)

csx_Put16(9F)

csx_Put32(9F)

csx_Put64(9F)

csx_Put8(9F)

csx_RegisterClient(9F)

csx_ReleaseConfiguration(9F)

csx_ReleaseIO(9F)

csx_ReleaseIRQ(9F)

csx_ReleaseSocketMask(9F)

csx_ReleaseWindow(9F)

csx_RemoveDeviceNode(9F)

csx_RepGet16(9F)

csx_RepGet32(9F)

csx_RepGet64(9F)

csx_RepGet8(9F)

csx_RepPut16(9F)

csx_RepPut32(9F)

csx_RepPut64(9F)

csx_RepPut8(9F)

csx_RequestConfiguration(9F)

csx_RequestIO(9F)

csx_RequestIRQ(9F)

csx_RequestSocketMask(9F)

csx_RequestWindow(9F)

csx_ResetFunction(9F)

csx_SetEventMask(9F)

csx_SetHandleOffset(9F)

csx_ValidateCIS(9F)

cv_broadcast(9F)

cv_destroy(9F)

cv_init(9F)

cv_signal(9F)

cv_timedwait(9F)

cv_timedwait_sig(9F)

cv_wait(9F)

cv_wait_sig(9F)

datamsg(9F)

DB_BASE(9F)

DB_LIM(9F)

DB_REF(9F)

DB_TYPE(9F)

ddi_add_event_handler(9F)

ddi_add_intr(9F)

ddi_add_softintr(9F)

ddi_binding_name(9F)

ddi_btop(9F)

ddi_btopr(9F)

ddi_can_receive_sig(9F)

ddi_cb_register(9F)

ddi_cb_unregister(9F)

ddi_check_acc_handle(9F)

ddi_check_dma_handle(9F)

ddi_copyin(9F)

ddi_copyout(9F)

ddi_create_minor_node(9F)

ddi_cred(9F)

ddi_device_copy(9F)

ddi_device_zero(9F)

ddi_devid_compare(9F)

ddi_devid_free(9F)

ddi_devid_get(9F)

ddi_devid_init(9F)

ddi_devid_register(9F)

ddi_devid_sizeof(9F)

ddi_devid_str_decode(9F)

ddi_devid_str_encode(9F)

ddi_devid_str_free(9F)

ddi_devid_unregister(9F)

ddi_devid_valid(9F)

ddi_dev_is_needed(9F)

ddi_dev_is_sid(9F)

ddi_devmap_segmap(9F)

ddi_dev_nintrs(9F)

ddi_dev_nregs(9F)

ddi_dev_regsize(9F)

ddi_dev_report_fault(9F)

ddi_dma_addr_bind_handle(9F)

ddi_dma_addr_setup(9F)

ddi_dma_alloc_handle(9F)

ddi_dma_buf_bind_handle(9F)

ddi_dma_buf_setup(9F)

ddi_dma_burstsizes(9F)

ddi_dma_coff(9F)

ddi_dma_curwin(9F)

ddi_dma_devalign(9F)

ddi_dmae_1stparty(9F)

ddi_dmae(9F)

ddi_dmae_alloc(9F)

ddi_dmae_disable(9F)

ddi_dmae_enable(9F)

ddi_dmae_getattr(9F)

ddi_dmae_getcnt(9F)

ddi_dmae_getlim(9F)

ddi_dmae_prog(9F)

ddi_dmae_release(9F)

ddi_dmae_stop(9F)

ddi_dma_free(9F)

ddi_dma_free_handle(9F)

ddi_dma_get_attr(9F)

ddi_dma_getwin(9F)

ddi_dma_htoc(9F)

ddi_dma_mem_alloc(9F)

ddi_dma_mem_free(9F)

ddi_dma_movwin(9F)

ddi_dma_nextcookie(9F)

ddi_dma_nextseg(9F)

ddi_dma_nextwin(9F)

ddi_dma_numwin(9F)

ddi_dma_segtocookie(9F)

ddi_dma_set_sbus64(9F)

ddi_dma_setup(9F)

ddi_dma_sync(9F)

ddi_dma_unbind_handle(9F)

ddi_driver_major(9F)

ddi_driver_name(9F)

ddi_enter_critical(9F)

ddi_exit_critical(9F)

ddi_ffs(9F)

ddi_fls(9F)

ddi_fm_acc_err_clear(9F)

ddi_fm_acc_err_get(9F)

ddi_fm_capable(9F)

ddi_fm_dma_err_clear(9F)

ddi_fm_dma_err_get(9F)

ddi_fm_ereport_post(9F)

ddi_fm_fini(9F)

ddi_fm_handler_register(9F)

ddi_fm_handler_unregister(9F)

ddi_fm_init(9F)

ddi_fm_service_impact(9F)

ddi_get16(9F)

ddi_get32(9F)

ddi_get64(9F)

ddi_get8(9F)

ddi_getb(9F)

ddi_get_cred(9F)

ddi_get_devstate(9F)

ddi_get_driver_private(9F)

ddi_get_eventcookie(9F)

ddi_get_iblock_cookie(9F)

ddi_getiminor(9F)

ddi_get_instance(9F)

ddi_get_kt_did(9F)

ddi_getl(9F)

ddi_get_lbolt64(9F)

ddi_get_lbolt(9F)

ddi_getll(9F)

ddi_getlongprop(9F)

ddi_getlongprop_buf(9F)

ddi_get_name(9F)

ddi_get_parent(9F)

ddi_get_pid(9F)

ddi_getprop(9F)

ddi_getproplen(9F)

ddi_get_soft_iblock_cookie(9F)

ddi_get_soft_state(9F)

ddi_get_time(9F)

ddi_getw(9F)

ddi_in_panic(9F)

ddi_intr_add_handler(9F)

ddi_intr_add_softint(9F)

ddi_intr_alloc(9F)

ddi_intr_block_disable(9F)

ddi_intr_block_enable(9F)

ddi_intr_clr_mask(9F)

ddi_intr_disable(9F)

ddi_intr_dup_handler(9F)

ddi_intr_enable(9F)

ddi_intr_free(9F)

ddi_intr_get_cap(9F)

ddi_intr_get_hilevel_pri(9F)

ddi_intr_get_navail(9F)

ddi_intr_get_nintrs(9F)

ddi_intr_get_pending(9F)

ddi_intr_get_pri(9F)

ddi_intr_get_softint_pri(9F)

ddi_intr_get_supported_types(9F)

ddi_intr_hilevel(9F)

ddi_intr_remove_handler(9F)

ddi_intr_remove_softint(9F)

ddi_intr_set_cap(9F)

ddi_intr_set_mask(9F)

ddi_intr_set_nreq(9F)

ddi_intr_set_pri(9F)

ddi_intr_set_softint_pri(9F)

ddi_intr_trigger_softint(9F)

ddi_io_get16(9F)

ddi_io_get32(9F)

ddi_io_get8(9F)

ddi_io_getb(9F)

ddi_io_getl(9F)

ddi_io_getw(9F)

ddi_iomin(9F)

ddi_iopb_alloc(9F)

ddi_iopb_free(9F)

ddi_io_put16(9F)

ddi_io_put32(9F)

ddi_io_put8(9F)

ddi_io_putb(9F)

ddi_io_putl(9F)

ddi_io_putw(9F)

ddi_io_rep_get16(9F)

ddi_io_rep_get32(9F)

ddi_io_rep_get8(9F)

ddi_io_rep_getb(9F)

ddi_io_rep_getl(9F)

ddi_io_rep_getw(9F)

ddi_io_rep_put16(9F)

ddi_io_rep_put32(9F)

ddi_io_rep_put8(9F)

ddi_io_rep_putb(9F)

ddi_io_rep_putl(9F)

ddi_io_rep_putw(9F)

ddi_log_sysevent(9F)

ddi_map_regs(9F)

ddi_mem_alloc(9F)

ddi_mem_free(9F)

ddi_mem_get16(9F)

ddi_mem_get32(9F)

ddi_mem_get64(9F)

ddi_mem_get8(9F)

ddi_mem_getb(9F)

ddi_mem_getl(9F)

ddi_mem_getll(9F)

ddi_mem_getw(9F)

ddi_mem_put16(9F)

ddi_mem_put32(9F)

ddi_mem_put64(9F)

ddi_mem_put8(9F)

ddi_mem_putb(9F)

ddi_mem_putl(9F)

ddi_mem_putll(9F)

ddi_mem_putw(9F)

ddi_mem_rep_get16(9F)

ddi_mem_rep_get32(9F)

ddi_mem_rep_get64(9F)

ddi_mem_rep_get8(9F)

ddi_mem_rep_getb(9F)

ddi_mem_rep_getl(9F)

ddi_mem_rep_getll(9F)

ddi_mem_rep_getw(9F)

ddi_mem_rep_put16(9F)

ddi_mem_rep_put32(9F)

ddi_mem_rep_put64(9F)

ddi_mem_rep_put8(9F)

ddi_mem_rep_putb(9F)

ddi_mem_rep_putl(9F)

ddi_mem_rep_putll(9F)

ddi_mem_rep_putw(9F)

ddi_mmap_get_model(9F)

ddi_model_convert_from(9F)

ddi_node_name(9F)

ddi_no_info(9F)

ddi_peek16(9F)

ddi_peek32(9F)

ddi_peek64(9F)

ddi_peek8(9F)

ddi_peek(9F)

ddi_peekc(9F)

ddi_peekd(9F)

ddi_peekl(9F)

ddi_peeks(9F)

ddi_periodic_add(9F)

ddi_periodic_delete(9F)

ddi_poke16(9F)

ddi_poke32(9F)

ddi_poke64(9F)

ddi_poke8(9F)

ddi_poke(9F)

ddi_pokec(9F)

ddi_poked(9F)

ddi_pokel(9F)

ddi_pokes(9F)

ddi_prop_create(9F)

ddi_prop_exists(9F)

ddi_prop_free(9F)

ddi_prop_get_int64(9F)

ddi_prop_get_int(9F)

ddi_prop_lookup(9F)

ddi_prop_lookup_byte_array(9F)

ddi_prop_lookup_int64_array(9F)

ddi_prop_lookup_int_array(9F)

ddi_prop_lookup_string(9F)

ddi_prop_lookup_string_array(9F)

ddi_prop_modify(9F)

ddi_prop_op(9F)

ddi_prop_remove(9F)

ddi_prop_remove_all(9F)

ddi_prop_undefine(9F)

ddi_prop_update(9F)

ddi_prop_update_byte_array(9F)

ddi_prop_update_int64(9F)

ddi_prop_update_int64_array(9F)

ddi_prop_update_int(9F)

ddi_prop_update_int_array(9F)

ddi_prop_update_string(9F)

ddi_prop_update_string_array(9F)

ddi_ptob(9F)

ddi_put16(9F)

ddi_put32(9F)

ddi_put64(9F)

ddi_put8(9F)

ddi_putb(9F)

ddi_putl(9F)

ddi_putll(9F)

ddi_putw(9F)

ddi_regs_map_free(9F)

ddi_regs_map_setup(9F)

ddi_remove_event_handler(9F)

ddi_remove_intr(9F)

ddi_remove_minor_node(9F)

ddi_remove_softintr(9F)

ddi_removing_power(9F)

ddi_rep_get16(9F)

ddi_rep_get32(9F)

ddi_rep_get64(9F)

ddi_rep_get8(9F)

ddi_rep_getb(9F)

ddi_rep_getl(9F)

ddi_rep_getll(9F)

ddi_rep_getw(9F)

ddi_report_dev(9F)

ddi_rep_put16(9F)

ddi_rep_put32(9F)

ddi_rep_put64(9F)

ddi_rep_put8(9F)

ddi_rep_putb(9F)

ddi_rep_putl(9F)

ddi_rep_putll(9F)

ddi_rep_putw(9F)

ddi_root_node(9F)

ddi_segmap(9F)

ddi_segmap_setup(9F)

ddi_set_driver_private(9F)

ddi_slaveonly(9F)

ddi_soft_state(9F)

ddi_soft_state_fini(9F)

ddi_soft_state_free(9F)

ddi_soft_state_init(9F)

ddi_soft_state_zalloc(9F)

ddi_strtol(9F)

ddi_strtoll(9F)

ddi_strtoul(9F)

ddi_strtoull(9F)

ddi_taskq_create(9F)

ddi_taskq_destroy(9F)

ddi_taskq_dispatch(9F)

ddi_taskq_resume(9F)

ddi_taskq_suspend(9F)

ddi_taskq_wait(9F)

ddi_trigger_softintr(9F)

ddi_umem_alloc(9F)

ddi_umem_free(9F)

ddi_umem_iosetup(9F)

ddi_umem_lock(9F)

ddi_umem_unlock(9F)

ddi_unmap_regs(9F)

delay(9F)

desballoc(9F)

devmap_default_access(9F)

devmap_devmem_setup(9F)

devmap_do_ctxmgt(9F)

devmap_load(9F)

devmap_set_ctx_timeout(9F)

devmap_setup(9F)

devmap_umem_setup(9F)

devmap_unload(9F)

disksort(9F)

dlbindack(9F)

dlerrorack(9F)

dlokack(9F)

dlphysaddrack(9F)

dluderrorind(9F)

drv_getparm(9F)

drv_hztousec(9F)

drv_priv(9F)

drv_usectohz(9F)

drv_usecwait(9F)

dupb(9F)

dupmsg(9F)

enableok(9F)

esballoc(9F)

esbbcall(9F)

flushband(9F)

flushq(9F)

freeb(9F)

freemsg(9F)

free_pktiopb(9F)

freerbuf(9F)

freezestr(9F)

geterror(9F)

gethrtime(9F)

getmajor(9F)

getminor(9F)

get_pktiopb(9F)

getq(9F)

getrbuf(9F)

gld(9F)

gld_intr(9F)

gld_mac_alloc(9F)

gld_mac_free(9F)

gld_recv(9F)

gld_register(9F)

gld_sched(9F)

gld_unregister(9F)

hat_getkpfnum(9F)

hook_alloc(9F)

hook_free(9F)

id32_alloc(9F)

id32_free(9F)

id32_lookup(9F)

inb(9F)

inl(9F)

insq(9F)

inw(9F)

IOC_CONVERT_FROM(9F)

kmem_alloc(9F)

kmem_cache_alloc(9F)

kmem_cache_create(9F)

kmem_cache_destroy(9F)

kmem_cache_free(9F)

kmem_free(9F)

kmem_zalloc(9F)

kstat_create(9F)

kstat_delete(9F)

kstat_install(9F)

kstat_named_init(9F)

kstat_named_setstr(9F)

kstat_queue(9F)

kstat_runq_back_to_waitq(9F)

kstat_runq_enter(9F)

kstat_runq_exit(9F)

kstat_waitq_enter(9F)

kstat_waitq_exit(9F)

kstat_waitq_to_runq(9F)

ldi_add_event_handler(9F)

ldi_aread(9F)

ldi_awrite(9F)

ldi_close(9F)

ldi_devmap(9F)

ldi_dump(9F)

ldi_get_dev(9F)

ldi_get_devid(9F)

ldi_get_eventcookie(9F)

ldi_get_minor_name(9F)

ldi_getmsg(9F)

ldi_get_otyp(9F)

ldi_get_size(9F)

ldi_ident_from_dev(9F)

ldi_ident_from_dip(9F)

ldi_ident_from_stream(9F)

ldi_ident_release(9F)

ldi_ioctl(9F)

ldi_open_by_dev(9F)

ldi_open_by_devid(9F)

ldi_open_by_name(9F)

ldi_poll(9F)

ldi_prop_exists(9F)

ldi_prop_get_int64(9F)

ldi_prop_get_int(9F)

ldi_prop_lookup_byte_array(9F)

ldi_prop_lookup_int64_array(9F)

ldi_prop_lookup_int_array(9F)

ldi_prop_lookup_string(9F)

ldi_prop_lookup_string_array(9F)

ldi_putmsg(9F)

ldi_read(9F)

ldi_remove_event_handler(9F)

ldi_strategy(9F)

ldi_write(9F)

linkb(9F)

mac(9F)

mac_alloc(9F)

mac_fini_ops(9F)

mac_free(9F)

mac_hcksum_get(9F)

mac_hcksum_set(9F)

mac_init_ops(9F)

mac_link_update(9F)

mac_lso_get(9F)

mac_prop_info_set_default_link_flowctrl(9F)

mac_prop_info_set_default_str(9F)

mac_prop_info_set_default_uint8(9F)

mac_prop_info_set_perm(9F)

mac_prop_info_set_range_uint32(9F)

mac_register(9F)

mac_rx(9F)

mac_tx_update(9F)

mac_unregister(9F)

makecom(9F)

makecom_g0(9F)

makecom_g0_s(9F)

makecom_g1(9F)

makecom_g5(9F)

makedevice(9F)

max(9F)

MBLKHEAD(9F)

MBLKIN(9F)

MBLKL(9F)

MBLKSIZE(9F)

MBLKTAIL(9F)

mcopyin(9F)

mcopymsg(9F)

mcopyout(9F)

membar_consumer(9F)

membar_enter(9F)

membar_exit(9F)

membar_ops(9F)

membar_producer(9F)

memchr(9F)

memcmp(9F)

memcpy(9F)

memmove(9F)

memset(9F)

merror(9F)

mexchange(9F)

min(9F)

minphys(9F)

mioc2ack(9F)

miocack(9F)

miocnak(9F)

miocpullup(9F)

mkiocb(9F)

mod_info(9F)

mod_install(9F)

mod_remove(9F)

msgdsize(9F)

msgpullup(9F)

msgsize(9F)

mt-streams(9F)

mutex(9F)

mutex_destroy(9F)

mutex_enter(9F)

mutex_exit(9F)

mutex_init(9F)

mutex_owned(9F)

mutex_tryenter(9F)

net_event_notify_register(9F)

net_event_notify_unregister(9F)

net_getifname(9F)

net_getlifaddr(9F)

net_getmtu(9F)

net_getnetid(9F)

net_getpmtuenabled(9F)

net_hook_register(9F)

net_hook_unregister(9F)

netinfo(9F)

net_inject(9F)

net_inject_alloc(9F)

net_inject_free(9F)

net_instance_alloc(9F)

net_instance_free(9F)

net_instance_notify_register(9F)

net_instance_notify_unregister(9F)

net_instance_protocol_unregister(9F)

net_instance_register(9F)

net_instance_unregister(9F)

net_ispartialchecksum(9F)

net_isvalidchecksum(9F)

net_kstat_create(9F)

net_kstat_delete(9F)

net_lifgetnext(9F)

net_netidtozonid(9F)

net_phygetnext(9F)

net_phylookup(9F)

net_protocol_lookup(9F)

net_protocol_notify_register(9F)

net_protocol_release(9F)

net_protocol_walk(9F)

net_routeto(9F)

net_zoneidtonetid(9F)

nochpoll(9F)

nodev(9F)

noenable(9F)

nulldev(9F)

numtos(9F)

nv_alloc_fini(9F)

nv_alloc_init(9F)

nvlist_add_boolean(9F)

nvlist_add_boolean_array(9F)

nvlist_add_boolean_value(9F)

nvlist_add_byte(9F)

nvlist_add_byte_array(9F)

nvlist_add_int16(9F)

nvlist_add_int16_array(9F)

nvlist_add_int32(9F)

nvlist_add_int32_array(9F)

nvlist_add_int64(9F)

nvlist_add_int64_array(9F)

nvlist_add_int8(9F)

nvlist_add_int8_array(9F)

nvlist_add_nvlist(9F)

nvlist_add_nvlist_array(9F)

nvlist_add_nvpair(9F)

nvlist_add_string(9F)

nvlist_add_string_array(9F)

nvlist_add_uint16(9F)

nvlist_add_uint16_array(9F)

nvlist_add_uint32(9F)

nvlist_add_uint32_array(9F)

nvlist_add_uint64(9F)

nvlist_add_uint64_array(9F)

nvlist_add_uint8(9F)

nvlist_add_uint8_array(9F)

nvlist_alloc(9F)

nvlist_dup(9F)

nvlist_free(9F)

nvlist_lookup_boolean(9F)

nvlist_lookup_boolean_array(9F)

nvlist_lookup_boolean_value(9F)

nvlist_lookup_byte(9F)

nvlist_lookup_byte_array(9F)

nvlist_lookup_int16(9F)

nvlist_lookup_int16_array(9F)

nvlist_lookup_int32(9F)

nvlist_lookup_int32_array(9F)

nvlist_lookup_int64(9F)

nvlist_lookup_int64_array(9F)

nvlist_lookup_int8(9F)

nvlist_lookup_int8_array(9F)

nvlist_lookup_nvlist(9F)

nvlist_lookup_nvlist_array(9F)

nvlist_lookup_pairs(9F)

nvlist_lookup_string(9F)

nvlist_lookup_string_array(9F)

nvlist_lookup_uint16(9F)

nvlist_lookup_uint16_array(9F)

nvlist_lookup_uint32(9F)

nvlist_lookup_uint32_array(9F)

nvlist_lookup_uint64(9F)

nvlist_lookup_uint64_array(9F)

nvlist_lookup_uint8(9F)

nvlist_lookup_uint8_array(9F)

nvlist_merge(9F)

nvlist_next_nvpair(9F)

nvlist_pack(9F)

nvlist_remove(9F)

nvlist_remove_all(9F)

nvlist_size(9F)

nvlist_t(9F)

nvlist_unpack(9F)

nvlist_xalloc(9F)

nvlist_xdup(9F)

nvlist_xpack(9F)

nvlist_xunpack(9F)

nvpair_name(9F)

nvpair_type(9F)

nvpair_value_boolean_array(9F)

nvpair_value_byte(9F)

nvpair_value_byte_array(9F)

nvpair_value_int16(9F)

nvpair_value_int16_array(9F)

nvpair_value_int32(9F)

nvpair_value_int32_array(9F)

nvpair_value_int64(9F)

nvpair_value_int64_array(9F)

nvpair_value_int8(9F)

nvpair_value_int8_array(9F)

nvpair_value_nvlist(9F)

nvpair_value_nvlist_array(9F)

nvpair_value_string(9F)

nvpair_value_string_array(9F)

nvpair_value_uint16(9F)

nvpair_value_uint16_array(9F)

nvpair_value_uint32(9F)

nvpair_value_uint32_array(9F)

nvpair_value_uint64(9F)

nvpair_value_uint64_array(9F)

nvpair_value_uint8(9F)

nvpair_value_uint8_array(9F)

OTHERQ(9F)

otherq(9F)

outb(9F)

outl(9F)

outw(9F)

pci_config_get16(9F)

pci_config_get32(9F)

pci_config_get64(9F)

pci_config_get8(9F)

pci_config_getb(9F)

pci_config_getl(9F)

pci_config_getll(9F)

pci_config_getw(9F)

pci_config_put16(9F)

pci_config_put32(9F)

pci_config_put64(9F)

pci_config_put8(9F)

pci_config_putb(9F)

pci_config_putl(9F)

pci_config_putll(9F)

pci_config_putw(9F)

pci_config_setup(9F)

pci_config_teardown(9F)

pci_ereport_post(9F)

pci_ereport_setup(9F)

pci_ereport_teardown(9F)

pci_report_pmcap(9F)

pci_restore_config_regs(9F)

pci_save_config_regs(9F)

physio(9F)

pm_busy_component(9F)

pm_idle_component(9F)

pm_lower_power(9F)

pm_power_has_changed(9F)

pm_raise_power(9F)

pm_trans_check(9F)

pollwakeup(9F)

priv_getbyname(9F)

priv_policy(9F)

priv_policy_choice(9F)

priv_policy_only(9F)

proc_ref(9F)

proc_signal(9F)

proc_unref(9F)

ptob(9F)

pullupmsg(9F)

put(9F)

putbq(9F)

putctl1(9F)

putctl(9F)

putnext(9F)

putnextctl1(9F)

putnextctl(9F)

putq(9F)

qassociate(9F)

qbufcall(9F)

qenable(9F)

qprocsoff(9F)

qprocson(9F)

qreply(9F)

qsize(9F)

qtimeout(9F)

qunbufcall(9F)

quntimeout(9F)

qwait(9F)

qwait_sig(9F)

qwriter(9F)

RD(9F)

rd(9F)

repinsb(9F)

repinsd(9F)

repinsw(9F)

repoutsb(9F)

repoutsd(9F)

repoutsw(9F)

rmalloc(9F)

rmallocmap(9F)

rmallocmap_wait(9F)

rmalloc_wait(9F)

rmfree(9F)

rmfreemap(9F)

rmvb(9F)

rmvq(9F)

rw_destroy(9F)

rw_downgrade(9F)

rw_enter(9F)

rw_exit(9F)

rw_init(9F)

rwlock(9F)

rw_read_locked(9F)

rw_tryenter(9F)

rw_tryupgrade(9F)

SAMESTR(9F)

samestr(9F)

scsi_abort(9F)

scsi_alloc_consistent_buf(9F)

scsi_cname(9F)

scsi_destroy_pkt(9F)

scsi_dmafree(9F)

scsi_dmaget(9F)

scsi_dname(9F)

scsi_errmsg(9F)

scsi_ext_sense_fields(9F)

scsi_find_sense_descr(9F)

scsi_free_consistent_buf(9F)

scsi_get_device_type_scsi_options(9F)

scsi_hba_attach(9F)

scsi_hba_attach_setup(9F)

scsi_hba_detach(9F)

scsi_hba_fini(9F)

scsi_hba_init(9F)

scsi_hba_lookup_capstr(9F)

scsi_hba_pkt_alloc(9F)

scsi_hba_pkt_comp(9F)

scsi_hba_pkt_free(9F)

scsi_hba_probe(9F)

scsi_hba_tran_alloc(9F)

scsi_hba_tran_free(9F)

scsi_ifgetcap(9F)

scsi_ifsetcap(9F)

scsi_init_pkt(9F)

scsi_log(9F)

scsi_mname(9F)

scsi_pktalloc(9F)

scsi_pktfree(9F)

scsi_poll(9F)

scsi_probe(9F)

scsi_resalloc(9F)

scsi_reset(9F)

scsi_reset_notify(9F)

scsi_resfree(9F)

scsi_rname(9F)

scsi_sense_asc(9F)

scsi_sense_ascq(9F)

scsi_sense_cmdspecific_uint64(9F)

scsi_sense_info_uint64(9F)

scsi_sense_key(9F)

scsi_setup_cdb(9F)

scsi_slave(9F)

scsi_sname(9F)

scsi_sync_pkt(9F)

scsi_transport(9F)

scsi_unprobe(9F)

scsi_unslave(9F)

scsi_validate_sense(9F)

scsi_vu_errmsg(9F)

sema_destroy(9F)

sema_init(9F)

sema_p(9F)

semaphore(9F)

sema_p_sig(9F)

sema_tryp(9F)

sema_v(9F)

SIZEOF_PTR(9F)

SIZEOF_STRUCT(9F)

snprintf(9F)

sprintf(9F)

stoi(9F)

strcasecmp(9F)

strchr(9F)

strcmp(9F)

strcpy(9F)

strlcat(9F)

strlcpy(9F)

strlen(9F)

strlog(9F)

strncasecmp(9F)

strncat(9F)

strncmp(9F)

strncpy(9F)

strqget(9F)

strqset(9F)

strrchr(9F)

strspn(9F)

STRUCT_BUF(9F)

STRUCT_DECL(9F)

STRUCT_FADDR(9F)

STRUCT_FGET(9F)

STRUCT_FGETP(9F)

STRUCT_FSET(9F)

STRUCT_FSETP(9F)

STRUCT_HANDLE(9F)

STRUCT_INIT(9F)

STRUCT_SET_HANDLE(9F)

STRUCT_SIZE(9F)

swab(9F)

taskq(9F)

taskq_suspended(9F)

testb(9F)

timeout(9F)

u8_strcmp(9F)

u8_textprep_str(9F)

u8_validate(9F)

uconv_u16tou32(9F)

uconv_u16tou8(9F)

uconv_u32tou16(9F)

uconv_u32tou8(9F)

uconv_u8tou16(9F)

uconv_u8tou32(9F)

uiomove(9F)

unbufcall(9F)

unfreezestr(9F)

unlinkb(9F)

untimeout(9F)

ureadc(9F)

usb_alloc_bulk_req(9F)

usb_alloc_ctrl_req(9F)

usb_alloc_intr_req(9F)

usb_alloc_isoc_req(9F)

usb_alloc_request(9F)

usb_client_attach(9F)

usb_client_detach(9F)

usb_clr_feature(9F)

usb_create_pm_components(9F)

usb_free_bulk_req(9F)

usb_free_ctrl_req(9F)

usb_free_descr_tree(9F)

usb_free_dev_data(9F)

usb_free_intr_req(9F)

usb_free_isoc_req(9F)

usb_get_addr(9F)

usb_get_alt_if(9F)

usb_get_cfg(9F)

usb_get_current_frame_number(9F)

usb_get_dev_data(9F)

usb_get_if_number(9F)

usb_get_max_pkts_per_isoc_request(9F)

usb_get_status(9F)

usb_get_string_descr(9F)

usb_handle_remote_wakeup(9F)

usb_lookup_ep_data(9F)

usb_owns_device(9F)

usb_parse_data(9F)

usb_pipe_bulk_xfer(9F)

usb_pipe_close(9F)

usb_pipe_ctrl_xfer(9F)

usb_pipe_ctrl_xfer_wait(9F)

usb_pipe_drain_reqs(9F)

usb_pipe_get_max_bulk_transfer_size(9F)

usb_pipe_get_private(9F)

usb_pipe_get_state(9F)

usb_pipe_intr_xfer(9F)

usb_pipe_isoc_xfer(9F)

usb_pipe_open(9F)

usb_pipe_reset(9F)

usb_pipe_set_private(9F)

usb_pipe_stop_intr_polling(9F)

usb_pipe_stop_isoc_polling(9F)

usb_print_descr_tree(9F)

usb_register_hotplug_cbs(9F)

usb_set_alt_if(9F)

usb_set_cfg(9F)

usb_unregister_hotplug_cbs(9F)

uwritec(9F)

va_arg(9F)

va_copy(9F)

va_end(9F)

va_start(9F)

vcmn_err(9F)

vsprintf(9F)

WR(9F)

wr(9F)

zcmn_err(9F)

scsi_hba_attach_setup

, scsi_hba_attach

, scsi_hba_detach

- SCSI HBA attach and detach routines

Synopsis

#include <sys/scsi/scsi.h>



int scsi_hba_attach_setup(dev_info_t *dip, ddi_dma_attr_t *hba_dma_attr,
     scsi_hba_tran_t *hba_tran, int hba_flags);
int scsi_hba_attach(dev_info_t *dip, ddi_dma_lim_t *hba_lim, scsi_hba_tran_t *hba_tran,
     int hba_flags, void *hba_options);
int scsi_hba_detach(dev_info_t *dip);

Interface Level

Solaris architecture specific (Solaris DDI).

Parameters

dip

A pointer to the dev_info_t structure, referring to the instance of the HBA device.

hba_lim

A pointer to a ddi_dma_lim(9S) structure.

hba_tran

A pointer to a scsi_hba_tran(9S) structure.

hba_flags

Flag modifiers. The only defined flag value is SCSI_HBA_TRAN_CLONE.

hba_options

Optional features provided by the HBA driver for future extensions; must be NULL.

hba_dma_attr

A pointer to a ddi_dma_attr(9S) structure.

Description

scsi_hba_attach_setup() is the recommended interface over scsi_hba_attach().

For scsi_hba_attach_setup() and scsi_hba_attach():

scsi_hba_attach() registers the DMA limits hba_lim and the transport vectors hba_tran of each instance of the HBA device defined by dip. scsi_hba_attach_setup() registers the DMA attributes hba_dma_attr and the transport vectors hba_tran of each instance of the HBA device defined by dip. The HBA driver can pass different DMA limits or DMA attributes, and transport vectors for each instance of the device, as necessary, to support any constraints imposed by the HBA itself.

scsi_hba_attach() and scsi_hba_attach_setup() use the dev_bus_ops field in the dev_ops(9S) structure. The HBA driver should initialize this field to NULL before calling scsi_hba_attach() or scsi_hba_attach_setup().

If SCSI_HBA_TRAN_CLONE is requested in hba_flags, the hba_tran structure will be cloned once for each target attached to the HBA. The cloning of the structure will occur before the tran_tgt_init(9E) entry point is called to initialize a target. At all subsequent HBA entry points, including tran_tgt_init(9E), the scsi_hba_tran_t structure passed as an argument or found in a scsi_address structure will be the 'cloned' scsi_hba_tran_t structure, thus allowing the HBA to use the tran_tgt_private field in the scsi_hba_tran_t structure to point to per-target data. The HBA must take care to free only the same scsi_hba_tran_t structure it allocated when detaching; all 'cloned' scsi_hba_tran_t structures allocated by the system will be freed by the system.

scsi_hba_attach() and scsi_hba_attach_setup() attach a number of integer-valued properties to dip, unless properties of the same name are already attached to the node. An HBA driver should retrieve these configuration parameters via ddi_prop_get_int(9F), and respect any settings for features provided the HBA.

scsi-options

Optional SCSI configuration bits

SCSI_OPTIONS_DR

If not set, the HBA should not grant Disconnect privileges to target devices.

SCSI_OPTIONS_LINK

If not set, the HBA should not enable Linked Commands.

SCSI_OPTIONS_TAG

If not set, the HBA should not operate in Command Tagged Queueing mode.

SCSI_OPTIONS_PARITY

If not set, the HBA should not operate in parity mode.

SCSI_OPTIONS_QAS

If not set, the HBA should not make use of the Quick Arbitration Select feature. Consult your Sun hardware documentation to determine whether your machine supports QAS.

SCSI_OPTIONS_FAST

If not set, the HBA should not operate the bus in FAST SCSImode.

SCSI_OPTIONS_FAST20

If not set, the HBA should not operate the bus in FAST20 SCSI mode.

SCSI_OPTIONS_FAST40

If not set, the HBA should not operate the bus in FAST40 SCSI mode.

SCSI_OPTIONS_FAST80

If not set, the HBA should not operate the bus in FAST80 SCSI mode.

SCSI_OPTIONS_FAST160

If not set, the HBA should not operate the bus in FAST160 SCSI mode.

SCSI_OPTIONS_FAST320

If not set, the HBA should not operate the bus in FAST320 SCSI mode.

SCSI_OPTIONS_WIDE

If not set, the HBA should not operate the bus in WIDE SCSI mode.

SCSI_OPTIONS_SYNC

If not set, the HBA should not operate the bus in synchronous transfer mode.

scsi-reset-delay

SCSI bus or device reset recovery time, in milliseconds.

scsi-selection-timeout

Default SCSI selection phase timeout value, in milliseconds. Please refer to individual HBA man pages for any HBA-specific information

For scsi_hba_detach():

scsi_hba_detach() removes the reference to the DMA limits or attributes structure and the transport vector for the given instance of an HBA driver.

Return Values

scsi_hba_attach(), scsi_hba_attach_setup(), and scsi_hba_detach() return DDI_SUCCESS if the function call succeeds, and return DDI_FAILURE on failure.

Context

scsi_hba_attach() and scsi_hba_attach_setup() should be called from attach(9E). scsi_hba_detach() should be called from detach(9E).

See Also

attach(9E), detach(9E), tran_tgt_init(9E), ddi_prop_get_int(9F), ddi_dma_attr(9S), ddi_dma_lim(9S), dev_ops(9S), scsi_address(9S), scsi_hba_tran(9S)

Writing Device Drivers

Notes

It is the HBA driver's responsibility to ensure that no more transport requests will be taken on behalf of any SCSI target device driver after scsi_hba_detach() is called.

The scsi_hba_attach() function is obsolete and will be discontinued in a future release. This function is replaced by scsi_hba_attach_setup().