/linux-4.4.14/drivers/staging/rtl8188eu/hal/ |
D | hal_intf.c | 27 void rtw_hal_chip_configure(struct adapter *adapt) in rtw_hal_chip_configure() argument 29 if (adapt->HalFunc.intf_chip_configure) in rtw_hal_chip_configure() 30 adapt->HalFunc.intf_chip_configure(adapt); in rtw_hal_chip_configure() 33 void rtw_hal_read_chip_info(struct adapter *adapt) in rtw_hal_read_chip_info() argument 35 if (adapt->HalFunc.read_adapter_info) in rtw_hal_read_chip_info() 36 adapt->HalFunc.read_adapter_info(adapt); in rtw_hal_read_chip_info() 39 void rtw_hal_read_chip_version(struct adapter *adapt) in rtw_hal_read_chip_version() argument 41 if (adapt->HalFunc.read_chip_version) in rtw_hal_read_chip_version() 42 adapt->HalFunc.read_chip_version(adapt); in rtw_hal_read_chip_version() 45 void rtw_hal_def_value_init(struct adapter *adapt) in rtw_hal_def_value_init() argument [all …]
|
D | phy.c | 46 u32 phy_query_bb_reg(struct adapter *adapt, u32 regaddr, u32 bitmask) in phy_query_bb_reg() argument 50 original_value = usb_read32(adapt, regaddr); in phy_query_bb_reg() 56 void phy_set_bb_reg(struct adapter *adapt, u32 regaddr, u32 bitmask, u32 data) in phy_set_bb_reg() argument 61 original_value = usb_read32(adapt, regaddr); in phy_set_bb_reg() 66 usb_write32(adapt, regaddr, data); in phy_set_bb_reg() 69 static u32 rf_serial_read(struct adapter *adapt, in rf_serial_read() argument 73 struct hal_data_8188e *hal_data = GET_HAL_DATA(adapt); in rf_serial_read() 80 tmplong = phy_query_bb_reg(adapt, rFPGA0_XA_HSSIParameter2, bMaskDWord); in rf_serial_read() 84 tmplong2 = phy_query_bb_reg(adapt, phyreg->rfHSSIPara2, in rf_serial_read() 90 phy_set_bb_reg(adapt, rFPGA0_XA_HSSIParameter2, bMaskDWord, in rf_serial_read() [all …]
|
D | fw.c | 39 static void _rtl88e_enable_fw_download(struct adapter *adapt, bool enable) in _rtl88e_enable_fw_download() argument 44 tmp = usb_read8(adapt, REG_MCUFWDL); in _rtl88e_enable_fw_download() 45 usb_write8(adapt, REG_MCUFWDL, tmp | 0x01); in _rtl88e_enable_fw_download() 47 tmp = usb_read8(adapt, REG_MCUFWDL + 2); in _rtl88e_enable_fw_download() 48 usb_write8(adapt, REG_MCUFWDL + 2, tmp & 0xf7); in _rtl88e_enable_fw_download() 50 tmp = usb_read8(adapt, REG_MCUFWDL); in _rtl88e_enable_fw_download() 51 usb_write8(adapt, REG_MCUFWDL, tmp & 0xfe); in _rtl88e_enable_fw_download() 53 usb_write8(adapt, REG_MCUFWDL + 1, 0x00); in _rtl88e_enable_fw_download() 57 static void _rtl88e_fw_block_write(struct adapter *adapt, in _rtl88e_fw_block_write() argument 70 usb_write32(adapt, (FW_8192C_START_ADDRESS + offset), in _rtl88e_fw_block_write() [all …]
|
D | rtl8188e_cmd.c | 35 static u8 _is_fw_read_cmd_down(struct adapter *adapt, u8 msgbox_num) in _is_fw_read_cmd_down() argument 43 valid = usb_read8(adapt, REG_HMETFR) & BIT(msgbox_num); in _is_fw_read_cmd_down() 61 static s32 FillH2CCmd_88E(struct adapter *adapt, u8 ElementID, u32 CmdLen, u8 *pCmdBuffer) in FillH2CCmd_88E() argument 68 struct hal_data_8188e *haldata = GET_HAL_DATA(adapt); in FillH2CCmd_88E() 75 if (!adapt->bFWReady) { in FillH2CCmd_88E() 84 if (adapt->bSurpriseRemoved) in FillH2CCmd_88E() 91 if (!_is_fw_read_cmd_down(adapt, h2c_box_num)) { in FillH2CCmd_88E() 108 usb_write8(adapt, msgbox_ex_addr+cmd_idx, *((u8 *)(&h2c_cmd_ex)+cmd_idx)); in FillH2CCmd_88E() 114 usb_write8(adapt, msgbox_addr+cmd_idx, *((u8 *)(&h2c_cmd)+cmd_idx)); in FillH2CCmd_88E() 167 void rtl8188e_set_FwPwrMode_cmd(struct adapter *adapt, u8 Mode) in rtl8188e_set_FwPwrMode_cmd() argument [all …]
|
D | rf_cfg.c | 25 static bool check_condition(struct adapter *adapt, const u32 condition) in check_condition() argument 27 struct odm_dm_struct *odm = &GET_HAL_DATA(adapt)->odmpriv; in check_condition() 167 static void rtl_rfreg_delay(struct adapter *adapt, enum rf_radio_path rfpath, u32 addr, u32 mask, u… in rtl_rfreg_delay() argument 182 phy_set_rf_reg(adapt, rfpath, addr, mask, data); in rtl_rfreg_delay() 187 static void rtl8188e_config_rf_reg(struct adapter *adapt, in rtl8188e_config_rf_reg() argument 193 rtl_rfreg_delay(adapt, RF90_PATH_A, addr | maskforphyset, in rtl8188e_config_rf_reg() 198 static bool rtl88e_phy_config_rf_with_headerfile(struct adapter *adapt) in rtl88e_phy_config_rf_with_headerfile() argument 209 rtl8188e_config_rf_reg(adapt, v1, v2); in rtl88e_phy_config_rf_with_headerfile() 212 if (!check_condition(adapt, array[i])) { in rtl88e_phy_config_rf_with_headerfile() 222 rtl8188e_config_rf_reg(adapt, v1, v2); in rtl88e_phy_config_rf_with_headerfile() [all …]
|
D | bb_cfg.c | 158 static bool set_baseband_agc_config(struct adapter *adapt) in set_baseband_agc_config() argument 169 phy_set_bb_reg(adapt, v1, bMaskDWord, v2); in set_baseband_agc_config() 372 static void rtl_bb_delay(struct adapter *adapt, u32 addr, u32 data) in rtl_bb_delay() argument 387 phy_set_bb_reg(adapt, addr, bMaskDWord, data); in rtl_bb_delay() 393 static bool set_baseband_phy_config(struct adapter *adapt) in set_baseband_phy_config() argument 404 rtl_bb_delay(adapt, v1, v2); in set_baseband_phy_config() 550 static void rtl_addr_delay(struct adapter *adapt, in rtl_addr_delay() argument 573 store_pwrindex_offset(adapt, addr, bit_mask, data); in rtl_addr_delay() 577 static bool config_bb_with_pgheader(struct adapter *adapt) in config_bb_with_pgheader() argument 589 rtl_addr_delay(adapt, v1, v2, v3); in config_bb_with_pgheader() [all …]
|
D | rtl8188eu_xmit.c | 29 s32 rtl8188eu_init_xmit_priv(struct adapter *adapt) in rtl8188eu_init_xmit_priv() argument 31 struct xmit_priv *pxmitpriv = &adapt->xmitpriv; in rtl8188eu_init_xmit_priv() 35 (unsigned long)adapt); in rtl8188eu_init_xmit_priv() 39 static u8 urb_zero_packet_chk(struct adapter *adapt, int sz) in urb_zero_packet_chk() argument 42 struct hal_data_8188e *haldata = GET_HAL_DATA(adapt); in urb_zero_packet_chk() 66 void rtl8188e_fill_fake_txdesc(struct adapter *adapt, u8 *desc, u32 BufferLen, u8 ispspoll, u8 is… in rtl8188e_fill_fake_txdesc() argument 181 struct adapter *adapt = pxmitframe->padapter; in update_txdesc() local 183 struct hal_data_8188e *haldata = GET_HAL_DATA(adapt); in update_txdesc() 185 struct mlme_ext_priv *pmlmeext = &adapt->mlmeextpriv; in update_txdesc() 189 if (adapt->registrypriv.mp_mode == 0) { in update_txdesc() [all …]
|
D | rf.c | 26 void rtl88eu_phy_rf6052_set_bandwidth(struct adapter *adapt, in rtl88eu_phy_rf6052_set_bandwidth() argument 29 struct hal_data_8188e *hal_data = GET_HAL_DATA(adapt); in rtl88eu_phy_rf6052_set_bandwidth() 35 phy_set_rf_reg(adapt, RF_PATH_A, RF_CHNLBW, bRFRegOffsetMask, in rtl88eu_phy_rf6052_set_bandwidth() 41 phy_set_rf_reg(adapt, RF_PATH_A, RF_CHNLBW, bRFRegOffsetMask, in rtl88eu_phy_rf6052_set_bandwidth() 49 void rtl88eu_phy_rf6052_set_cck_txpower(struct adapter *adapt, u8 *powerlevel) in rtl88eu_phy_rf6052_set_cck_txpower() argument 51 struct hal_data_8188e *hal_data = GET_HAL_DATA(adapt); in rtl88eu_phy_rf6052_set_cck_txpower() 53 struct mlme_ext_priv *pmlmeext = &adapt->mlmeextpriv; in rtl88eu_phy_rf6052_set_cck_txpower() 119 phy_set_bb_reg(adapt, rTxAGC_A_CCK1_Mcs32, bMaskByte1, tmpval); in rtl88eu_phy_rf6052_set_cck_txpower() 121 phy_set_bb_reg(adapt, rTxAGC_B_CCK11_A_CCK2_11, 0xffffff00, tmpval); in rtl88eu_phy_rf6052_set_cck_txpower() 125 phy_set_bb_reg(adapt, rTxAGC_B_CCK11_A_CCK2_11, bMaskByte0, tmpval); in rtl88eu_phy_rf6052_set_cck_txpower() [all …]
|
D | usb_halinit.c | 34 static void _ConfigNormalChipOutEP_8188E(struct adapter *adapt, u8 NumOutPipe) in _ConfigNormalChipOutEP_8188E() argument 36 struct hal_data_8188e *haldata = GET_HAL_DATA(adapt); in _ConfigNormalChipOutEP_8188E() 57 static bool HalUsbSetQueuePipeMapping8188EUsb(struct adapter *adapt, u8 NumInPipe, u8 NumOutPipe) in HalUsbSetQueuePipeMapping8188EUsb() argument 59 struct hal_data_8188e *haldata = GET_HAL_DATA(adapt); in HalUsbSetQueuePipeMapping8188EUsb() 62 _ConfigNormalChipOutEP_8188E(adapt, NumOutPipe); in HalUsbSetQueuePipeMapping8188EUsb() 72 result = Hal_MappingOutPipe(adapt, NumOutPipe); in HalUsbSetQueuePipeMapping8188EUsb() 77 static void rtl8188eu_interface_configure(struct adapter *adapt) in rtl8188eu_interface_configure() argument 79 struct hal_data_8188e *haldata = GET_HAL_DATA(adapt); in rtl8188eu_interface_configure() 80 struct dvobj_priv *pdvobjpriv = adapter_to_dvobj(adapt); in rtl8188eu_interface_configure() 98 HalUsbSetQueuePipeMapping8188EUsb(adapt, in rtl8188eu_interface_configure() [all …]
|
D | mac_cfg.c | 120 bool rtl88eu_phy_mac_config(struct adapter *adapt) in rtl88eu_phy_mac_config() argument 130 usb_write8(adapt, ptrarray[i], (u8)ptrarray[i + 1]); in rtl88eu_phy_mac_config() 132 usb_write8(adapt, REG_MAX_AGGR_NUM, MAX_AGGR_NUM); in rtl88eu_phy_mac_config()
|
D | Hal8188ERateAdaptive.c | 352 struct adapter *adapt = dm_odm->Adapter; in odm_ARFBRefresh_8188E() local 379 MaskFromReg = usb_read32(adapt, REG_ARFR0); in odm_ARFBRefresh_8188E() 383 MaskFromReg = usb_read32(adapt, REG_ARFR1); in odm_ARFBRefresh_8188E() 387 MaskFromReg = usb_read32(adapt, REG_ARFR2); in odm_ARFBRefresh_8188E() 391 MaskFromReg = usb_read32(adapt, REG_ARFR3); in odm_ARFBRefresh_8188E() 690 struct adapter *adapt = dm_odm->Adapter; in ODM_RA_Set_TxRPT_Time() local 692 usb_write16(adapt, REG_TX_RPT_TIME, minRptTime); in ODM_RA_Set_TxRPT_Time()
|
D | hal_com.c | 135 void HalSetBrateCfg(struct adapter *adapt, u8 *brates, u16 *rate_cfg) in HalSetBrateCfg() argument
|
D | odm.c | 835 struct adapter *adapt = pDM_Odm->Adapter; in ODM_Write_CCK_CCA_Thres() local 838 usb_write8(adapt, ODM_REG_CCK_CCA_11N, CurCCK_CCAThres); in ODM_Write_CCK_CCA_Thres()
|
/linux-4.4.14/drivers/staging/rtl8188eu/include/ |
D | phy.h | 8 bool rtl88eu_phy_mac_config(struct adapter *adapt); 9 bool rtl88eu_phy_rf_config(struct adapter *adapt); 10 bool rtl88eu_phy_bb_config(struct adapter *adapt); 12 u32 phy_query_bb_reg(struct adapter *adapt, u32 regaddr, u32 bitmask); 13 void phy_set_bb_reg(struct adapter *adapt, u32 regaddr, u32 bitmask, u32 data); 14 u32 phy_query_rf_reg(struct adapter *adapt, enum rf_radio_path rf_path, 16 void phy_set_rf_reg(struct adapter *adapt, enum rf_radio_path rf_path, 19 void phy_set_tx_power_level(struct adapter *adapt, u8 channel); 21 void phy_set_bw_mode(struct adapter *adapt, enum ht_channel_width bandwidth, 23 void phy_sw_chnl(struct adapter *adapt, u8 channel); [all …]
|
D | rtl8188e_dm.h | 53 void rtl8188e_init_dm_priv(struct adapter *adapt); 54 void rtl8188e_InitHalDm(struct adapter *adapt); 55 void rtl8188e_HalDmWatchDog(struct adapter *adapt); 57 void AntDivCompare8188E(struct adapter *adapt, struct wlan_bssid_ex *dst, 59 u8 AntDivBeforeLink8188E(struct adapter *adapt);
|
D | rf.h | 4 void rtl88eu_phy_rf6052_set_bandwidth(struct adapter *adapt, 6 void rtl88eu_phy_rf6052_set_cck_txpower(struct adapter *adapt, 8 void rtl88eu_phy_rf6052_set_ofdm_txpower(struct adapter *adapt,
|
D | rtw_led.h | 100 #define rtw_led_control(adapt, action) \ argument 102 if ((adapt)->ledpriv.LedControlHandler) \ 103 (adapt)->ledpriv.LedControlHandler((adapt), (action)); \
|
D | rtw_efuse.h | 103 void EFUSE_GetEfuseDefinition(struct adapter *adapt, u8 type, u8 type1, 110 void Efuse_PowerSwitch(struct adapter *adapt, u8 bWrite, u8 PwrState); 111 int Efuse_PgPacketRead(struct adapter *adapt, u8 offset, u8 *data);
|
D | rtw_ioctl_set.h | 28 u8 rtw_set_802_11_authentication_mode(struct adapter *adapt, 38 u8 rtw_set_802_11_ssid(struct adapter *adapt, struct ndis_802_11_ssid *ssid);
|
D | rtw_cmd.h | 371 void rtw_createbss_cmd_callback(struct adapter *adapt, struct cmd_obj *pcmd); 372 void rtw_readtssi_cmdrsp_callback(struct adapter *adapt, struct cmd_obj *cmd); 374 void rtw_setstaKey_cmdrsp_callback(struct adapter *adapt, struct cmd_obj *cmd); 375 void rtw_setassocsta_cmdrsp_callback(struct adapter *adapt, struct cmd_obj *cm); 376 void rtw_getrttbl_cmdrsp_callback(struct adapter *adapt, struct cmd_obj *cmd);
|
D | sta_info.h | 361 u32 rtw_free_stainfo(struct adapter *adapt, struct sta_info *psta); 362 void rtw_free_all_stainfo(struct adapter *adapt); 364 u32 rtw_init_bcmc_stainfo(struct adapter *adapt);
|
D | fw.h | 57 int rtl88eu_download_fw(struct adapter *adapt);
|
D | recv_osdep.h | 43 int rtw_os_recvbuf_resource_alloc(struct adapter *adapt, struct recv_buf *buf);
|
D | rtl8188e_cmd.h | 113 void rtl8188e_set_FwMediaStatus_cmd(struct adapter *adapt, __le16 mstatus_rpt);
|
D | rtw_eeprom.h | 127 void eeprom_read_sz(struct adapter *adapt, u16 reg, u8 *data, u32 sz);
|
D | rtw_mlme_ext.h | 247 unsigned int (*func)(struct adapter *adapt, struct recv_frame *frame); 253 unsigned int (*func)(struct adapter *adapt, struct recv_frame *frame); 461 void init_addba_retry_timer(struct adapter *adapt, struct sta_info *sta);
|
D | hal_intf.h | 282 void rtw_hal_add_ra_tid(struct adapter *adapt, u32 bitmap, u8 arg, u8 level);
|
/linux-4.4.14/drivers/staging/rtl8188eu/os_dep/ |
D | usb_ops_linux.c | 25 static void interrupt_handler_8188eu(struct adapter *adapt, u16 pkt_len, u8 *pbuf) in interrupt_handler_8188eu() argument 27 struct hal_data_8188e *haldata = GET_HAL_DATA(adapt); in interrupt_handler_8188eu() 43 static int recvbuf2recvframe(struct adapter *adapt, struct sk_buff *pskb) in recvbuf2recvframe() argument 55 struct hal_data_8188e *haldata = GET_HAL_DATA(adapt); in recvbuf2recvframe() 56 struct recv_priv *precvpriv = &adapt->recvpriv; in recvbuf2recvframe() 128 pkt_copy = netdev_alloc_skb(adapt->pnetdev, alloc_sz); in recvbuf2recvframe() 130 pkt_copy->dev = adapt->pnetdev; in recvbuf2recvframe() 183 handle_txrpt_ccx_88e(adapt, precvframe->rx_data); in recvbuf2recvframe() 193 interrupt_handler_8188eu(adapt, pattrib->pkt_len, precvframe->rx_data); in recvbuf2recvframe() 230 static int usbctrl_vendorreq(struct adapter *adapt, u8 request, u16 value, u16 index, void *pdata, … in usbctrl_vendorreq() argument [all …]
|
/linux-4.4.14/drivers/staging/iio/adc/ |
D | mxs-lradc.c | 1531 u32 ts_wires = 0, adapt; in mxs_lradc_probe_touchscreen() local 1555 if (of_property_read_u32(lradc_node, "fsl,ave-ctrl", &adapt)) { in mxs_lradc_probe_touchscreen() 1558 if (adapt < 1 || adapt > 32) { in mxs_lradc_probe_touchscreen() 1560 adapt); in mxs_lradc_probe_touchscreen() 1563 lradc->over_sample_cnt = adapt; in mxs_lradc_probe_touchscreen() 1566 if (of_property_read_u32(lradc_node, "fsl,ave-delay", &adapt)) { in mxs_lradc_probe_touchscreen() 1569 if (adapt < 2 || adapt > LRADC_DELAY_DELAY_MASK + 1) { in mxs_lradc_probe_touchscreen() 1571 adapt); in mxs_lradc_probe_touchscreen() 1574 lradc->over_sample_delay = adapt; in mxs_lradc_probe_touchscreen() 1577 if (of_property_read_u32(lradc_node, "fsl,settling", &adapt)) { in mxs_lradc_probe_touchscreen() [all …]
|
/linux-4.4.14/drivers/scsi/ |
D | ips.c | 4238 if (ha->adapt) { in ips_free() 4241 sizeof (IPS_IO_CMD), ha->adapt, in ips_free() 4242 ha->adapt->hw_status_start); in ips_free() 4243 ha->adapt = NULL; in ips_free() 4398 ha->dummy->ccsar = cpu_to_le32(ha->adapt->hw_status_start in ips_init_scb() 4409 scb->cmd.basic_io.ccsar = cpu_to_le32(ha->adapt->hw_status_start in ips_init_scb() 5156 ha->adapt->p_status_start = ha->adapt->status; in ips_statinit() 5157 ha->adapt->p_status_end = ha->adapt->status + IPS_MAX_CMDS; in ips_statinit() 5158 ha->adapt->p_status_tail = ha->adapt->status; in ips_statinit() 5160 phys_status_start = ha->adapt->hw_status_start; in ips_statinit() [all …]
|
D | ips.h | 1042 IPS_ADAPTER *adapt; /* Adapter status area */ member
|
/linux-4.4.14/drivers/misc/echo/ |
D | echo.h | 143 int16_t adapt; member
|
D | echo.c | 504 ec->adapt = 0; in oslec_update() 526 ec->adapt = 1; in oslec_update()
|
/linux-4.4.14/drivers/media/platform/ |
D | timblogiw.c | 626 struct i2c_adapter *adapt; in timblogiw_open() local 629 adapt = i2c_get_adapter(lw->pdata.i2c_adapter); in timblogiw_open() 630 if (!adapt) { in timblogiw_open() 638 lw->sd_enc = v4l2_i2c_new_subdev_board(&lw->v4l2_dev, adapt, in timblogiw_open() 641 i2c_put_adapter(adapt); in timblogiw_open()
|
/linux-4.4.14/Documentation/devicetree/bindings/i2c/ |
D | i2c.txt | 30 wants to support one of the below features, it should adapt the bindings below.
|
/linux-4.4.14/Documentation/devicetree/bindings/sound/ |
D | cs42l56.txt | 39 Amplifiers adapt to the output signal levels.
|
/linux-4.4.14/Documentation/spi/ |
D | ep93xx_spi | 16 this driver on TS-7260 board. You can adapt the code to suit your needs.
|
/linux-4.4.14/Documentation/input/ |
D | appletouch.txt | 70 The appletouch driver tries to handle this noise and auto adapt itself, but it
|
/linux-4.4.14/Documentation/device-mapper/ |
D | cache-policies.txt | 124 long time for the cache to adapt between varying IO patterns. 132 levels. This lets it adapt to new IO patterns very quickly.
|
/linux-4.4.14/Documentation/filesystems/cifs/ |
D | TODO | 96 2) Improve xfstest's cifs enablement and adapt xfstests where needed to test
|
/linux-4.4.14/drivers/staging/lustre/lustre/ptlrpc/ |
D | sec.c | 301 int adapt = 0; in import_sec_check_expire() local 306 adapt = 1; in import_sec_check_expire() 311 if (!adapt) in import_sec_check_expire()
|
/linux-4.4.14/Documentation/ |
D | vgaarbiter.txt | 181 enhancing the kernel code to adapt as a kernel module and also did the
|
D | HOWTO | 52 documented; do not expect people to adapt to you or your company's way 447 You have to be cooperative, and willing to adapt your idea to fit within
|
/linux-4.4.14/Documentation/hwmon/ |
D | asc7621 | 68 The tachometer measurement system is flexible and able to adapt to many
|
/linux-4.4.14/Documentation/isdn/ |
D | README.concap | 15 releases (even if I needed to adapt the current isdn code to the
|
D | README.HiSax | 542 In the line starting with "append" you have to adapt the parameters
|
/linux-4.4.14/Documentation/timers/ |
D | timekeeping.txt | 50 These measures does not affect the clock source per se, they only adapt the
|
/linux-4.4.14/net/netfilter/ipvs/ |
D | Kconfig | 58 performance on it. You can adapt the table size yourself, according
|
/linux-4.4.14/Documentation/networking/ |
D | cxgb.txt | 34 coalescing parameters, allowing the driver to dynamically adapt the latency
|
/linux-4.4.14/Documentation/cdrom/ |
D | cdrom-standard.tex | 119 help \cdrom\ driver developers adapt their code to use the \UCD\ code 317 flexibility to adapt to the different users' wishes (and {\em not\/} the 979 the code in a large part, and you will almost certainly need to adapt the
|
/linux-4.4.14/Documentation/filesystems/ |
D | f2fs.txt | 8 disks, a file system, an upper layer to the storage device, should adapt to the
|
/linux-4.4.14/Documentation/mtd/ |
D | nand_ecc.txt | 325 we need to adapt the code generation for the fact that rp vars are now
|
/linux-4.4.14/arch/arm/crypto/ |
D | aesbs-core.S_shipped | 45 @ Add CBC, CTR and XTS subroutines, adapt for kernel use.
|