--- /dev/null
+/*
+ * Copyright (c) 2013 Qualcomm Atheros, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted (subject to the limitations in the
+ * disclaimer below) provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of Qualcomm Atheros nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
+ * GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
+ * HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+#ifndef __ATHOS_API_H__
+#define __ATHOS_API_H__
+
+/*
+ * This file contains wrappers to OS operating system functions
+ * that are available in the Athos version of the operating system.
+ *
+ * Target software must always use these wrappers to access OS
+ * services -- it may not access any OS services directly.
+ *
+ * These wrappers are intended to provide OS-independence for applications.
+ * Using this header file, an application should be able to compile and
+ * fully link without any other OS header files, source files, or
+ * binary files.
+ */
+
+#include <osapi.h>
+#include "dt_defs.h"
+#include "cmnos_api.h"
+#include "Magpie_api.h"
+
+/* ROM Patch API */
+
+/* save the ROM printf function point */
+extern int (* save_cmnos_printf)(const char * fmt, ...);
+
+extern unsigned int _data_start_in_rom;
+extern unsigned int _data_start;
+extern unsigned int _data_end;
+extern unsigned int _bss_start;
+extern unsigned int _bss_end;
+extern unsigned int _stack_sentry;
+extern unsigned int __stack;
+extern unsigned int _fw_image_end;
+
+#if defined(__XTENSA__)
+#define START_DATA _data_start
+#define END_DATA _data_end
+#define START_BSS _bss_start
+#define END_BSS _bss_end
+
+#define STACK_START _stack_sentry
+#define STACK_END __stack
+#endif
+
+struct _A_os_linkage_check {
+ int version;
+ int table;
+};
+
+/*
+ * A_INIT() handles any initialization needed by the OS abstraction,
+ * and it clears the application's BSS, if necessary. (Application BSS
+ * is not cleared if the application is linked into a single image that
+ * includes AthOS.)
+ *
+ * A_INIT() must be called first thing in the application (from app_start)
+ * in order to guarantee that BSS has been cleared properly.
+ */
+static INLINE int
+A_INIT(void)
+{
+ struct _A_os_linkage_check link_check;
+ unsigned int *clrptr;
+
+ if (&START_BSS != _A_MAGPIE_INDIRECTION_TABLE->cmnos.start_bss) {
+ /* Clear BSS */
+ for (clrptr = &START_BSS; clrptr < &END_BSS; clrptr++) {
+ *clrptr = 0;
+ }
+ }
+
+ /* Copy writable data from flash to RAM. */
+ unsigned int *srcptr, *destptr;
+
+ /*
+ * The _data_start symbol points to the start of data IN FLASH.
+ * It is defined by flash.ld at application link time. If flash.ld
+ * is not used, it is defined (on the link line) as 0.
+ */
+ static int *data_start_addr = &_data_start;
+
+ if (data_start_addr != 0) {
+ for (srcptr = &_data_start, destptr = &START_DATA;
+ destptr < &END_DATA;
+ srcptr++, destptr++) {
+ *destptr = *srcptr;
+ }
+ }
+
+#define OS_LINKAGE_VERSION 4
+ link_check.version = OS_LINKAGE_VERSION;
+ link_check.table = _A_MAGPIE_INDIRECTION_TABLE_SIZE;
+
+ return A_CMN(hal_linkage_check(sizeof(link_check), &link_check));
+}
+
+#endif /* __ATHOS_API_H__ */
+
+++ /dev/null
-/*
- * Copyright (c) 2013 Qualcomm Atheros, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted (subject to the limitations in the
- * disclaimer below) provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the
- * distribution.
- *
- * * Neither the name of Qualcomm Atheros nor the names of its
- * contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
- * GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
- * HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
- * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
- * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
- * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-#ifndef __ATHOS_API_H__
-#define __ATHOS_API_H__
-
-/*
- * This file contains wrappers to OS operating system functions
- * that are available in the Athos version of the operating system.
- *
- * Target software must always use these wrappers to access OS
- * services -- it may not access any OS services directly.
- *
- * These wrappers are intended to provide OS-independence for applications.
- * Using this header file, an application should be able to compile and
- * fully link without any other OS header files, source files, or
- * binary files.
- */
-
-#include <osapi.h>
-#include "dt_defs.h"
-#include "cmnos_api.h"
-#include "Magpie_api.h"
-
-/* ROM Patch API */
-
-/* save the ROM printf function point */
-extern int (* save_cmnos_printf)(const char * fmt, ...);
-
-extern unsigned int _data_start_in_rom;
-extern unsigned int _data_start;
-extern unsigned int _data_end;
-extern unsigned int _bss_start;
-extern unsigned int _bss_end;
-extern unsigned int _stack_sentry;
-extern unsigned int __stack;
-extern unsigned int _fw_image_end;
-
-#if defined(__XTENSA__)
-#define START_DATA _data_start
-#define END_DATA _data_end
-#define START_BSS _bss_start
-#define END_BSS _bss_end
-
-#define STACK_START _stack_sentry
-#define STACK_END __stack
-#endif
-
-struct _A_os_linkage_check {
- int version;
- int table;
-};
-
-/*
- * A_INIT() handles any initialization needed by the OS abstraction,
- * and it clears the application's BSS, if necessary. (Application BSS
- * is not cleared if the application is linked into a single image that
- * includes AthOS.)
- *
- * A_INIT() must be called first thing in the application (from app_start)
- * in order to guarantee that BSS has been cleared properly.
- */
-static INLINE int
-A_INIT(void)
-{
- struct _A_os_linkage_check link_check;
- unsigned int *clrptr;
-
- if (&START_BSS != _A_MAGPIE_INDIRECTION_TABLE->cmnos.start_bss) {
- /* Clear BSS */
- for (clrptr = &START_BSS; clrptr < &END_BSS; clrptr++) {
- *clrptr = 0;
- }
- }
-
- /* Copy writable data from flash to RAM. */
- unsigned int *srcptr, *destptr;
-
- /*
- * The _data_start symbol points to the start of data IN FLASH.
- * It is defined by flash.ld at application link time. If flash.ld
- * is not used, it is defined (on the link line) as 0.
- */
- static int *data_start_addr = &_data_start;
-
- if (data_start_addr != 0) {
- for (srcptr = &_data_start, destptr = &START_DATA;
- destptr < &END_DATA;
- srcptr++, destptr++) {
- *destptr = *srcptr;
- }
- }
-
-#define OS_LINKAGE_VERSION 4
- link_check.version = OS_LINKAGE_VERSION;
- link_check.table = _A_MAGPIE_INDIRECTION_TABLE_SIZE;
-
- return A_CMN(hal_linkage_check(sizeof(link_check), &link_check));
-}
-
-#endif /* __ATHOS_API_H__ */
-
+++ /dev/null
-/*
- * Copyright (c) 2013 Qualcomm Atheros, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted (subject to the limitations in the
- * disclaimer below) provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the
- * distribution.
- *
- * * Neither the name of Qualcomm Atheros nor the names of its
- * contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
- * GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
- * HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
- * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
- * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
- * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-#ifndef __ATHOS_API_H__
-#define __ATHOS_API_H__
-
-/*
- * This file contains wrappers to OS operating system functions
- * that are available in the Athos version of the operating system.
- *
- * Target software must always use these wrappers to access OS
- * services -- it may not access any OS services directly.
- *
- * These wrappers are intended to provide OS-independence for applications.
- * Using this header file, an application should be able to compile and
- * fully link without any other OS header files, source files, or
- * binary files.
- */
-
-#include <osapi.h>
-#include "dt_defs.h"
-#include "cmnos_api.h"
-//#include "HIF_api.h"
-//#include "vbuf_api.h"
-//#include "vdesc_api.h"
-//#include "htc_api.h"
-#include "Magpie_api.h"
-
-/* ROM Patch API */
-
-
-/* HTC API */
-
-
-/* WMI Adaptive API - required for WMI SVCs as they refer some of them*/
-
-
-/* WLAN WMI API - required for WMI SVCs and others...*/
-
-#if 0
-#define A_INDIR(sym) _A_OS_INDIRECTION_TABLE->sym
-
-/* HIF support */
-#define HIF_MODULE_INSTALL() hif_module_install(&_A_OS_INDIRECTION_TABLE->hif)
-#define HIF_init(pConfig) A_INDIR(hif._init(pConfig))
-#define HIF_start() A_INDIR(hif._start())
-#define HIF_config_pipe(pipe, desc_list) A_INDIR(hif._config_pipe(pipe, desc_list))
-#define HIF_send_buffer(pipe, buf) A_INDIR(hif._send_buffer(pipe, buf))
-#define HIF_return_recv_buf(pipe, buf) A_INDIR(hif._return_recv_buf(pipe, buf))
-#define HIF_isr_handler() A_INDIR(hif._isr_handler())
-#define HIF_is_pipe_supported(pipe) A_INDIR(hif._is_pipe_supported(pipe))
-
-/* VBUF APIs */
-#define VBUF_MODULE_INSTALL() vbuf_module_install(&_A_OS_INDIRECTION_TABLE->vbuf)
-#define VBUF_init(dataAddr, nBuf) A_INDIR(vbuf._init(dataAddr, nBuf))
-#define VBUF_alloc_vbuf() A_INDIR(vbuf._alloc_vbuf())
-#define VBUF_free_vbuf(buf) A_INDIR(vbuf._free_vbuf(buf))
-
-/* VDESC APIs */
-#define VDESC_MODULE_INSTALL() vdesc_module_install(&_A_OS_INDIRECTION_TABLE->vdesc)
-#define VDESC_init(dataAddr, nTxDesc, nRxDesc) A_INDIR(vdesc._init(dataAddr, nTxDesc, nRxDesc))
-#define VDESC_alloc_vdesc(type) A_INDIR(vdesc._alloc_vdesc(type))
-#define VDESC_get_hw_desc(type, desc) A_INDIR(vdesc._get_hw_desc(type, desc))
-//#define VDESC_free_vdesc(buf) A_INDIR(vdesc._free_vdesc(buf))
-
-#define HTC_MODULE_INSTALL() htc_module_install(&_A_OS_INDIRECTION_TABLE->htc)
-//#define HTC_init(dataAddr, SetupComplete, RecvBufferSize) A_INDIR(htc._HTC_Init(dataAddr, SetupComplete, RecvBufferSize))
-#define HTC_init(dataAddr, SetupComplete, pConfig) A_INDIR(htc._HTC_Init(dataAddr, SetupComplete, pConfig))
-#define HTC_RegisterService(s) A_INDIR(htc._HTC_RegisterService(s))
-#define HTC_Ready() A_INDIR(htc._HTC_Ready())
-#define HTC_SendMsg(endpt, buf) A_INDIR(htc._HTC_SendMsg(endpt, buf))
-#define HTC_ReturnBuffers(endpt, buf) A_INDIR(htc._HTC_ReturnBuffers(endpt, buf))
-
-#if 0
-/* WMI SVC module */
-#define WMI_SERVICE_MODULE_INSTALL() WMI_service_module_install(&_A_OS_INDIRECTION_TABLE->wmi_svc_api)
-#define WMI_Init(dataAddr, pCfg) A_INDIR(wmi_svc_api._WMI_Init(dataAddr, pCfg))
-#define WMI_RegisterDispatchTable(pT) A_INDIR(wmi_svc_api._WMI_RegisterDispatchTable(pT))
-#define WMI_AllocEvent(ec,len) A_INDIR(wmi_svc_api._WMI_AllocEvent(ec, len))
-#define WMI_SendEvent(ev,id,seq,len) A_INDIR(wmi_svc_api._WMI_SendEvent(ev, id, seq, len))
-#define WMI_GetPendingEventsCount() A_INDIR(wmi_svc_api._WMI_GetPendingEventsCount())
-#define WMI_GetControlEp() A_INDIR(wmi_svc_api._WMI_GetControlEp())
-#define WMI_SendCompleteHandler(ep, buf) A_INDIR(wmi_svc_api._WMI_SendCompleteHandler(ep, buf))
-#endif
-
-/*
- * This defines the layout of the indirection table, which
- * is used to access exported APIs of various modules. The
- * layout is shared across ROM and RAM code. RAM code may
- * call into ROM and ROM code may call into RAM. Because
- * of the latter, existing offsets must not change for the
- * lifetime of a revision of ROM; but new members may be
- * added at the end.
- */
-typedef struct _A_athos_indirection_table {
- _A_cmnos_indirection_table_t cmnos;
-
- /* TBD: to be added */
- struct hif_api hif;
- struct vbuf_api vbuf;
- struct vdesc_api vdesc;
- struct htc_apis htc;
- //WMI_SVC_APIS wmi_svc_api;
-} _A_athos_indirection_table_t;
-
-#if 1
-extern _A_athos_indirection_table_t _indir_tbl;
-#define _A_OS_INDIRECTION_TABLE_SIZE sizeof(_A_athos_indirection_table_t)
-#define _A_OS_INDIRECTION_TABLE (&_indir_tbl)
-#endif
-#endif
-
-extern unsigned int _data_start_in_rom;
-extern unsigned int _data_start;
-extern unsigned int _data_end;
-extern unsigned int _bss_start;
-extern unsigned int _bss_end;
-extern unsigned int _stack_sentry;
-extern unsigned int __stack;
-extern unsigned int _fw_image_end;
-
-#if defined(__XTENSA__)
-#define START_DATA _data_start
-#define END_DATA _data_end
-#define START_BSS _bss_start
-#define END_BSS _bss_end
-
-#define STACK_START _stack_sentry
-#define STACK_END __stack
-#endif
-
-
-struct _A_os_linkage_check {
- int version;
- int table;
-};
-
-
-/*
- * A_INIT() handles any initialization needed by the OS abstraction,
- * and it clears the application's BSS, if necessary. (Application BSS
- * is not cleared if the application is linked into a single image that
- * includes AthOS.)
- *
- * A_INIT() must be called first thing in the application (from app_start)
- * in order to guarantee that BSS has been cleared properly.
- */
-static INLINE int
-A_INIT(void)
-{
- struct _A_os_linkage_check link_check;
- unsigned int *clrptr;
-
- if (&START_BSS != _A_MAGPIE_INDIRECTION_TABLE->cmnos.start_bss) {
- /* Clear BSS */
- for (clrptr = &START_BSS; clrptr < &END_BSS; clrptr++) {
- *clrptr = 0;
- }
- }
-
- {
- /* Copy writable data from flash to RAM. */
- unsigned int *srcptr, *destptr;
-
- /*
- * The _data_start symbol points to the start of data IN FLASH.
- * It is defined by flash.ld at application link time. If flash.ld
- * is not used, it is defined (on the link line) as 0.
- */
- static int *data_start_addr = &_data_start;
-
- if (data_start_addr != 0) {
- for (srcptr = &_data_start, destptr = &START_DATA;
- destptr < &END_DATA;
- srcptr++, destptr++)
- {
- *destptr = *srcptr;
- }
- }
- }
-
-#define OS_LINKAGE_VERSION 4
- link_check.version = OS_LINKAGE_VERSION;
- link_check.table = _A_MAGPIE_INDIRECTION_TABLE_SIZE;
-
- return A_CMN(hal_linkage_check(sizeof(link_check), &link_check));
-}
-
-
-#endif /* __ATHOS_API_H__ */
-