xref: /freebsd/tools/tools/ath/common/ah_osdep.h (revision 60caf0c9c2848b8389cc3159bbc219dd408a2496)
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