| /* |
| * Copyright (c) 2007-2008 Atheros Communications Inc. |
| * |
| * Permission to use, copy, modify, and/or distribute this software for any |
| * purpose with or without fee is hereby granted, provided that the above |
| * copyright notice and this permission notice appear in all copies. |
| * |
| * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
| * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
| * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
| * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
| * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
| * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
| * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
| */ |
| /* Module Name : wrap_mem.c */ |
| /* */ |
| /* Abstract */ |
| /* This module contains wrapper functions for memory management */ |
| /* */ |
| /* NOTES */ |
| /* Platform dependent. */ |
| /* */ |
| /************************************************************************/ |
| |
| #include "oal_dt.h" |
| #include "usbdrv.h" |
| |
| #include <linux/netlink.h> |
| #include <linux/slab.h> |
| #include <net/iw_handler.h> |
| |
| /* Memory management */ |
| /* Called to allocate uncached memory, allocated memory must */ |
| /* in 4-byte boundary */ |
| void *zfwMemAllocate(zdev_t *dev, u32_t size) |
| { |
| void *mem = NULL; |
| mem = kmalloc(size, GFP_ATOMIC); |
| return mem; |
| } |
| |
| |
| /* Called to free allocated memory */ |
| void zfwMemFree(zdev_t *dev, void *mem, u32_t size) |
| { |
| kfree(mem); |
| return; |
| } |
| |
| void zfwMemoryCopy(u8_t *dst, u8_t *src, u16_t length) |
| { |
| /* u16_t i; */ |
| |
| memcpy(dst, src, length); |
| /* |
| * for(i=0; i<length; i++) |
| * { |
| * dst[i] = src[i]; |
| * } |
| */ |
| return; |
| } |
| |
| void zfwZeroMemory(u8_t *va, u16_t length) |
| { |
| /* u16_t i; */ |
| memset(va, 0, length); |
| /* |
| * for(i=0; i<length; i++) |
| * { |
| * va[i] = 0; |
| * } |
| */ |
| return; |
| } |
| |
| void zfwMemoryMove(u8_t *dst, u8_t *src, u16_t length) |
| { |
| memcpy(dst, src, length); |
| return; |
| } |
| |
| u8_t zfwMemoryIsEqual(u8_t *m1, u8_t *m2, u16_t length) |
| { |
| /* u16_t i; */ |
| int ret; |
| |
| ret = memcmp(m1, m2, length); |
| |
| return ((ret == 0) ? TRUE : FALSE); |
| /* |
| * for(i=0; i<length; i++) |
| *{ |
| * if ( m1[i] != m2[i] ) |
| * { |
| * return FALSE; |
| * } |
| *} |
| * |
| * return TRUE; |
| */ |
| } |
| |
| /* Leave an empty line below to remove warning message on some compiler */ |