本文整理汇总了C++中rtw_malloc函数的典型用法代码示例。如果您正苦于以下问题:C++ rtw_malloc函数的具体用法?C++ rtw_malloc怎么用?C++ rtw_malloc使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了rtw_malloc函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: rtw_regd_init
int rtw_regd_init(_adapter * padapter,
void (*reg_notifier) (struct wiphy * wiphy,
struct regulatory_request * request))
{
//struct registry_priv *registrypriv = &padapter->registrypriv;
struct wiphy *wiphy = padapter->rtw_wdev->wiphy;
#if 0
if (rtw_regd == NULL) {
rtw_regd = (struct rtw_regulatory *)
rtw_malloc(sizeof(struct rtw_regulatory));
rtw_regd->alpha2[0] = '9';
rtw_regd->alpha2[1] = '9';
rtw_regd->country_code = COUNTRY_CODE_USER;
}
DBG_8192C("%s: Country alpha2 being used: %c%c\n",
__func__, rtw_regd->alpha2[0], rtw_regd->alpha2[1]);
#endif
_rtw_regd_init_wiphy(NULL, wiphy, reg_notifier);
return 0;
}
开发者ID:carlo0815,项目名称:rtl8723bs,代码行数:26,代码来源:wifi_regd.c
示例2: __nat25_db_network_insert
static void __nat25_db_network_insert(_adapter *priv,
unsigned char *macAddr, unsigned char *networkAddr)
{
struct nat25_network_db_entry *db;
int hash;
_irqL irqL;
_enter_critical_bh(&priv->br_ext_lock, &irqL);
hash = __nat25_network_hash(networkAddr);
for (db = priv->nethash[hash]; db != NULL; db = db->next_hash) {
if(!memcmp(db->networkAddr, networkAddr, MAX_NETWORK_ADDR_LEN))
{
copy_mac_addr(db->macAddr, macAddr);
db->ageing_timer = jiffies;
_exit_critical_bh(&priv->br_ext_lock, &irqL);
return;
}
}
db = (struct nat25_network_db_entry *) rtw_malloc(sizeof(*db));
if(db == NULL) {
_exit_critical_bh(&priv->br_ext_lock, &irqL);
return;
}
memcpy(db->networkAddr, networkAddr, MAX_NETWORK_ADDR_LEN);
copy_mac_addr(db->macAddr, macAddr);
atomic_set(&db->use_count, 1);
db->ageing_timer = jiffies;
__network_hash_link(priv, db, hash);
_exit_critical_bh(&priv->br_ext_lock, &irqL);
}
开发者ID:LingYunZhi,项目名称:rtl8189es,代码行数:34,代码来源:rtw_br_ext.c
示例3: rtw_report_sec_ie
void rtw_report_sec_ie(struct adapter *adapter, u8 authmode, u8 *sec_ie)
{
uint len;
u8 *buff, *p, i;
union iwreq_data wrqu;
RT_TRACE(_module_mlme_osdep_c_, _drv_info_,
("+rtw_report_sec_ie, authmode=%d\n", authmode));
buff = NULL;
if (authmode == _WPA_IE_ID_) {
RT_TRACE(_module_mlme_osdep_c_, _drv_info_,
("rtw_report_sec_ie, authmode=%d\n", authmode));
buff = rtw_malloc(IW_CUSTOM_MAX);
if (!buff)
return;
memset(buff, 0, IW_CUSTOM_MAX);
p = buff;
p += sprintf(p, "ASSOCINFO(ReqIEs =");
len = sec_ie[1] + 2;
len = min_t(uint, len, IW_CUSTOM_MAX);
for (i = 0; i < len; i++)
p += sprintf(p, "%02x", sec_ie[i]);
p += sprintf(p, ")");
memset(&wrqu, 0, sizeof(wrqu));
wrqu.data.length = min_t(__u16, p - buff, IW_CUSTOM_MAX);
wireless_send_event(adapter->pnetdev, IWEVCUSTOM, &wrqu, buff);
kfree(buff);
}
}
开发者ID:Anjali05,项目名称:linux,代码行数:29,代码来源:mlme_linux.c
示例4: _sdio_local_read
/*
* Todo: align address to 4 bytes.
*/
static s32 _sdio_local_read(
struct adapter *adapter,
u32 addr,
u32 cnt,
u8 *buf
)
{
struct intf_hdl *intfhdl;
u8 mac_pwr_ctrl_on;
s32 err;
u8 *tmpbuf;
u32 n;
intfhdl = &adapter->iopriv.intf;
HalSdioGetCmdAddr8723BSdio(adapter, SDIO_LOCAL_DEVICE_ID, addr, &addr);
rtw_hal_get_hwreg(adapter, HW_VAR_APFM_ON_MAC, &mac_pwr_ctrl_on);
if (!mac_pwr_ctrl_on)
return _sd_cmd52_read(intfhdl, addr, cnt, buf);
n = RND4(cnt);
tmpbuf = rtw_malloc(n);
if (!tmpbuf)
return (-1);
err = _sd_read(intfhdl, addr, n, tmpbuf);
if (!err)
memcpy(buf, tmpbuf, cnt);
kfree(tmpbuf);
return err;
}
开发者ID:Lyude,项目名称:linux,代码行数:38,代码来源:sdio_ops.c
示例5: rtw_report_sec_ie
void rtw_report_sec_ie(struct adapter *adapter, u8 authmode, u8 *sec_ie)
{
uint len;
u8 *buff, *p, i;
union iwreq_data wrqu;
_func_enter_;
RT_TRACE(_module_mlme_osdep_c_, _drv_info_,
("+rtw_report_sec_ie, authmode=%d\n", authmode));
buff = NULL;
if (authmode == _WPA_IE_ID_) {
RT_TRACE(_module_mlme_osdep_c_, _drv_info_,
("rtw_report_sec_ie, authmode=%d\n", authmode));
buff = rtw_malloc(IW_CUSTOM_MAX);
if (!buff)
goto exit;
_rtw_memset(buff, 0, IW_CUSTOM_MAX);
p = buff;
p += sprintf(p, "ASSOCINFO(ReqIEs =");
len = sec_ie[1]+2;
len = (len < IW_CUSTOM_MAX) ? len : IW_CUSTOM_MAX;
for (i = 0; i < len; i++)
p += sprintf(p, "%02x", sec_ie[i]);
p += sprintf(p, ")");
_rtw_memset(&wrqu, 0, sizeof(wrqu));
wrqu.data.length = p-buff;
wrqu.data.length = (wrqu.data.length < IW_CUSTOM_MAX) ?
wrqu.data.length : IW_CUSTOM_MAX;
wireless_send_event(adapter->pnetdev, IWEVCUSTOM, &wrqu, buff);
kfree(buff);
}
exit:
_func_exit_;
}
开发者ID:Adri9102,项目名称:rtl8188eu,代码行数:34,代码来源:mlme_linux.c
示例6: rtw_buf_update
void rtw_buf_update(u8 **buf, u32 *buf_len, u8 *src, u32 src_len)
{
u32 ori_len = 0, dup_len = 0;
u8 *ori = NULL;
u8 *dup = NULL;
if (!buf || !buf_len)
return;
if (!src || !src_len)
goto keep_ori;
/* duplicate src */
dup = rtw_malloc(src_len);
if (dup) {
dup_len = src_len;
memcpy(dup, src, dup_len);
}
keep_ori:
ori = *buf;
ori_len = *buf_len;
/* replace buf with dup */
*buf_len = 0;
*buf = dup;
*buf_len = dup_len;
/* free ori */
kfree(ori);
}
开发者ID:thoemy,项目名称:android_kernel_htc_endeavoru-new,代码行数:31,代码来源:osdep_service.c
示例7: sdio_writeN
s32 sdio_writeN(struct intf_hdl *pintfhdl, u32 addr, u32 cnt, u8* pbuf)
{
PADAPTER padapter;
struct dvobj_priv *psdiodev;
PSDIO_DATA psdio;
u8 bMacPwrCtrlOn;
u8 deviceId;
u16 offset;
u32 ftaddr;
u8 shift;
s32 err;
_func_enter_;
padapter = pintfhdl->padapter;
psdiodev = pintfhdl->pintf_dev;
psdio = &psdiodev->intf_data;
err = 0;
ftaddr = _cvrt2ftaddr(addr, &deviceId, &offset);
rtw_hal_get_hwreg(padapter, HW_VAR_APFM_ON_MAC, &bMacPwrCtrlOn);
if (((deviceId == WLAN_IOREG_DEVICE_ID) && (offset < 0x100))
|| (_FALSE == bMacPwrCtrlOn)
#ifdef CONFIG_LPS_LCLK
|| (_TRUE == padapter->pwrctrlpriv.bFwCurrentInPSMode)
#endif
)
{
err = sd_cmd52_write(psdio, ftaddr, cnt, pbuf);
return err;
}
shift = ftaddr & 0x3;
if (shift == 0) {
err = sd_write(psdio, ftaddr, cnt, pbuf);
} else {
u8 *ptmpbuf;
u32 n;
ftaddr &= ~(u16)0x3;
n = cnt + shift;
ptmpbuf = rtw_malloc(n);
if (NULL == ptmpbuf) return -1;
err = sd_read(psdio, ftaddr, 4, ptmpbuf);
if (err) {
rtw_mfree(ptmpbuf, n);
return err;
}
_rtw_memcpy(ptmpbuf+shift, pbuf, cnt);
err = sd_write(psdio, ftaddr, n, ptmpbuf);
rtw_mfree(ptmpbuf, n);
}
_func_exit_;
return err;
}
开发者ID:zetalabs,项目名称:linux-3.4-sunxi,代码行数:58,代码来源:sdio_ops.c
示例8: sdio_read32
static u32 sdio_read32(struct intf_hdl *intfhdl, u32 addr)
{
struct adapter *adapter;
u8 mac_pwr_ctrl_on;
u8 device_id;
u16 offset;
u32 ftaddr;
u8 shift;
u32 val;
s32 err;
__le32 le_tmp;
adapter = intfhdl->padapter;
ftaddr = _cvrt2ftaddr(addr, &device_id, &offset);
rtw_hal_get_hwreg(adapter, HW_VAR_APFM_ON_MAC, &mac_pwr_ctrl_on);
if (
((device_id == WLAN_IOREG_DEVICE_ID) && (offset < 0x100)) ||
(!mac_pwr_ctrl_on) ||
(adapter_to_pwrctl(adapter)->bFwCurrentInPSMode)
) {
err = sd_cmd52_read(intfhdl, ftaddr, 4, (u8 *)&le_tmp);
#ifdef SDIO_DEBUG_IO
if (!err) {
#endif
return le32_to_cpu(le_tmp);
#ifdef SDIO_DEBUG_IO
}
DBG_8192C(KERN_ERR "%s: Mac Power off, Read FAIL(%d)! addr = 0x%x\n", __func__, err, addr);
return SDIO_ERR_VAL32;
#endif
}
/* 4 bytes alignment */
shift = ftaddr & 0x3;
if (shift == 0) {
val = sd_read32(intfhdl, ftaddr, NULL);
} else {
u8 *tmpbuf;
tmpbuf = rtw_malloc(8);
if (!tmpbuf) {
DBG_8192C(KERN_ERR "%s: Allocate memory FAIL!(size =8) addr = 0x%x\n", __func__, addr);
return SDIO_ERR_VAL32;
}
ftaddr &= ~(u16)0x3;
sd_read(intfhdl, ftaddr, 8, tmpbuf);
memcpy(&le_tmp, tmpbuf+shift, 4);
val = le32_to_cpu(le_tmp);
kfree(tmpbuf);
}
return val;
}
开发者ID:Lyude,项目名称:linux,代码行数:56,代码来源:sdio_ops.c
示例9: sdio_read_port
/*
* Description:
* Read from RX FIFO
* Round read size to block size,
* and make sure data transfer will be done in one command.
*
* Parameters:
* pintfhdl a pointer of intf_hdl
* addr port ID
* cnt size to read
* rmem address to put data
*
* Return:
* _SUCCESS(1) Success
* _FAIL(0) Fail
*/
static u32 sdio_read_port(
struct intf_hdl *pintfhdl,
u32 addr,
u32 cnt,
u8 *mem)
{
PADAPTER padapter;
PSDIO_DATA psdio;
PHAL_DATA_TYPE phal;
u32 oldcnt;
#ifdef SDIO_DYNAMIC_ALLOC_MEM
u8 *oldmem;
#endif
s32 err;
padapter = pintfhdl->padapter;
psdio = &adapter_to_dvobj(padapter)->intf_data;
phal = GET_HAL_DATA(padapter);
HalSdioGetCmdAddr8723BSdio(padapter, addr, phal->SdioRxFIFOCnt++, &addr);
oldcnt = cnt;
if (cnt > psdio->block_transfer_len)
cnt = _RND(cnt, psdio->block_transfer_len);
// cnt = sdio_align_size(cnt);
if (oldcnt != cnt) {
#ifdef SDIO_DYNAMIC_ALLOC_MEM
oldmem = mem;
mem = rtw_malloc(cnt);
if (mem == NULL) {
DBG_8192C(KERN_WARNING "%s: allocate memory %d bytes fail!\n", __func__, cnt);
mem = oldmem;
oldmem == NULL;
}
#else
// in this case, caller should gurante the buffer is big enough
// to receive data after alignment
#endif
}
err = _sd_read(pintfhdl, addr, cnt, mem);
#ifdef SDIO_DYNAMIC_ALLOC_MEM
if ((oldcnt != cnt) && (oldmem)) {
_rtw_memcpy(oldmem, mem, oldcnt);
rtw_mfree(mem, cnt);
}
#endif
if (err) return _FAIL;
return _SUCCESS;
}
开发者ID:STPJ,项目名称:linux-3.4-sunxi,代码行数:70,代码来源:sdio_ops.c
示例10: sdio_writeN
s32 sdio_writeN(struct intf_hdl *pintfhdl, u32 addr, u32 cnt, u8* pbuf)
{
PADAPTER padapter;
u8 bMacPwrCtrlOn;
u8 deviceId;
u16 offset;
u32 ftaddr;
u8 shift;
s32 err;
_func_enter_;
padapter = pintfhdl->padapter;
err = 0;
ftaddr = _cvrt2ftaddr(addr, &deviceId, &offset);
// rtw_hal_get_hwreg(padapter, HW_VAR_APFM_ON_MAC, &bMacPwrCtrlOn);
// if (((deviceId == WLAN_IOREG_DEVICE_ID) && (offset < 0x100))
// || (_FALSE == bMacPwrCtrlOn)
// #ifdef CONFIG_LPS_LCLK
// || (_TRUE == adapter_to_pwrctl(padapter)->bFwCurrentInPSMode)
// #endif
// )
// {
// err = sd_cmd52_write(pintfhdl, ftaddr, cnt, pbuf);
// return err;
// }
shift = ftaddr & 0x3;
if (shift == 0) {
err = sd_write(pintfhdl, ftaddr, cnt, pbuf);
} else {
u8 *ptmpbuf;
u32 n;
ftaddr &= ~(u16)0x3;
n = cnt + shift;
ptmpbuf = rtw_malloc(n);
if (NULL == ptmpbuf) return -1;
err = sd_read(pintfhdl, ftaddr, 4, ptmpbuf);
if (err) {
rtw_mfree(ptmpbuf, n);
return err;
}
_rtw_memcpy(ptmpbuf+shift, pbuf, cnt);
err = sd_write(pintfhdl, ftaddr, n, ptmpbuf);
rtw_mfree(ptmpbuf, n);
}
_func_exit_;
return err;
}
开发者ID:qiancuo,项目名称:Ameba_sdio_device,代码行数:54,代码来源:sdio_ops.c
示例11: sizeof
/**
* rtw_cbuf_alloc - allocte a rtw_cbuf with given size and do initialization
* @size: size of pointer
*
* Returns: pointer of srtuct rtw_cbuf, NULL for allocation failure
*/
struct rtw_cbuf *rtw_cbuf_alloc(u32 size)
{
struct rtw_cbuf *cbuf;
cbuf = (struct rtw_cbuf *)rtw_malloc(sizeof(*cbuf) + sizeof(void*)*size);
if (cbuf) {
cbuf->write = cbuf->read = 0;
cbuf->size = size;
}
return cbuf;
}
开发者ID:gaoer,项目名称:rtl8188eu,代码行数:19,代码来源:osdep_service.c
示例12: sizeof
int *rtw_dev_get_feature_set_matrix(struct net_device *dev, int *num)
{
int feature_set_full, mem_needed;
int *ret;
*num = 0;
mem_needed = sizeof(int) * MAX_FEATURE_SET_CONCURRRENT_GROUPS;
ret = (int *)rtw_malloc(mem_needed);
if (!ret) {
DBG_871X_LEVEL(_drv_err_, FUNC_NDEV_FMT" failed to allocate %d bytes\n"
, FUNC_NDEV_ARG(dev), mem_needed);
return ret;
}
feature_set_full = rtw_dev_get_feature_set(dev);
ret[0] = (feature_set_full & WIFI_FEATURE_INFRA) |
(feature_set_full & WIFI_FEATURE_INFRA_5G) |
(feature_set_full & WIFI_FEATURE_NAN) |
(feature_set_full & WIFI_FEATURE_D2D_RTT) |
(feature_set_full & WIFI_FEATURE_D2AP_RTT) |
(feature_set_full & WIFI_FEATURE_PNO) |
(feature_set_full & WIFI_FEATURE_BATCH_SCAN) |
(feature_set_full & WIFI_FEATURE_GSCAN) |
(feature_set_full & WIFI_FEATURE_HOTSPOT) |
(feature_set_full & WIFI_FEATURE_ADDITIONAL_STA) |
(feature_set_full & WIFI_FEATURE_EPR);
ret[1] = (feature_set_full & WIFI_FEATURE_INFRA) |
(feature_set_full & WIFI_FEATURE_INFRA_5G) |
/* Not yet verified NAN with P2P */
/* (feature_set_full & WIFI_FEATURE_NAN) | */
(feature_set_full & WIFI_FEATURE_P2P) |
(feature_set_full & WIFI_FEATURE_D2AP_RTT) |
(feature_set_full & WIFI_FEATURE_D2D_RTT) |
(feature_set_full & WIFI_FEATURE_EPR);
ret[2] = (feature_set_full & WIFI_FEATURE_INFRA) |
(feature_set_full & WIFI_FEATURE_INFRA_5G) |
(feature_set_full & WIFI_FEATURE_NAN) |
(feature_set_full & WIFI_FEATURE_D2D_RTT) |
(feature_set_full & WIFI_FEATURE_D2AP_RTT) |
(feature_set_full & WIFI_FEATURE_TDLS) |
(feature_set_full & WIFI_FEATURE_TDLS_OFFCHANNEL) |
(feature_set_full & WIFI_FEATURE_EPR);
*num = MAX_FEATURE_SET_CONCURRRENT_GROUPS;
return ret;
}
开发者ID:GREYFOXRGR,项目名称:BPI-M3-bsp,代码行数:50,代码来源:rtw_cfgvendor.c
示例13: update_bcn_wps_ie
static void update_bcn_wps_ie(struct adapter *padapter)
{
u8 *pwps_ie = NULL, *pwps_ie_src;
u8 *premainder_ie, *pbackup_remainder_ie = NULL;
uint wps_ielen = 0, wps_offset, remainder_ielen;
struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
struct mlme_ext_info *pmlmeinfo = &pmlmeext->mlmext_info;
struct wlan_bssid_ex *pnetwork = &pmlmeinfo->network;
unsigned char *ie = pnetwork->ies;
u32 ielen = pnetwork->ie_length;
DBG_88E("%s\n", __func__);
pwps_ie_src = pmlmepriv->wps_beacon_ie;
if (!pwps_ie_src)
return;
pwps_ie = rtw_get_wps_ie(ie + _FIXED_IE_LENGTH_,
ielen - _FIXED_IE_LENGTH_, NULL, &wps_ielen);
if (!pwps_ie || wps_ielen == 0)
return;
wps_offset = (uint)(pwps_ie - ie);
premainder_ie = pwps_ie + wps_ielen;
remainder_ielen = ielen - wps_offset - wps_ielen;
if (remainder_ielen > 0) {
pbackup_remainder_ie = rtw_malloc(remainder_ielen);
if (pbackup_remainder_ie)
memcpy(pbackup_remainder_ie, premainder_ie, remainder_ielen);
}
wps_ielen = (uint)pwps_ie_src[1];/* to get ie data len */
if (wps_offset + wps_ielen + 2 + remainder_ielen <= MAX_IE_SZ) {
memcpy(pwps_ie, pwps_ie_src, wps_ielen + 2);
pwps_ie += wps_ielen + 2;
if (pbackup_remainder_ie)
memcpy(pwps_ie, pbackup_remainder_ie, remainder_ielen);
/* update ie_length */
pnetwork->ie_length = wps_offset + wps_ielen + 2 + remainder_ielen;
}
kfree(pbackup_remainder_ie);
}
开发者ID:avagin,项目名称:linux,代码行数:50,代码来源:rtw_ap.c
示例14: sdio_local_write
/*
* Todo: align address to 4 bytes.
*/
s32 sdio_local_write(
PADAPTER padapter,
u32 addr,
u32 cnt,
u8 *pbuf)
{
PSDIO_DATA psdio;
u8 bMacPwrCtrlOn;
s32 err;
u8 *ptmpbuf;
#ifdef CONFIG_DEBUG_RTL819X
if(addr & 0x3)
DBG_8192C("%s, address must be 4 bytes alignment\n", __FUNCTION__);
if(cnt & 0x3)
DBG_8192C("%s, size must be the multiple of 4 \n", __FUNCTION__);
#endif
psdio = &padapter->dvobjpriv.intf_data;
HalSdioGetCmdAddr8723ASdio(padapter, SDIO_LOCAL_DEVICE_ID, addr, &addr);
padapter->HalFunc.GetHwRegHandler(padapter, HW_VAR_APFM_ON_MAC, &bMacPwrCtrlOn);
if ((_FALSE == bMacPwrCtrlOn)
#ifdef CONFIG_LPS_LCLK
|| (_TRUE == padapter->pwrctrlpriv.bFwCurrentInPSMode)
#endif
)
{
err = sd_cmd52_write(psdio, addr, cnt, pbuf);
return err;
}
ptmpbuf = (u8*)rtw_malloc(cnt);
if(!ptmpbuf)
return (-1);
_rtw_memcpy(ptmpbuf, pbuf, cnt);
err = sd_write(psdio, addr, cnt, ptmpbuf);
if (ptmpbuf)
rtw_mfree(ptmpbuf, cnt);
return err;
}
开发者ID:bayger,项目名称:kernel_amlogic,代码行数:51,代码来源:sdio_ops.c
示例15: sdio_writeN
static s32 sdio_writeN(struct intf_hdl *intfhdl, u32 addr, u32 cnt, u8 *buf)
{
struct adapter *adapter;
u8 mac_pwr_ctrl_on;
u8 device_id;
u16 offset;
u32 ftaddr;
u8 shift;
s32 err;
adapter = intfhdl->padapter;
err = 0;
ftaddr = _cvrt2ftaddr(addr, &device_id, &offset);
rtw_hal_get_hwreg(adapter, HW_VAR_APFM_ON_MAC, &mac_pwr_ctrl_on);
if (
((device_id == WLAN_IOREG_DEVICE_ID) && (offset < 0x100)) ||
(!mac_pwr_ctrl_on) ||
(adapter_to_pwrctl(adapter)->bFwCurrentInPSMode)
)
return sd_cmd52_write(intfhdl, ftaddr, cnt, buf);
shift = ftaddr & 0x3;
if (shift == 0) {
err = sd_write(intfhdl, ftaddr, cnt, buf);
} else {
u8 *tmpbuf;
u32 n;
ftaddr &= ~(u16)0x3;
n = cnt + shift;
tmpbuf = rtw_malloc(n);
if (!tmpbuf)
return -1;
err = sd_read(intfhdl, ftaddr, 4, tmpbuf);
if (err) {
kfree(tmpbuf);
return err;
}
memcpy(tmpbuf+shift, buf, cnt);
err = sd_write(intfhdl, ftaddr, n, tmpbuf);
kfree(tmpbuf);
}
return err;
}
开发者ID:Lyude,项目名称:linux,代码行数:46,代码来源:sdio_ops.c
示例16: sdio_local_write
/*
* Todo: align address to 4 bytes.
*/
s32 sdio_local_write(
PADAPTER padapter,
u32 addr,
u32 cnt,
u8 *pbuf)
{
struct intf_hdl * pintfhdl;
u8 bMacPwrCtrlOn;
s32 err;
u8 *ptmpbuf;
if(addr & 0x3)
DBG_8192C("%s, address must be 4 bytes alignment\n", __FUNCTION__);
if(cnt & 0x3)
DBG_8192C("%s, size must be the multiple of 4 \n", __FUNCTION__);
pintfhdl=&padapter->iopriv.intf;
HalSdioGetCmdAddr8723BSdio(padapter, SDIO_LOCAL_DEVICE_ID, addr, &addr);
rtw_hal_get_hwreg(padapter, HW_VAR_APFM_ON_MAC, &bMacPwrCtrlOn);
if ((_FALSE == bMacPwrCtrlOn)
#ifdef CONFIG_LPS_LCLK
|| (_TRUE == adapter_to_pwrctl(padapter)->bFwCurrentInPSMode)
#endif
)
{
err = sd_cmd52_write(pintfhdl, addr, cnt, pbuf);
return err;
}
ptmpbuf = (u8*)rtw_malloc(cnt);
if (!ptmpbuf)
return (-1);
_rtw_memcpy(ptmpbuf, pbuf, cnt);
err = sd_write(pintfhdl, addr, cnt, ptmpbuf);
if (ptmpbuf)
rtw_mfree(ptmpbuf, cnt);
return err;
}
开发者ID:STPJ,项目名称:linux-3.4-sunxi,代码行数:48,代码来源:sdio_ops.c
示例17: sdio_local_read
/*
* Todo: align address to 4 bytes.
*/
s32 sdio_local_read(
PADAPTER padapter,
u32 addr,
u32 cnt,
u8 *pbuf)
{
PSDIO_DATA psdio;
u8 bMacPwrCtrlOn;
s32 err;
u8 *ptmpbuf;
u32 n;
psdio = &adapter_to_dvobj(padapter)->intf_data;
HalSdioGetCmdAddr8723ASdio(padapter, SDIO_LOCAL_DEVICE_ID, addr, &addr);
rtw_hal_get_hwreg(padapter, HW_VAR_APFM_ON_MAC, &bMacPwrCtrlOn);
if ((_FALSE == bMacPwrCtrlOn)
#ifdef CONFIG_LPS_LCLK
|| (_TRUE == padapter->pwrctrlpriv.bFwCurrentInPSMode)
#endif
)
{
err = sd_cmd52_read(psdio, addr, cnt, pbuf);
return err;
}
n = RND4(cnt);
ptmpbuf = (u8*)rtw_malloc(n);
if (!ptmpbuf)
return (-1);
err = sd_read(psdio, addr, n, ptmpbuf);
if (!err)
_rtw_memcpy(pbuf, ptmpbuf, cnt);
if (ptmpbuf)
rtw_mfree(ptmpbuf, n);
return err;
}
开发者ID:zetalabs,项目名称:linux-3.4-sunxi,代码行数:45,代码来源:sdio_ops.c
示例18: sd_recv_loopback
static void sd_recv_loopback(PADAPTER padapter, u32 size)
{
PLOOPBACKDATA ploopback;
u32 readsize, allocsize;
u8 *preadbuf;
readsize = size;
DBG_8192C("%s: read size=%d\n", __func__, readsize);
allocsize = _RND(readsize, adapter_to_dvobj(padapter)->intf_data.block_transfer_len);
ploopback = padapter->ploopback;
if (ploopback) {
ploopback->rxsize = readsize;
preadbuf = ploopback->rxbuf;
}
else {
preadbuf = rtw_malloc(allocsize);
if (preadbuf == NULL) {
DBG_8192C("%s: malloc fail size=%d\n", __func__, allocsize);
return;
}
}
// rtw_read_port(padapter, WLAN_RX0FF_DEVICE_ID, readsize, preadbuf);
sdio_read_port(&padapter->iopriv.intf, WLAN_RX0FF_DEVICE_ID, readsize, preadbuf);
if (ploopback)
_rtw_up_sema(&ploopback->sema);
else {
u32 i;
DBG_8192C("%s: drop pkt\n", __func__);
for (i = 0; i < readsize; i+=4) {
DBG_8192C("%08X", *(u32*)(preadbuf + i));
if ((i+4) & 0x1F) printk(" ");
else printk("\n");
}
printk("\n");
rtw_mfree(preadbuf, allocsize);
}
}
开发者ID:STPJ,项目名称:linux-3.4-sunxi,代码行数:42,代码来源:sdio_ops.c
示例19: sdio_local_write
/*
* Todo: align address to 4 bytes.
*/
s32 sdio_local_write(
struct adapter *adapter,
u32 addr,
u32 cnt,
u8 *buf
)
{
struct intf_hdl *intfhdl;
u8 mac_pwr_ctrl_on;
s32 err;
u8 *tmpbuf;
if (addr & 0x3)
DBG_8192C("%s, address must be 4 bytes alignment\n", __func__);
if (cnt & 0x3)
DBG_8192C("%s, size must be the multiple of 4\n", __func__);
intfhdl = &adapter->iopriv.intf;
HalSdioGetCmdAddr8723BSdio(adapter, SDIO_LOCAL_DEVICE_ID, addr, &addr);
rtw_hal_get_hwreg(adapter, HW_VAR_APFM_ON_MAC, &mac_pwr_ctrl_on);
if (
(!mac_pwr_ctrl_on) ||
(adapter_to_pwrctl(adapter)->bFwCurrentInPSMode)
)
return sd_cmd52_write(intfhdl, addr, cnt, buf);
tmpbuf = rtw_malloc(cnt);
if (!tmpbuf)
return (-1);
memcpy(tmpbuf, buf, cnt);
err = sd_write(intfhdl, addr, cnt, tmpbuf);
kfree(tmpbuf);
return err;
}
开发者ID:Lyude,项目名称:linux,代码行数:44,代码来源:sdio_ops.c
示例20: _sdio_local_read
/*
* Todo: align address to 4 bytes.
*/
s32 _sdio_local_read(
PADAPTER padapter,
u32 addr,
u32 cnt,
u8 *pbuf)
{
struct intf_hdl * pintfhdl;
u8 bMacPwrCtrlOn;
s32 err;
u8 *ptmpbuf;
u32 n;
pintfhdl=&padapter->iopriv.intf;
HalSdioGetCmdAddr8723ASdio(padapter, SDIO_LOCAL_DEVICE_ID, addr, &addr);
rtw_hal_get_hwreg(padapter, HW_VAR_APFM_ON_MAC, &bMacPwrCtrlOn);
if ((_FALSE == bMacPwrCtrlOn)
#ifdef CONFIG_LPS_LCLK
// || (_TRUE == adapter_to_pwrctl(padapter)->bFwCurrentInPSMode)
#endif
)
{
err = _sd_cmd52_read(pintfhdl, addr, cnt, pbuf);
return err;
}
n = RND4(cnt);
ptmpbuf = (u8*)rtw_malloc(n);
if(!ptmpbuf)
return (-1);
err = _sd_read(pintfhdl, addr, n, ptmpbuf);
if (!err)
_rtw_memcpy(pbuf, ptmpbuf, cnt);
if(ptmpbuf)
rtw_mfree(ptmpbuf, n);
return err;
}
开发者ID:OpenLD,项目名称:linux-wetek-3.10.y,代码行数:44,代码来源:sdio_ops.c
注:本文中的rtw_malloc函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论