11094c01fSSam Leffler /*- 21094c01fSSam Leffler * Copyright (c) 2002-2008 Sam Leffler, Errno Consulting 31094c01fSSam Leffler * All rights reserved. 41094c01fSSam Leffler * 51094c01fSSam Leffler * Redistribution and use in source and binary forms, with or without 61094c01fSSam Leffler * modification, are permitted provided that the following conditions 71094c01fSSam Leffler * are met: 81094c01fSSam Leffler * 1. Redistributions of source code must retain the above copyright 91094c01fSSam Leffler * notice, this list of conditions and the following disclaimer, 101094c01fSSam Leffler * without modification. 111094c01fSSam Leffler * 2. Redistributions in binary form must reproduce at minimum a disclaimer 121094c01fSSam Leffler * similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any 131094c01fSSam Leffler * redistribution must be conditioned upon including a substantially 141094c01fSSam Leffler * similar Disclaimer requirement for further binary redistribution. 151094c01fSSam Leffler * 161094c01fSSam Leffler * NO WARRANTY 171094c01fSSam Leffler * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 181094c01fSSam Leffler * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 191094c01fSSam Leffler * LIMITED TO, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTIBILITY 201094c01fSSam Leffler * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL 211094c01fSSam Leffler * THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, 221094c01fSSam Leffler * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 231094c01fSSam Leffler * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 241094c01fSSam Leffler * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER 251094c01fSSam Leffler * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 261094c01fSSam Leffler * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 271094c01fSSam Leffler * THE POSSIBILITY OF SUCH DAMAGES. 281094c01fSSam Leffler * 291094c01fSSam Leffler * $FreeBSD$ 301094c01fSSam Leffler */ 311094c01fSSam Leffler #ifndef _ATH_AH_OSDEP_H_ 321094c01fSSam Leffler #define _ATH_AH_OSDEP_H_ 331094c01fSSam Leffler /* 341094c01fSSam Leffler * Atheros Hardware Access Layer (HAL) OS Dependent Definitions. 351094c01fSSam Leffler */ 361094c01fSSam Leffler #include <sys/param.h> 371094c01fSSam Leffler 38*60caf0c9SCraig Rodrigues #include <strings.h> 39*60caf0c9SCraig Rodrigues 401094c01fSSam Leffler /* 411094c01fSSam Leffler * Bus i/o type definitions. 421094c01fSSam Leffler */ 431094c01fSSam Leffler typedef void *HAL_SOFTC; 441094c01fSSam Leffler typedef int HAL_BUS_TAG; 451094c01fSSam Leffler typedef void *HAL_BUS_HANDLE; 46726af9c0SAdrian Chadd typedef uint32_t HAL_DMA_ADDR; 471094c01fSSam Leffler 481094c01fSSam Leffler #define OS_DELAY(_n) DELAY(_n) 491094c01fSSam Leffler #define OS_INLINE __inline 501094c01fSSam Leffler #define OS_MEMZERO(_a, _size) bzero((_a), (_size)) 511094c01fSSam Leffler #define OS_MEMCPY(_dst, _src, _size) bcopy((_src), (_dst), (_size)) 521094c01fSSam Leffler #define OS_MACEQU(_a, _b) \ 531094c01fSSam Leffler (bcmp((_a), (_b), IEEE80211_ADDR_LEN) == 0) 541094c01fSSam Leffler 551094c01fSSam Leffler struct ath_hal; 561094c01fSSam Leffler extern u_int32_t OS_GETUPTIME(struct ath_hal *); 571094c01fSSam Leffler extern void OS_REG_WRITE(struct ath_hal *, u_int32_t, u_int32_t); 581094c01fSSam Leffler extern u_int32_t OS_REG_READ(struct ath_hal *, u_int32_t); 591094c01fSSam Leffler extern void OS_MARK(struct ath_hal *, u_int id, u_int32_t value); 601094c01fSSam Leffler #define OS_GETUPTIME(_ah) 0 611094c01fSSam Leffler #define OS_REG_WRITE(_ah, _reg, _val) 621094c01fSSam Leffler #define OS_REG_READ(_ah, _reg) 0 631094c01fSSam Leffler #define OS_MARK(_ah, _id, _v) 641094c01fSSam Leffler #define __packed __attribute__((__packed__)) 651094c01fSSam Leffler 661094c01fSSam Leffler /* 671094c01fSSam Leffler * Linux/BSD gcc compatibility shims. 681094c01fSSam Leffler */ 691094c01fSSam Leffler #ifndef __printflike 701094c01fSSam Leffler #define __printflike(_a,_b) \ 711094c01fSSam Leffler __attribute__ ((__format__ (__printf__, _a, _b))) 721094c01fSSam Leffler #endif 731094c01fSSam Leffler #include <stdarg.h> 741094c01fSSam Leffler #ifndef __va_list 751094c01fSSam Leffler #define __va_list va_list 761094c01fSSam Leffler #endif 771094c01fSSam Leffler #define OS_INLINE __inline 781094c01fSSam Leffler #endif /* _ATH_AH_OSDEP_H_ */ 79