summaryrefslogtreecommitdiff
path: root/software/include
diff options
context:
space:
mode:
Diffstat (limited to 'software/include')
-rw-r--r--software/include/apilib/octapi_bt0.h75
-rw-r--r--software/include/apilib/octapi_largmath.h69
-rw-r--r--software/include/apilib/octapi_llman.h142
-rw-r--r--software/include/oct6100api/oct6100_adpcm_chan_inst.h74
-rw-r--r--software/include/oct6100api/oct6100_adpcm_chan_pub.h90
-rw-r--r--software/include/oct6100api/oct6100_api.h84
-rw-r--r--software/include/oct6100api/oct6100_api_inst.h138
-rw-r--r--software/include/oct6100api/oct6100_apimi.h69
-rw-r--r--software/include/oct6100api/oct6100_apiud.h309
-rw-r--r--software/include/oct6100api/oct6100_channel_inst.h386
-rw-r--r--software/include/oct6100api/oct6100_channel_pub.h542
-rw-r--r--software/include/oct6100api/oct6100_chip_open_inst.h511
-rw-r--r--software/include/oct6100api/oct6100_chip_open_pub.h222
-rw-r--r--software/include/oct6100api/oct6100_chip_stats_inst.h84
-rw-r--r--software/include/oct6100api/oct6100_chip_stats_pub.h149
-rw-r--r--software/include/oct6100api/oct6100_conf_bridge_inst.h104
-rw-r--r--software/include/oct6100api/oct6100_conf_bridge_pub.h169
-rw-r--r--software/include/oct6100api/oct6100_debug_inst.h121
-rw-r--r--software/include/oct6100api/oct6100_debug_pub.h75
-rw-r--r--software/include/oct6100api/oct6100_defines.h642
-rw-r--r--software/include/oct6100api/oct6100_errors.h816
-rw-r--r--software/include/oct6100api/oct6100_events_inst.h69
-rw-r--r--software/include/oct6100api/oct6100_events_pub.h112
-rw-r--r--software/include/oct6100api/oct6100_interrupts_inst.h134
-rw-r--r--software/include/oct6100api/oct6100_interrupts_pub.h102
-rw-r--r--software/include/oct6100api/oct6100_mixer_inst.h86
-rw-r--r--software/include/oct6100api/oct6100_mixer_pub.h77
-rw-r--r--software/include/oct6100api/oct6100_phasing_tsst_inst.h68
-rw-r--r--software/include/oct6100api/oct6100_phasing_tsst_pub.h77
-rw-r--r--software/include/oct6100api/oct6100_playout_buf_inst.h88
-rw-r--r--software/include/oct6100api/oct6100_playout_buf_pub.h183
-rw-r--r--software/include/oct6100api/oct6100_remote_debug_inst.h73
-rw-r--r--software/include/oct6100api/oct6100_remote_debug_pub.h64
-rw-r--r--software/include/oct6100api/oct6100_tlv_inst.h72
-rw-r--r--software/include/oct6100api/oct6100_tone_detection_inst.h46
-rw-r--r--software/include/oct6100api/oct6100_tone_detection_pub.h74
-rw-r--r--software/include/oct6100api/oct6100_tsi_cnct_inst.h70
-rw-r--r--software/include/oct6100api/oct6100_tsi_cnct_pub.h77
-rw-r--r--software/include/oct6100api/oct6100_tsst_inst.h55
-rw-r--r--software/include/octdef.h113
-rw-r--r--software/include/octmac.h98
-rw-r--r--software/include/octosdependant.h155
-rw-r--r--software/include/octrpc/oct6100_rpc_protocol.h348
-rw-r--r--software/include/octrpc/rpc_protocol.h115
-rw-r--r--software/include/octtype.h152
-rw-r--r--software/include/octtypevx.h129
-rw-r--r--software/include/octtypewin.h92
47 files changed, 7600 insertions, 0 deletions
diff --git a/software/include/apilib/octapi_bt0.h b/software/include/apilib/octapi_bt0.h
new file mode 100644
index 0000000..d130c8b
--- /dev/null
+++ b/software/include/apilib/octapi_bt0.h
@@ -0,0 +1,75 @@
+/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
+
+File: octapi_bt0.h
+
+ Copyright (c) 2001-2005 Octasic Inc.
+
+Description:
+
+ Library used to manage a binary tree of variable max size. Library is
+ made to use one block of contiguous memory to manage the tree.
+
+This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API is
+free software; you can redistribute it and/or modify it under the terms of
+the GNU General Public License as published by the Free Software Foundation;
+either version 2 of the License, or (at your option) any later version.
+
+The OCT6100 GPL API is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with the OCT6100 GPL API; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+$Octasic_Release: OCT612xAPI-01.00-PR38 $
+
+$Octasic_Revision: 11 $
+
+\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
+#ifndef __OCTAPI_BT0_H__
+#define __OCTAPI_BT0_H__
+
+#include "octdef.h"
+
+#define OCTAPI_BT0_BASE 0xFFFF0000
+#define OCTAPI_BT0_KEY_SIZE_NOT_MUTLIPLE_OF_UINT32 OCTAPI_BT0_BASE+0x0001
+#define OCTAPI_BT0_DATA_SIZE_NOT_MUTLIPLE_OF_UINT32 OCTAPI_BT0_BASE+0x0002
+#define OCTAPI_BT0_MALLOC_FAILED OCTAPI_BT0_BASE+0x0003
+#define OCTAPI_BT0_NO_NODES_AVAILABLE OCTAPI_BT0_BASE+0x0004
+#define OCTAPI_BT0_KEY_ALREADY_IN_TREE OCTAPI_BT0_BASE+0x0005
+#define OCTAPI_BT0_KEY_NOT_IN_TREE OCTAPI_BT0_BASE+0x0006
+
+/* Possible result for Find Or Add function. */
+#define OCTAPI0_BT0_NODE_FOUND 0
+#define OCTAPI0_BT0_NODE_ADDDED 1
+
+#define OCTAPI_BT0_NO_SMALLER_KEY 0xAAAAAAAA
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+#define octapi_bt0_get_size( number_of_items, key_size, data_size, b_size ) OctApiBt0GetSize( (UINT32) number_of_items,(UINT32) key_size, (UINT32) data_size, (PUINT32) b_size )
+#define octapi_bt0_init( b, number_of_items, key_size, data_size ) OctApiBt0Init( (void **) b,(UINT32) number_of_items,(UINT32) key_size, (UINT32) data_size )
+#define octapi_bt0_add_node( b, key, data ) OctApiBt0AddNode( (void *) b,(void *) key,(void **) data )
+#define octapi_bt0_remove_node( b, key ) OctApiBt0RemoveNode( (void *) b,(void *) key )
+#define octapi_bt0_query_node( b, key, data ) OctApiBt0QueryNode( (void *) b,(void *) key,(void **) data )
+#define octapi_bt0_get_first_node( b, key, data ) OctApiBt0GetFirstNode( (void *) b,(void **) key, (void **) data )
+
+UINT32 OctApiBt0GetSize( UINT32 number_of_items, UINT32 key_size, UINT32 data_size, UINT32 * b_size );
+UINT32 OctApiBt0Init( void ** b, UINT32 number_of_items, UINT32 key_size, UINT32 data_size );
+UINT32 OctApiBt0AddNode( void * b, void * key, void ** data );
+UINT32 OctApiBt0RemoveNode( void * b, void * key );
+UINT32 OctApiBt0QueryNode( void * b, void * key, void ** data );
+UINT32 OctApiBt0GetFirstNode( void * b, void ** key, void ** data );
+UINT32 OctApiBt0FindOrAddNode( void * b, void * key, void ** data, UINT32 *fnct_result );
+
+UINT32 OctApiBt0AddNodeReportPrevNodeData( void * b, void * key, void ** data, void ** prev_data, UINT32 *fnct_result );
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /*__OCTAPI_BT0_H__*/
diff --git a/software/include/apilib/octapi_largmath.h b/software/include/apilib/octapi_largmath.h
new file mode 100644
index 0000000..cbbfc12
--- /dev/null
+++ b/software/include/apilib/octapi_largmath.h
@@ -0,0 +1,69 @@
+/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
+
+File: octapi_largmath.h
+
+ Copyright (c) 2001-2005 Octasic Inc.
+
+Description:
+
+ Library used to perform arithmetic on integer values of an integer multiple
+ of 32-bits.
+
+This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API is
+free software; you can redistribute it and/or modify it under the terms of
+the GNU General Public License as published by the Free Software Foundation;
+either version 2 of the License, or (at your option) any later version.
+
+The OCT6100 GPL API is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with the OCT6100 GPL API; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+$Octasic_Release: OCT612xAPI-01.00-PR38 $
+
+$Octasic_Revision: 6 $
+
+\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
+#ifndef __OCTAPI_LARGMATH_H__
+#define __OCTAPI_LARGMATH_H__
+
+#include "octdef.h"
+
+#define OCTAPI_LM_DIVISION_BY_ZERO 0xFFFF
+#define OCTAPI_LM_OVERFLOW 0xFFFE
+#define OCTAPI_LM_ARRAY_SIZE_MISMATCH 0xFFFD
+
+#define OCTAPI_LM_MAX_OPTIMIZE_MUL 10
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+#define octapi_lm_add( a, alen, b, blen, z, zlen ) OctApiLmAdd( (PUINT32) a, (USHORT) alen, (PUINT32) b, (USHORT) blen, (PUINT32) z, (USHORT) zlen )
+#define octapi_lm_subtract( a, alen, bneg, blen, z, zlen, neg ) OctApiLmSubtract( (PUINT32) a, (USHORT) alen, (PUINT32) bneg, (USHORT) blen, (PUINT32) z, (USHORT) zlen, (USHORT*) neg )
+#define octapi_lm_compare( a, alen, bneg, blen, neg ) OctApiLmCompare( (PUINT32) a, (USHORT) alen, (PUINT32) bneg, (USHORT) blen, (USHORT*) neg )
+#define octapi_lm_multiply( a, b, ablen, z ) OctApiLmMultiply( (PUINT32) a, (PUINT32) b, (USHORT) ablen, (PUINT32) z )
+#define octapi_lm_divide( n, d, q, r, ndqrlen ) OctApiLmDivide( (PUINT32) n, (PUINT32) d, (PUINT32) q, (PUINT32) r, (USHORT) ndqrlen )
+#define octapi_lm_shiftright1( a, alen ) OctApiLmShiftRight1( (PUINT32) a, (USHORT) alen )
+#define octapi_lm_shiftn( a, alen, shiftleft, shiftn ) OctApiLmShiftn( (PUINT32) a, (USHORT) alen, (USHORT) shiftleft, (USHORT) shiftn )
+#define octapi_lm_getmsb( a, alen, msb_pos ) OctApiLmGetMsb( (PUINT32) a, (USHORT) alen, (USHORT*) msb_pos )
+
+
+UINT32 OctApiLmAdd( PUINT32 a, USHORT alen, PUINT32 b, USHORT blen, PUINT32 z, USHORT zlen );
+UINT32 OctApiLmSubtract( PUINT32 a, USHORT alen, PUINT32 bneg, USHORT blen, PUINT32 z, USHORT zlen, PUSHORT neg );
+UINT32 OctApiLmCompare( PUINT32 a, USHORT alen, PUINT32 bneg, USHORT blen, PUSHORT neg );
+UINT32 OctApiLmMultiply( PUINT32 a, PUINT32 b, USHORT ablen, PUINT32 z );
+UINT32 OctApiLmDivide( PUINT32 n, PUINT32 d, PUINT32 q, PUINT32 r, USHORT ndqrlen );
+UINT32 OctApiLmShiftRight1( PUINT32 a, USHORT alen );
+UINT32 OctApiLmShiftn( PUINT32 a, USHORT alen, USHORT shiftleft, USHORT shiftn );
+UINT32 OctApiLmGetMsb( PUINT32 a, USHORT alen, PUSHORT msb_pos );
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* __OCTAPI_LARGMATH_H__ */
diff --git a/software/include/apilib/octapi_llman.h b/software/include/apilib/octapi_llman.h
new file mode 100644
index 0000000..131281c
--- /dev/null
+++ b/software/include/apilib/octapi_llman.h
@@ -0,0 +1,142 @@
+/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
+
+File: octapi_llman.h
+
+ Copyright (c) 2001-2005 Octasic Inc.
+
+Description:
+
+ Library used to manage allocation tables and linked lists. The library is
+ made such that only a block of contiguous memory is needed for the
+ management of the linked list/allocation table.
+
+This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API is
+free software; you can redistribute it and/or modify it under the terms of
+the GNU General Public License as published by the Free Software Foundation;
+either version 2 of the License, or (at your option) any later version.
+
+The OCT6100 GPL API is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with the OCT6100 GPL API; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+$Octasic_Release: OCT612xAPI-01.00-PR38 $
+
+$Octasic_Revision: 8 $
+
+\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
+#ifndef __OCTAPI_LLMAN_H__
+#define __OCTAPI_LLMAN_H__
+
+#include "octdef.h"
+
+/* Error defines. */
+#define OCTAPI_LLM_MEMORY_NOT_ALLOCATED 0xFFFFFFFF
+#define OCTAPI_LLM_NO_STRUCTURES_LEFT 0xFFFFFFFE
+#define OCTAPI_LLM_BLOCKNUM_OUT_OF_RANGE 0xFFFFFFFD
+#define OCTAPI_LLM_ELEMENT_ALREADY_ASSIGNED 0xFFFFFFFC
+#define OCTAPI_LLM_ELEMENT_NOT_FOUND 0xFFFFFFFB
+#define OCTAPI_LLM_LIST_EMPTY 0xFFFFFFFA
+#define OCTAPI_LLM_INVALID_LIST_HANDLE 0xFFFFFFF9
+#define OCTAPI_LLM_TREE_NODE_ABSENT 0xFFFFFFF8
+#define OCTAPI_LLM_INTERNAL_ERROR0 0xFFFFFFF7
+#define OCTAPI_LLM_INTERNAL_ERROR1 0xFFFFFFF6
+#define OCTAPI_LLM_INVALID_PARAMETER 0xFFFFFFF5
+
+#define OCTAPI_LLM2_MEMORY_NOT_ALLOCATED 0xFEFFFFFF
+#define OCTAPI_LLM2_NO_STRUCTURES_LEFT 0xFEFFFFFE
+#define OCTAPI_LLM2_BLOCKNUM_OUT_OF_RANGE 0xFEFFFFFD
+#define OCTAPI_LLM2_ELEMENT_ALREADY_ASSIGNED 0xFEFFFFFC
+#define OCTAPI_LLM2_ELEMENT_NOT_FOUND 0xFEFFFFFB
+#define OCTAPI_LLM2_LIST_EMPTY 0xFEFFFFFA
+#define OCTAPI_LLM2_INVALID_LIST_HANDLE 0xFEFFFFF9
+#define OCTAPI_LLM2_TREE_NODE_ABSENT 0xFEFFFFF8
+#define OCTAPI_LLM2_INTERNAL_ERROR0 0xFEFFFFF7
+#define OCTAPI_LLM2_INTERNAL_ERROR1 0xFEFFFFF6
+#define OCTAPI_LLM2_INVALID_PARAMETER 0xFEFFFFF5
+
+/* Other defines. */
+#define OCTAPI_LLM_LIST_APPEND 0xFFFFFFFF
+#define OCTAPI_LLM2_INSERT_ERROR 0xFFFFFFFF
+#define OCTAPI_LLM2_INSERT_FIRST_NODE 0xFFFF0000
+#define OCTAPI_LLM2_INSERT_LIST_NODE 0xFFFF0001
+#define OCTAPI_LLM2_INSERT_LAST_NODE 0xFFFF0002
+#define OCTAPI_LLM2_INSERT_BEFORE_LAST_NODE 0xFFFF0003
+#define OCTAPI_LLM2_REMOVE_ERROR 0xFFFFFFFF
+#define OCTAPI_LLM2_REMOVE_FIRST_NODE 0xFFFF0004
+#define OCTAPI_LLM2_REMOVE_LIST_NODE 0xFFFF0005
+#define OCTAPI_LLM2_REMOVE_LAST_NODE 0xFFFF0006
+#define OCTAPI_LLM2_REMOVE_BEFORE_LAST_NODE 0xFFFF0007
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+#define octapi_llm_alloc_get_size( number_of_items, l_size ) OctapiLlmAllocGetSize( (UINT32) number_of_items,(PUINT32) l_size )
+#define octapi_llm_alloc_init( l, number_of_items ) OctapiLlmAllocInit( (PVOID*) l,(UINT32) number_of_items )
+#define octapi_llm_alloc_info( l, allocated_items, available_items ) OctapiLlmAllocInfo( (PVOID) l, (PUINT32) allocated_items, (PUINT32) available_items )
+#define octapi_llm_alloc_alloc( l, blocknum ) OctapiLlmAllocAlloc( (PVOID) l, (PUINT32) blocknum )
+#define octapi_llm_alloc_dealloc( l, blocknum ) OctapiLlmAllocDealloc( (PVOID) l,(UINT32) blocknum )
+#define octapi_llm_list_get_size( number_of_items, number_of_lists, user_info_size, l_size ) OctApiLlmListGetSize( (UINT32) number_of_items,(UINT32) number_of_lists,(UINT32) user_info_size,(PUINT32) l_size )
+#define octapi_llm_list_init( l, number_of_items, number_of_lists, user_info_size ) OctApiLlmListInit( (PVOID*) l,(UINT32) number_of_items,(UINT32) number_of_lists,(UINT32) user_info_size )
+#define octapi_llm_list_info( l, allocated_lists, allocated_items, free_lists, free_items ) OctApiLlmListInfo( (PVOID) l,(PUINT32) allocated_lists,(PUINT32) allocated_items,(PUINT32) free_lists,(PUINT32) free_items )
+#define octapi_llm_list_create( l, list_handle ) OctApiLlmListCreate( (PVOID) l,(PUINT32) list_handle )
+#define octapi_llm_list_create_full( l, list_length, plist_handle ) OctApiLlmListCreateFull( (PVOID) l, (UINT32) list_length, (PUINT32) plist_handle )
+#define octapi_llm_list_append_items( l, list_handle, num_items ) OctApiLlmListAppendItems( (PVOID) l, (UINT32) list_handle, (UINT32) num_items )
+#define octapi_llm_list_append_and_set_items( l, list_handle, num_items, data_list ) OctApiLlmListAppendAndSetItems( (PVOID) l, (UINT32) list_handle, (UINT32) num_items, (PVOID) data_list )
+#define octapi_llm_list_delete( l, list_handle ) OctApiLlmListDelete( (PVOID) l,(UINT32) list_handle )
+#define octapi_llm_list_length( l, list_handle, number_of_items_in_list ) OctApiLlmListLength( (PVOID) l,(UINT32) list_handle, (PUINT32) number_of_items_in_list )
+#define octapi_llm_list_insert_item( l, list_handle, item_number, item_data_pnt ) OctApiLlmListInsertItem( (PVOID) l,(UINT32) list_handle,(UINT32) item_number,(PVOID*) item_data_pnt )
+#define octapi_llm_list_remove_item( l, list_handle, item_number ) OctApiLlmListRemoveItem( (PVOID) l,(UINT32) list_handle,(UINT32) item_number )
+#define octapi_llm_list_item_data( l, list_handle, item_number, item_data_pnt ) OctApiLlmListItemData( (PVOID) l,(UINT32) list_handle,(UINT32) item_number,(PVOID*) item_data_pnt )
+#define octapi_llm_list_copy_data( l, list_handle, start_item, data_length, pdata_list ) OctApiLlmListCopyData( (PVOID) l, (UINT32) list_handle, (UINT32) start_item, (UINT32) data_length, (PVOID) pdata_list )
+#define octapi_llm_list_set_items( l, list_handle, start_item, data_length, pdata_list ) OctApiLlmListSetItems( (PVOID) l, (UINT32) list_handle, (UINT32) start_item, (UINT32) data_length, (PVOID) pdata_list )
+
+/* Alloc man. */
+UINT32 OctapiLlmAllocGetSize( UINT32 number_of_items,PUINT32 l_size );
+UINT32 OctapiLlmAllocInit( PVOID* l,UINT32 number_of_items );
+UINT32 OctapiLlmAllocInfo( PVOID l, PUINT32 allocated_items, PUINT32 available_items );
+UINT32 OctapiLlmAllocAlloc( PVOID l, PUINT32 blocknum );
+UINT32 OctapiLlmAllocDealloc( PVOID l,UINT32 blocknum );
+
+/* Time managed alloc man. */
+UINT32 OctApiTllmAllocGetSize( UINT32 number_of_items, PUINT32 l_size );
+UINT32 OctApiTllmAllocInit( PVOID* l, UINT32 number_of_items );
+UINT32 OctApiTllmAllocInfo( PVOID l, PUINT32 allocated_items, PUINT32 available_items );
+UINT32 OctApiTllmAllocAlloc( PVOID l, PUINT32 blocknum, UINT32 current_time[2] );
+UINT32 OctApiTllmAllocDealloc( PVOID l, UINT32 blocknum, UINT32 timeout_value, UINT32 current_time[2] );
+
+/* List man. */
+UINT32 OctApiLlmListGetSize( UINT32 number_of_items, UINT32 number_of_lists, UINT32 user_info_size, PUINT32 l_size );
+UINT32 OctApiLlmListInit( PVOID* l, UINT32 number_of_items, UINT32 number_of_lists, UINT32 user_info_size );
+UINT32 OctApiLlmListInfo( PVOID l, PUINT32 allocated_lists, PUINT32 allocated_items, PUINT32 free_lists, PUINT32 free_items );
+UINT32 OctApiLlmListCreate( PVOID l, PUINT32 list_handle );
+UINT32 OctApiLlmListCreateFull( PVOID l, UINT32 list_length, UINT32* plist_handle );
+UINT32 OctApiLlmListAppendItems( PVOID l, UINT32 list_handle, UINT32 num_items );
+UINT32 OctApiLlmListAppendAndSetItems( PVOID l, UINT32 list_handle, UINT32 num_items, PVOID data_list );
+UINT32 OctApiLlmListDelete( PVOID l, UINT32 list_handle );
+UINT32 OctApiLlmListLength( PVOID l, UINT32 list_handle, PUINT32 number_of_items_in_list );
+UINT32 OctApiLlmListInsertItem( PVOID l, UINT32 list_handle, UINT32 item_number, PVOID* item_data_pnt );
+UINT32 OctApiLlmListRemoveItem( PVOID l, UINT32 list_handle, UINT32 item_number );
+UINT32 OctApiLlmListItemData( PVOID l, UINT32 list_handle, UINT32 item_number, PVOID* item_data_pnt );
+UINT32 OctApiLlmListCopyData( PVOID l, UINT32 list_handle, UINT32 start_item, UINT32 data_length, PVOID pdata_list );
+UINT32 OctApiLlmListSetItems( PVOID l, UINT32 list_handle, UINT32 start_item, UINT32 data_length, PVOID pdata_list );
+
+/* Second list manager using a key to order info in the list. */
+UINT32 OctApiLlm2ListGetSize( UINT32 number_of_items, UINT32 number_of_lists, UINT32 user_info_size, PUINT32 l_size );
+UINT32 OctApiLlm2ListInit( PVOID* l,UINT32 number_of_items, UINT32 number_of_lists, UINT32 user_info_size );
+UINT32 OctApiLlm2ListCreate( PVOID l, PUINT32 list_handle );
+UINT32 OctApiLlm2ListLength( PVOID l, UINT32 list_handle, PUINT32 number_of_items_in_list );
+UINT32 OctApiLlm2ListInsertItem(void * l, UINT32 list_handle, UINT32 item_key, void ** item_data_pnt, void ** prev_item_data_pnt, void ** prev_prev_item_data_pnt, PUINT32 insert_status_pnt );
+UINT32 OctApiLlm2ListRemoveItem(void * l, UINT32 list_handle, UINT32 item_key, PUINT32 prev_item_key_pnt, PUINT32 prev_prev_item_key_pnt, PUINT32 remove_status_pnt );
+UINT32 OctApiLlm2ListItemData( PVOID l, UINT32 list_handle, UINT32 item_key, PVOID* item_data_pnt, PUINT32 item_number );
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* __OCTAPI_LLMAN_H__ */
diff --git a/software/include/oct6100api/oct6100_adpcm_chan_inst.h b/software/include/oct6100api/oct6100_adpcm_chan_inst.h
new file mode 100644
index 0000000..b74ce9e
--- /dev/null
+++ b/software/include/oct6100api/oct6100_adpcm_chan_inst.h
@@ -0,0 +1,74 @@
+/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
+
+File: oct6100_adpcm_chan_inst.h
+
+ Copyright (c) 2001-2005 Octasic Inc.
+
+Description:
+
+ File containing all defines, macros, and structures pertaining to the file
+ oct6100_adpcm_chan.c. All elements defined in this file are for public
+ usage of the API. All private elements are defined in the
+ oct6100_adpcm_chan_priv.h file.
+
+This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API is
+free software; you can redistribute it and/or modify it under the terms of
+the GNU General Public License as published by the Free Software Foundation;
+either version 2 of the License, or (at your option) any later version.
+
+The OCT6100 GPL API is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with the OCT6100 GPL API; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+$Octasic_Release: OCT612xAPI-01.00-PR38 $
+
+$Octasic_Revision: 5 $
+
+\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
+
+#ifndef __OCT6100_ADPCM_CHAN_INST_H__
+#define __OCT6100_ADPCM_CHAN_INST_H__
+
+/***************************** INCLUDE FILES *******************************/
+
+/***************************** DEFINES *************************************/
+
+/***************************** TYPES ***************************************/
+
+typedef struct _OCT6100_API_ADPCM_CHAN_
+{
+ /* Flag specifying whether the entry is used or not. */
+ UINT8 fReserved;
+
+ /* Count used to manage entry handles allocated to user. */
+ UINT8 byEntryOpenCnt;
+
+ /* TSI chariot memory entry. */
+ UINT16 usTsiMemIndex;
+
+ /* ADPCM memory entry. */
+ UINT16 usAdpcmMemIndex;
+
+ /* Input and output timeslot information. */
+ UINT16 usInputTimeslot;
+ UINT16 usInputStream;
+ UINT8 byInputNumTssts;
+ UINT8 byInputPcmLaw;
+
+ UINT16 usOutputTimeslot;
+ UINT16 usOutputStream;
+ UINT8 byOutputNumTssts;
+ UINT8 byOutputPcmLaw;
+
+ /* Internal info for quick access to structures associated to this TSI cnct. */
+ UINT16 usInputTsstIndex;
+ UINT16 usOutputTsstIndex;
+
+} tOCT6100_API_ADPCM_CHAN, *tPOCT6100_API_ADPCM_CHAN;
+
+#endif /* __OCT6100_ADPCM_CHAN_INST_H__ */
diff --git a/software/include/oct6100api/oct6100_adpcm_chan_pub.h b/software/include/oct6100api/oct6100_adpcm_chan_pub.h
new file mode 100644
index 0000000..f0c32d9
--- /dev/null
+++ b/software/include/oct6100api/oct6100_adpcm_chan_pub.h
@@ -0,0 +1,90 @@
+/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
+
+File: oct6100_adpcm_chan_pub.h
+
+ Copyright (c) 2001-2005 Octasic Inc.
+
+Description:
+
+ File containing all defines, macros, and structures pertaining to the file
+ oct6100_adpcm_chan.c. All elements defined in this file are for public
+ usage of the API. All private elements are defined in the
+ oct6100_adpcm_chan_priv.h file.
+
+This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API is
+free software; you can redistribute it and/or modify it under the terms of
+the GNU General Public License as published by the Free Software Foundation;
+either version 2 of the License, or (at your option) any later version.
+
+The OCT6100 GPL API is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with the OCT6100 GPL API; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+$Octasic_Release: OCT612xAPI-01.00-PR38 $
+
+$Octasic_Revision: 4 $
+
+\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
+
+#ifndef __OCT6100_ADPCM_CHAN_PUB_H__
+#define __OCT6100_ADPCM_CHAN_PUB_H__
+
+/***************************** INCLUDE FILES *******************************/
+
+
+/***************************** DEFINES *************************************/
+
+
+/***************************** TYPES ***************************************/
+
+typedef struct _OCT6100_ADPCM_CHAN_OPEN_
+{
+ PUINT32 pulChanHndl;
+
+ UINT32 ulInputTimeslot;
+ UINT32 ulInputStream;
+ UINT32 ulInputNumTssts;
+ UINT32 ulInputPcmLaw;
+
+ UINT32 ulOutputTimeslot;
+ UINT32 ulOutputStream;
+ UINT32 ulOutputNumTssts;
+ UINT32 ulOutputPcmLaw;
+
+ UINT32 ulChanMode; /* Encoding or decoding. */
+
+ UINT32 ulEncodingRate;
+ UINT32 ulDecodingRate;
+
+ UINT32 ulAdpcmNibblePosition;
+
+} tOCT6100_ADPCM_CHAN_OPEN, *tPOCT6100_ADPCM_CHAN_OPEN;
+
+typedef struct _OCT6100_ADPCM_CHAN_CLOSE_
+{
+ UINT32 ulChanHndl;
+
+} tOCT6100_ADPCM_CHAN_CLOSE, *tPOCT6100_ADPCM_CHAN_CLOSE;
+
+
+/************************** FUNCTION PROTOTYPES *****************************/
+
+
+UINT32 Oct6100AdpcmChanOpenDef(
+ OUT tPOCT6100_ADPCM_CHAN_OPEN f_pAdpcmChanOpen );
+UINT32 Oct6100AdpcmChanOpen(
+ IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
+ IN OUT tPOCT6100_ADPCM_CHAN_OPEN f_pAdpcmChanOpen );
+
+UINT32 Oct6100AdpcmChanCloseDef(
+ OUT tPOCT6100_ADPCM_CHAN_CLOSE f_pAdpcmChanClose );
+UINT32 Oct6100AdpcmChanClose(
+ IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
+ IN OUT tPOCT6100_ADPCM_CHAN_CLOSE f_pAdpcmChanClose );
+
+#endif /* __OCT6100_ADPCM_CHAN_PUB_H__ */
diff --git a/software/include/oct6100api/oct6100_api.h b/software/include/oct6100api/oct6100_api.h
new file mode 100644
index 0000000..5652375
--- /dev/null
+++ b/software/include/oct6100api/oct6100_api.h
@@ -0,0 +1,84 @@
+/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
+
+File: oct6100_api.h
+
+ Copyright (c) 2001-2005 Octasic Inc.
+
+Description:
+
+ Header file containing all definitions used throughout the API.
+
+This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API is
+free software; you can redistribute it and/or modify it under the terms of
+the GNU General Public License as published by the Free Software Foundation;
+either version 2 of the License, or (at your option) any later version.
+
+The OCT6100 GPL API is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with the OCT6100 GPL API; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+$Octasic_Release: OCT612xAPI-01.00-PR38 $
+
+$Octasic_Revision: 22 $
+
+\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
+
+#ifndef __OCT6100_API_H__
+#define __OCT6100_API_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/***************************** INCLUDE FILES *******************************/
+
+#include "octdef.h"
+
+#include "oct6100_defines.h"
+#include "oct6100_errors.h"
+
+#include "oct6100_apiud.h"
+#include "oct6100_tlv_inst.h"
+#include "oct6100_chip_stats_inst.h"
+#include "oct6100_tsi_cnct_inst.h"
+#include "oct6100_mixer_inst.h"
+#include "oct6100_events_inst.h"
+#include "oct6100_tone_detection_inst.h"
+#include "oct6100_conf_bridge_inst.h"
+#include "oct6100_playout_buf_inst.h"
+
+#include "oct6100_adpcm_chan_inst.h"
+#include "oct6100_phasing_tsst_inst.h"
+#include "oct6100_channel_inst.h"
+#include "oct6100_interrupts_inst.h"
+#include "oct6100_remote_debug_inst.h"
+#include "oct6100_debug_inst.h"
+#include "oct6100_chip_open_inst.h"
+#include "oct6100_api_inst.h"
+
+#include "oct6100_interrupts_pub.h"
+#include "oct6100_tsi_cnct_pub.h"
+#include "oct6100_events_pub.h"
+#include "oct6100_tone_detection_pub.h"
+#include "oct6100_mixer_pub.h"
+#include "oct6100_conf_bridge_pub.h"
+#include "oct6100_playout_buf_pub.h"
+
+#include "oct6100_channel_pub.h"
+#include "oct6100_remote_debug_pub.h"
+#include "oct6100_debug_pub.h"
+#include "oct6100_chip_open_pub.h"
+#include "oct6100_chip_stats_pub.h"
+#include "oct6100_adpcm_chan_pub.h"
+#include "oct6100_phasing_tsst_pub.h"
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __OCT6100_API_H__ */
diff --git a/software/include/oct6100api/oct6100_api_inst.h b/software/include/oct6100api/oct6100_api_inst.h
new file mode 100644
index 0000000..679d9e6
--- /dev/null
+++ b/software/include/oct6100api/oct6100_api_inst.h
@@ -0,0 +1,138 @@
+/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
+
+File: oct6100_api_inst.h
+
+ Copyright (c) 2001-2005 Octasic Inc.
+
+Description:
+
+ File containing the definition of the API instance structure.
+
+This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API is
+free software; you can redistribute it and/or modify it under the terms of
+the GNU General Public License as published by the Free Software Foundation;
+either version 2 of the License, or (at your option) any later version.
+
+The OCT6100 GPL API is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with the OCT6100 GPL API; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+$Octasic_Release: OCT612xAPI-01.00-PR38 $
+
+$Octasic_Revision: 39 $
+
+\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
+
+#ifndef __OCT6100_API_INST_H__
+#define __OCT6100_API_INST_H__
+
+/***************************** INCLUDE FILES *******************************/
+
+
+/***************************** DEFINES *************************************/
+
+
+/***************************** TYPES ***************************************/
+
+typedef struct _OCT6100_SHARED_INFO_
+{
+ /* Local copy of chip configuration structure. */
+ tOCT6100_API_CHIP_CONFIG ChipConfig;
+
+ /* Miscellaneous calculations and mapping of static structures in external memory. */
+ tOCT6100_API_MISCELLANEOUS MiscVars;
+ tOCT6100_API_MEMORY_MAP MemoryMap;
+
+ /* Error stats structure. */
+ tOCT6100_API_CHIP_ERROR_STATS ErrorStats;
+ tOCT6100_API_CHIP_STATS ChipStats;
+
+ /* Mixer information. */
+ tOCT6100_API_MIXER MixerInfo;
+
+ /* Image breakdown information. */
+ tOCT6100_API_IMAGE_REGION ImageRegion[ cOCT6100_MAX_IMAGE_REGION ];
+ tOCT6100_API_IMAGE_INFO ImageInfo;
+
+ /* Configuration and management of interrupts. */
+ tOCT6100_API_INTRPT_CONFIG IntrptConfig;
+ tOCT6100_API_INTRPT_MANAGE IntrptManage;
+ /* Remote debugging. */
+ tOCT6100_API_REMOTE_DEBUG_INFO RemoteDebugInfo;
+ /* Chip debugging information. */
+ tOCT6100_API_DEBUG DebugInfo;
+
+ /* Management variables of software and hardware buffers. */
+ tOCT6100_API_SOFT_BUFS SoftBufs;
+
+ /* Caller buffer playout memory management structure. */
+ tOCT6100_API_BUFFER_PLAYOUT_MALLOC_INFO PlayoutInfo;
+
+
+
+ UINT32 ulChannelListOfst;
+ UINT32 ulChannelAllocOfst;
+
+ UINT32 ulConversionMemoryAllocOfst;
+
+ UINT32 ulTsiMemoryAllocOfst;
+ UINT32 ulExtraTsiMemoryAllocOfst;
+ UINT32 ulEchoMemoryAllocOfst;
+
+ UINT32 ulTsstAllocOfst;
+ UINT32 ulTsstListOfst;
+ UINT32 ulTsstListAllocOfst;
+
+ UINT32 ulTsiCnctListOfst;
+ UINT32 ulTsiCnctAllocOfst;
+
+ UINT32 ulMixerEventListOfst;
+ UINT32 ulMixerEventAllocOfst;
+
+ UINT32 ulCopyEventListOfst;
+ UINT32 ulCopyEventAllocOfst;
+
+ UINT32 ulBiDirChannelListOfst;
+ UINT32 ulBiDirChannelAllocOfst;
+
+ UINT32 ulConfBridgeListOfst;
+ UINT32 ulConfBridgeAllocOfst;
+
+ UINT32 ulFlexConfParticipantListOfst;
+ UINT32 ulFlexConfParticipantAllocOfst;
+
+ UINT32 ulPlayoutBufListOfst;
+ UINT32 ulPlayoutBufAllocOfst;
+ UINT32 ulPlayoutBufMemoryNodeListOfst;
+
+
+
+ UINT32 ulAdpcmChanListOfst;
+ UINT32 ulAdpcmChanAllocOfst;
+
+ UINT32 ulPhasingTsstListOfst;
+ UINT32 ulPhasingTsstAllocOfst;
+
+} tOCT6100_SHARED_INFO, *tPOCT6100_SHARED_INFO;
+
+typedef struct _OCT6100_INSTANCE_API_
+{
+ /* Pointer to portion of API instance structure shared amongst all processes. */
+ tPOCT6100_SHARED_INFO pSharedInfo;
+
+ /* Pointer to user-supplied, process context structure. The structure is
+ a parameter to all user-supplied functions. */
+ PVOID pProcessContext;
+
+ /* Handles to all serialization objects used by the API. */
+ UINT32 ulApiSerObj;
+
+
+} tOCT6100_INSTANCE_API, *tPOCT6100_INSTANCE_API;
+
+#endif /* __OCT6100_API_INST_H__ */
diff --git a/software/include/oct6100api/oct6100_apimi.h b/software/include/oct6100api/oct6100_apimi.h
new file mode 100644
index 0000000..abcad76
--- /dev/null
+++ b/software/include/oct6100api/oct6100_apimi.h
@@ -0,0 +1,69 @@
+/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
+
+File: oct6100_apimi.h
+
+ Copyright (c) 2001-2005 Octasic Inc.
+
+Description:
+
+ This file contains the declaration of all functions exported from the
+ APIMI block. The APIMI block contains only one function:
+ Oct6100InterruptMask.
+ The function is used to mask out the interrupt pin of the chip. This
+ function is used when a deferred procedure call treats the interrupt (new
+ interrupts must not be generated until the signalled interrupt is treated).
+
+This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API is
+free software; you can redistribute it and/or modify it under the terms of
+the GNU General Public License as published by the Free Software Foundation;
+either version 2 of the License, or (at your option) any later version.
+
+The OCT6100 GPL API is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with the OCT6100 GPL API; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+$Octasic_Release: OCT612xAPI-01.00-PR38 $
+
+$Octasic_Revision: 5 $
+
+\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
+
+#ifndef __OCT6100_APIMI_H__
+#define __OCT6100_APIMI_H__
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */
+
+/***************************** INCLUDE FILES *******************************/
+
+#include "octdef.h"
+
+/***************************** TYPES ***************************************/
+
+typedef struct _OCT6100_INTERRUPT_MASK_
+{
+ UINT32 ulUserChipIndex;
+ PVOID pProcessContext;
+
+
+} tOCT6100_INTERRUPT_MASK, *tPOCT6100_INTERRUPT_MASK;
+
+/************************** FUNCTION PROTOTYPES *****************************/
+
+UINT32 Oct6100InterruptMaskDef(
+ OUT tPOCT6100_INTERRUPT_MASK f_pInterruptMask );
+UINT32 Oct6100InterruptMask(
+ IN tPOCT6100_INTERRUPT_MASK f_pInterruptMask );
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* __OCT6100_APIMI_H__ */
diff --git a/software/include/oct6100api/oct6100_apiud.h b/software/include/oct6100api/oct6100_apiud.h
new file mode 100644
index 0000000..053a36c
--- /dev/null
+++ b/software/include/oct6100api/oct6100_apiud.h
@@ -0,0 +1,309 @@
+/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
+
+File: oct6100_apiud.h
+
+ Copyright (c) 2001-2005 Octasic Inc.
+
+Description:
+
+ Header file containing the definitions and prototypes that are to be
+ completed by the user.
+
+This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API is
+free software; you can redistribute it and/or modify it under the terms of
+the GNU General Public License as published by the Free Software Foundation;
+either version 2 of the License, or (at your option) any later version.
+
+The OCT6100 GPL API is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with the OCT6100 GPL API; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+$Octasic_Release: OCT612xAPI-01.00-PR38 $
+
+$Octasic_Revision: 15 $
+
+\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
+
+#ifndef __OCT6100_APIUD_H__
+#define __OCT6100_APIUD_H__
+
+/***************************** INCLUDE FILES *******************************/
+
+#include "octdef.h"
+
+/***************************** DEFINES *************************************/
+
+
+/* Determines the maximum length of a burst of reads/writes. This value must
+ be in the range 8 - 1024. This value obtains best performance if set to
+ a power of 2 (i.e. 2^n). */
+#define cOCT6100_MAX_RW_ACCESSES 32
+
+/* The define used to specify that the Oct6100SeizeSerializeObject function
+ is not to return until the specified serialization object has been seized. */
+#define cOCT6100_WAIT_INFINITELY 0xFFFFFFFF
+
+
+/* Compile option: enabling this compile option inserts code to check every
+ call to a user provided function to make sure the function parameters
+ are not changed, as required by the API specification. */
+#define cOCT6100_USER_FUNCTION_CHECK
+
+
+
+#define cOCT6100_GET_TIME_FAILED_0 0xFFFF0000
+#define cOCT6100_GET_TIME_FAILED_1 0xFFFF0001
+#define cOCT6100_GET_TIME_FAILED_2 0xFFFF0002
+#define cOCT6100_GET_TIME_FAILED_3 0xFFFF0003
+#define cOCT6100_GET_TIME_FAILED_4 0xFFFF0004
+
+#define cOCT6100_CREATE_SERIAL_FAILED_0 0xFFFF0010
+#define cOCT6100_CREATE_SERIAL_FAILED_1 0xFFFF0011
+#define cOCT6100_CREATE_SERIAL_FAILED_2 0xFFFF0012
+#define cOCT6100_CREATE_SERIAL_FAILED_3 0xFFFF0013
+#define cOCT6100_CREATE_SERIAL_FAILED_4 0xFFFF0014
+
+#define cOCT6100_DESTROY_SERIAL_FAILED_0 0xFFFF0020
+#define cOCT6100_DESTROY_SERIAL_FAILED_1 0xFFFF0021
+#define cOCT6100_DESTROY_SERIAL_FAILED_2 0xFFFF0022
+#define cOCT6100_DESTROY_SERIAL_FAILED_3 0xFFFF0023
+#define cOCT6100_DESTROY_SERIAL_FAILED_4 0xFFFF0024
+
+#define cOCT6100_INVALID_SERIAL_HANDLE_0 0xFFFF0030
+#define cOCT6100_INVALID_SERIAL_HANDLE_1 0xFFFF0031
+#define cOCT6100_INVALID_SERIAL_HANDLE_2 0xFFFF0032
+#define cOCT6100_INVALID_SERIAL_HANDLE_3 0xFFFF0033
+#define cOCT6100_INVALID_SERIAL_HANDLE_4 0xFFFF0034
+
+#define cOCT6100_RELEASE_SERIAL_FAILED_0 0xFFFF0040
+#define cOCT6100_RELEASE_SERIAL_FAILED_1 0xFFFF0041
+#define cOCT6100_RELEASE_SERIAL_FAILED_2 0xFFFF0042
+#define cOCT6100_RELEASE_SERIAL_FAILED_3 0xFFFF0043
+#define cOCT6100_RELEASE_SERIAL_FAILED_4 0xFFFF0044
+
+#define cOCT6100_SEIZE_SERIAL_FAILED_0 0xFFFF0050
+#define cOCT6100_SEIZE_SERIAL_FAILED_1 0xFFFF0051
+#define cOCT6100_SEIZE_SERIAL_FAILED_2 0xFFFF0052
+#define cOCT6100_SEIZE_SERIAL_FAILED_3 0xFFFF0053
+#define cOCT6100_SEIZE_SERIAL_FAILED_4 0xFFFF0054
+
+#define cOCT6100_DRIVER_WRITE_FAILED_0 0xFFFF0060
+#define cOCT6100_DRIVER_WRITE_FAILED_1 0xFFFF0061
+#define cOCT6100_DRIVER_WRITE_FAILED_2 0xFFFF0062
+#define cOCT6100_DRIVER_WRITE_FAILED_3 0xFFFF0063
+#define cOCT6100_DRIVER_WRITE_FAILED_4 0xFFFF0064
+
+#define cOCT6100_DRIVER_WSMEAR_FAILED_0 0xFFFF0070
+#define cOCT6100_DRIVER_WSMEAR_FAILED_1 0xFFFF0071
+#define cOCT6100_DRIVER_WSMEAR_FAILED_2 0xFFFF0072
+#define cOCT6100_DRIVER_WSMEAR_FAILED_3 0xFFFF0073
+#define cOCT6100_DRIVER_WSMEAR_FAILED_4 0xFFFF0074
+
+#define cOCT6100_DRIVER_WBURST_FAILED_0 0xFFFF0080
+#define cOCT6100_DRIVER_WBURST_FAILED_1 0xFFFF0081
+#define cOCT6100_DRIVER_WBURST_FAILED_2 0xFFFF0082
+#define cOCT6100_DRIVER_WBURST_FAILED_3 0xFFFF0083
+#define cOCT6100_DRIVER_WBURST_FAILED_4 0xFFFF0084
+
+#define cOCT6100_DRIVER_READ_FAILED_0 0xFFFF0090
+#define cOCT6100_DRIVER_READ_FAILED_1 0xFFFF0091
+#define cOCT6100_DRIVER_READ_FAILED_2 0xFFFF0092
+#define cOCT6100_DRIVER_READ_FAILED_3 0xFFFF0093
+#define cOCT6100_DRIVER_READ_FAILED_4 0xFFFF0094
+
+#define cOCT6100_DRIVER_RBURST_FAILED_0 0xFFFF00A0
+#define cOCT6100_DRIVER_RBURST_FAILED_1 0xFFFF00A1
+#define cOCT6100_DRIVER_RBURST_FAILED_2 0xFFFF00A2
+#define cOCT6100_DRIVER_RBURST_FAILED_3 0xFFFF00A3
+#define cOCT6100_DRIVER_RBURST_FAILED_4 0xFFFF00A4
+
+
+
+
+
+/***************************** TYPES ***************************************/
+
+typedef struct _OCT6100_GET_TIME_
+{
+ PVOID pProcessContext;
+ UINT32 aulWallTimeUs[ 2 ];
+
+} tOCT6100_GET_TIME, *tPOCT6100_GET_TIME;
+
+
+
+
+
+typedef struct _OCT6100_CREATE_SERIALIZE_OBJECT_
+{
+ PVOID pProcessContext;
+ PSZ pszSerialObjName;
+ UINT32 ulSerialObjHndl;
+
+} tOCT6100_CREATE_SERIALIZE_OBJECT, *tPOCT6100_CREATE_SERIALIZE_OBJECT;
+
+
+typedef struct _OCT6100_DESTROY_SERIALIZE_OBJECT_
+{
+ PVOID pProcessContext;
+ UINT32 ulSerialObjHndl;
+
+} tOCT6100_DESTROY_SERIALIZE_OBJECT, *tPOCT6100_DESTROY_SERIALIZE_OBJECT;
+
+
+typedef struct _OCT6100_SEIZE_SERIALIZE_OBJECT_
+{
+ PVOID pProcessContext;
+ UINT32 ulSerialObjHndl;
+ UINT32 ulTryTimeMs;
+
+} tOCT6100_SEIZE_SERIALIZE_OBJECT, *tPOCT6100_SEIZE_SERIALIZE_OBJECT;
+
+
+typedef struct _OCT6100_RELEASE_SERIALIZE_OBJECT_
+{
+ PVOID pProcessContext;
+ UINT32 ulSerialObjHndl;
+
+} tOCT6100_RELEASE_SERIALIZE_OBJECT, *tPOCT6100_RELEASE_SERIALIZE_OBJECT;
+
+
+typedef struct _OCT6100_WRITE_PARAMS_
+{
+ PVOID pProcessContext;
+
+ UINT32 ulUserChipId;
+ UINT32 ulWriteAddress;
+ UINT16 usWriteData;
+
+} tOCT6100_WRITE_PARAMS, *tPOCT6100_WRITE_PARAMS;
+
+
+typedef struct _OCT6100_WRITE_SMEAR_PARAMS_
+{
+ PVOID pProcessContext;
+
+ UINT32 ulUserChipId;
+ UINT32 ulWriteAddress;
+ UINT32 ulWriteLength;
+ UINT16 usWriteData;
+
+} tOCT6100_WRITE_SMEAR_PARAMS, *tPOCT6100_WRITE_SMEAR_PARAMS;
+
+
+typedef struct _OCT6100_WRITE_BURST_PARAMS_
+{
+ PVOID pProcessContext;
+
+ UINT32 ulUserChipId;
+ UINT32 ulWriteAddress;
+ UINT32 ulWriteLength;
+ PUINT16 pusWriteData;
+
+} tOCT6100_WRITE_BURST_PARAMS, *tPOCT6100_WRITE_BURST_PARAMS;
+
+
+typedef struct _OCT6100_READ_PARAMS_
+{
+ PVOID pProcessContext;
+
+ UINT32 ulUserChipId;
+ UINT32 ulReadAddress;
+ PUINT16 pusReadData;
+
+} tOCT6100_READ_PARAMS, *tPOCT6100_READ_PARAMS;
+
+
+typedef struct _OCT6100_READ_BURST_PARAMS_
+{
+ PVOID pProcessContext;
+
+ UINT32 ulUserChipId;
+ UINT32 ulReadAddress;
+ UINT32 ulReadLength;
+ PUINT16 pusReadData;
+
+} tOCT6100_READ_BURST_PARAMS, *tPOCT6100_READ_BURST_PARAMS;
+
+
+
+
+
+
+
+
+/************************** FUNCTION PROTOTYPES *****************************/
+
+/* Time function. */
+UINT32 Oct6100UserGetTime(
+ IN OUT tPOCT6100_GET_TIME f_pTime );
+
+
+
+/* Memory management functions. */
+UINT32 Oct6100UserMemSet(
+ IN PVOID f_pAddress,
+ IN UINT32 f_ulPattern,
+ IN UINT32 f_ulLength );
+
+UINT32 Oct6100UserMemCopy(
+ IN PVOID f_pDestination,
+ IN PVOID f_pSource,
+ IN UINT32 f_ulLength );
+
+/* Serialization functions. */
+UINT32 Oct6100UserCreateSerializeObject(
+ IN OUT tPOCT6100_CREATE_SERIALIZE_OBJECT f_pCreate);
+
+UINT32 Oct6100UserDestroySerializeObject(
+ IN tPOCT6100_DESTROY_SERIALIZE_OBJECT f_pDestroy);
+
+UINT32 Oct6100UserSeizeSerializeObject(
+ IN tPOCT6100_SEIZE_SERIALIZE_OBJECT f_pSeize);
+
+UINT32 Oct6100UserReleaseSerializeObject(
+ IN tPOCT6100_RELEASE_SERIALIZE_OBJECT f_pRelease);
+
+/* Read/Write functions.*/
+UINT32 Oct6100UserDriverWriteApi(
+ IN tPOCT6100_WRITE_PARAMS f_pWriteParams );
+
+UINT32 Oct6100UserDriverWriteOs(
+ IN tPOCT6100_WRITE_PARAMS f_pWriteParams );
+
+UINT32 Oct6100UserDriverWriteSmearApi(
+ IN tPOCT6100_WRITE_SMEAR_PARAMS f_pSmearParams );
+
+UINT32 Oct6100UserDriverWriteSmearOs(
+ IN tPOCT6100_WRITE_SMEAR_PARAMS f_pSmearParams );
+
+UINT32 Oct6100UserDriverWriteBurstApi(
+ IN tPOCT6100_WRITE_BURST_PARAMS f_pBurstParams );
+
+UINT32 Oct6100UserDriverWriteBurstOs(
+ IN tPOCT6100_WRITE_BURST_PARAMS f_pBurstParams );
+
+UINT32 Oct6100UserDriverReadApi(
+ IN OUT tPOCT6100_READ_PARAMS f_pReadParams );
+
+UINT32 Oct6100UserDriverReadOs(
+ IN OUT tPOCT6100_READ_PARAMS f_pReadParams );
+
+UINT32 Oct6100UserDriverReadBurstApi(
+ IN OUT tPOCT6100_READ_BURST_PARAMS f_pBurstParams );
+
+UINT32 Oct6100UserDriverReadBurstOs(
+ IN OUT tPOCT6100_READ_BURST_PARAMS f_pBurstParams );
+
+
+
+
+
+
+
+#endif /* __OCT6100_APIUD_H__ */
diff --git a/software/include/oct6100api/oct6100_channel_inst.h b/software/include/oct6100api/oct6100_channel_inst.h
new file mode 100644
index 0000000..8480c98
--- /dev/null
+++ b/software/include/oct6100api/oct6100_channel_inst.h
@@ -0,0 +1,386 @@
+/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
+
+File: oct6100_channel_inst.h
+
+ Copyright (c) 2001-2005 Octasic Inc.
+
+Description:
+
+ File containing all defines, macros, and structures pertaining to the file
+ oct6100_channel.c. All elements defined in this file are for public
+ usage of the API. All private elements are defined in the
+ oct6100_channel_priv.h file.
+
+This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API is
+free software; you can redistribute it and/or modify it under the terms of
+the GNU General Public License as published by the Free Software Foundation;
+either version 2 of the License, or (at your option) any later version.
+
+The OCT6100 GPL API is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with the OCT6100 GPL API; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+$Octasic_Release: OCT612xAPI-01.00-PR38 $
+
+$Octasic_Revision: 84 $
+
+\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
+
+#ifndef __OCT6100_CHANNEL_INST_H__
+#define __OCT6100_CHANNEL_INST_H__
+
+/***************************** INCLUDE FILES *******************************/
+
+/***************************** DEFINES *************************************/
+
+/***************************** TYPES ***************************************/
+
+typedef struct _OCT6100_API_CHANNEL_TDM_
+{
+ /* Laws. */
+ UINT8 byRinPcmLaw;
+ UINT8 bySinPcmLaw;
+ UINT8 byRoutPcmLaw;
+ UINT8 bySoutPcmLaw;
+
+ /* RIN port. */
+ UINT16 usRinTimeslot;
+ UINT16 usRinStream;
+
+ /* SIN port. */
+ UINT16 usSinTimeslot;
+ UINT16 usSinStream;
+
+ /* ROUT port. */
+ UINT16 usRoutTimeslot;
+ UINT16 usRoutStream;
+
+ /* SOUT port. */
+ UINT16 usSoutTimeslot;
+ UINT16 usSoutStream;
+
+ /* ROUT broadcast info. */
+ UINT16 usRoutBrdcastTsstFirstEntry;
+ UINT16 usRoutBrdcastTsstNumEntry;
+
+ /* SOUT broadcast info. */
+ UINT16 usSoutBrdcastTsstFirstEntry;
+ UINT16 usSoutBrdcastTsstNumEntry;
+
+ UINT8 byRinNumTssts;
+ UINT8 bySinNumTssts;
+ UINT8 byRoutNumTssts;
+ UINT8 bySoutNumTssts;
+
+} tOCT6100_API_CHANNEL_TDM, *tPOCT6100_API_CHANNEL_TDM;
+
+typedef struct _OCT6100_API_CHANNEL_VQE_
+{
+ UINT8 fEnableNlp;
+ UINT8 fEnableTailDisplacement;
+ UINT16 usTailDisplacement;
+ UINT16 usTailLength;
+
+ UINT8 fSinDcOffsetRemoval;
+ UINT8 fRinDcOffsetRemoval;
+ UINT8 fRinLevelControl;
+ UINT8 fSoutLevelControl;
+
+ UINT8 fRinAutomaticLevelControl;
+ UINT8 fSoutAutomaticLevelControl;
+ INT8 chRinAutomaticLevelControlTargetDb;
+ INT8 chSoutAutomaticLevelControlTargetDb;
+
+ UINT8 fRinHighLevelCompensation;
+ INT8 chRinHighLevelCompensationThresholdDb;
+
+ UINT8 bySoutAutomaticListenerEnhancementGainDb;
+ UINT8 fSoutNaturalListenerEnhancement;
+
+ UINT8 fSoutAdaptiveNoiseReduction;
+ UINT8 fDtmfToneRemoval;
+ UINT8 fAcousticEcho;
+ UINT8 byComfortNoiseMode;
+
+ UINT8 byNonLinearityBehaviorA;
+ UINT8 byNonLinearityBehaviorB;
+ INT8 chRinLevelControlGainDb;
+ INT8 chSoutLevelControlGainDb;
+
+ INT8 chDefaultErlDb;
+ INT8 chAecDefaultErlDb;
+
+ UINT8 fRoutNoiseReduction;
+ INT8 chAnrSnrEnhancementDb;
+
+ UINT8 fEnableMusicProtection;
+ UINT8 fIdleCodeDetection;
+
+ UINT8 byAnrVoiceNoiseSegregation;
+ UINT8 bySoutNaturalListenerEnhancementGainDb;
+
+ UINT16 usToneDisablerVqeActivationDelay;
+ UINT16 usAecTailLength;
+
+ UINT8 byDoubleTalkBehavior;
+ UINT8 fSoutNoiseBleaching;
+
+
+
+ UINT8 fSoutConferencingNoiseReduction;
+
+
+
+} tOCT6100_API_CHANNEL_VQE, *tPOCT6100_API_CHANNEL_VQE;
+
+typedef struct _OCT6100_API_CHANNEL_CODEC_
+{
+ UINT8 byAdpcmNibblePosition;
+ UINT8 fEnableSilenceSuppression;
+
+ UINT8 byEncoderPort;
+ UINT8 byEncodingRate;
+
+ UINT8 byDecoderPort;
+ UINT8 byDecodingRate;
+
+ UINT8 byPhase;
+ UINT8 byPhasingType;
+
+} tOCT6100_API_CHANNEL_CODEC, *tPOCT6100_API_CHANNEL_CODEC;
+
+typedef struct _OCT6100_API_CHANNEL_
+{
+ /*=======================================================================*/
+ /* Channel configuration. */
+
+ /* Flag specifying whether the entry is used or not. */
+ UINT8 fReserved;
+
+ /* Count used to manage entry handles allocated to user. */
+ UINT8 byEntryOpenCnt;
+
+ /* Is this a bidirectionnal channel? */
+ UINT8 fBiDirChannel;
+
+ /* Enable tone disabler? */
+ UINT8 fEnableToneDisabler;
+
+ /* TSI chariot memory entry for the Rin/Rout stream. */
+ UINT16 usRinRoutTsiMemIndex;
+
+ /* TSI chariot memory entry for the Sin/Sout stream. */
+ UINT16 usSinSoutTsiMemIndex;
+
+ /* Additional TSI entry used to temporarily store the SIN signal. */
+ UINT16 usExtraSinTsiMemIndex;
+ UINT16 usExtraSinTsiDependencyCnt;
+
+ /* Additional TSI entry used to temporarily store the RIN signal. */
+ UINT16 usExtraRinTsiMemIndex;
+ UINT16 usExtraRinTsiDependencyCnt;
+
+ /* Conversion chariot memory entry. */
+ UINT16 usRinRoutConversionMemIndex;
+ UINT16 usSinSoutConversionMemIndex;
+
+ /* TSST control memory entry. */
+ UINT16 usRinTsstIndex;
+ UINT16 usSinTsstIndex;
+ UINT16 usRoutTsstIndex;
+ UINT16 usSoutTsstIndex;
+
+ /* SSPX memory entry. */
+ UINT16 usEchoMemIndex;
+
+ /* Active mixer events count to test for last event. */
+ UINT16 usMixerEventCnt;
+
+ /* User channel ID, transparently passed to the user. */
+ UINT32 ulUserChanId;
+
+ /* Copy events. */
+ UINT16 usSinCopyEventIndex;
+ UINT16 usSoutCopyEventIndex;
+
+ /* Silence events. */
+ UINT16 usRinSilenceEventIndex;
+ UINT16 usSinSilenceEventIndex;
+
+ /* TDM configuration. */
+ tOCT6100_API_CHANNEL_TDM TdmConfig;
+
+ /* VQE configuration. */
+ tOCT6100_API_CHANNEL_VQE VqeConfig;
+
+ /* Current echo operation mode. */
+ UINT8 byEchoOperationMode;
+
+ /* Currently muted ports. */
+ UINT16 usMutedPorts;
+
+ /*=======================================================================*/
+
+
+ /*=======================================================================*/
+ /* Statistics section. */
+
+ INT16 sComfortNoiseLevel;
+
+ UINT16 usCurrentEchoDelay;
+ UINT16 usMaxEchoDelay;
+
+ UINT16 usNumEchoPathChanges;
+ UINT16 usNumEchoPathChangesOfst;
+
+ INT16 sCurrentERL;
+ INT16 sCurrentERLE;
+
+ INT16 sMaxERL;
+ INT16 sMaxERLE;
+
+ INT16 sRinLevel;
+ INT16 sSinLevel;
+
+ INT16 sRinAppliedGain;
+ INT16 sSoutAppliedGain;
+
+ UINT8 byToneDisablerStatus;
+
+ /*=======================================================================*/
+
+
+ /*=======================================================================*/
+ /* Bridge information. */
+
+ UINT16 usBridgeIndex;
+
+ UINT8 fMute;
+ UINT8 fTap;
+ UINT8 fBeingTapped;
+ UINT8 fCopyEventCreated;
+
+ UINT16 usLoadEventIndex;
+ UINT16 usSubStoreEventIndex;
+
+ UINT16 usFlexConfParticipantIndex;
+ UINT16 usTapBridgeIndex;
+ UINT16 usTapChanIndex;
+
+ /*=======================================================================*/
+
+
+ /*=======================================================================*/
+ /* Buffer playout information. */
+
+ UINT32 ulRinBufWritePtr;
+ UINT32 ulRinBufSkipPtr;
+
+ UINT8 fSoutBufPlaying;
+ UINT8 fRinBufPlaying;
+
+ UINT8 fRinBufPlayoutNotifyOnStop;
+ UINT8 fRinBufPlayoutRepeatUsed;
+
+ UINT32 ulSoutBufWritePtr;
+ UINT32 ulSoutBufSkipPtr;
+
+ UINT8 fSoutBufPlayoutNotifyOnStop;
+ UINT8 fSoutBufPlayoutRepeatUsed;
+
+ UINT8 fRinHardStop;
+ UINT8 fSoutHardStop;
+
+ UINT32 ulRinUserBufPlayoutEventId;
+ UINT32 ulSoutUserBufPlayoutEventId;
+
+ UINT8 byRinPlayoutStopEventType;
+ UINT8 bySoutPlayoutStopEventType;
+
+ UINT8 fRinBufAdded;
+ UINT8 fSoutBufAdded;
+
+ UINT8 fBufPlayoutActive;
+
+ /*=======================================================================*/
+
+
+ /*=======================================================================*/
+ /* Copy events information. */
+
+ /* Number of copy events created. */
+ UINT16 usCopyEventCnt;
+
+ /*=======================================================================*/
+
+
+ /*=======================================================================*/
+ /* Extended tone detection info. */
+
+ /* Enable extended tone detection. */
+ UINT8 fEnableExtToneDetection;
+
+ UINT16 usExtToneChanIndex;
+ UINT16 usExtToneMixerIndex;
+ UINT16 usExtToneTsiIndex;
+
+ /* Mode of operation of the channel based on the extended tone detection configuration. */
+ UINT32 ulExtToneChanMode;
+
+ /*=======================================================================*/
+
+ /* Tone detection state. */
+ /* This array is configured as follow. */
+ /* Index 0 contain event 0 to 31 and Index 1 contains event 32 - 55 */
+ UINT32 aulToneConf[ 2 ];
+ UINT32 ulLastSSToneDetected;
+ UINT32 ulLastSSToneTimestamp;
+
+ /*=======================================================================*/
+
+
+ /*=======================================================================*/
+
+ /* Index of the phasing TSST */
+ UINT16 usPhasingTsstIndex;
+
+ /* State of the codec structure associated to this channel. */
+ UINT8 fSinSoutCodecActive;
+ UINT8 fRinRoutCodecActive;
+
+ /* Codec configuration. */
+ tOCT6100_API_CHANNEL_CODEC CodecConfig;
+
+ /*=======================================================================*/
+
+
+
+
+
+
+
+ /* Nlp Conf Dword, index 0 contains the dword where the dword is located. and
+ index 1 is the actual value of the dword.*/
+ UINT32 aulNlpConfDword[ cOCT6100_MAX_NLP_CONF_DWORD ][ 2 ];
+
+} tOCT6100_API_CHANNEL, *tPOCT6100_API_CHANNEL;
+
+typedef struct _OCT6100_API_BIDIR_CHANNEL_
+{
+ UINT16 usFirstChanIndex;
+ UINT16 usSecondChanIndex;
+
+ /* Flag specifying whether the entry is used or not. */
+ UINT8 fReserved;
+
+ /* Count used to manage entry handles allocated to user. */
+ UINT8 byEntryOpenCnt;
+
+} tOCT6100_API_BIDIR_CHANNEL, *tPOCT6100_API_BIDIR_CHANNEL;
+
+#endif /* __OCT6100_CHANNEL_INST_H__ */
diff --git a/software/include/oct6100api/oct6100_channel_pub.h b/software/include/oct6100api/oct6100_channel_pub.h
new file mode 100644
index 0000000..792edcd
--- /dev/null
+++ b/software/include/oct6100api/oct6100_channel_pub.h
@@ -0,0 +1,542 @@
+/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
+
+File: oct6100_channel_pub.h
+
+ Copyright (c) 2001-2005 Octasic Inc.
+
+Description:
+
+ File containing all defines, macros, and structures pertaining to the file
+ oct6100_channel.c. All elements defined in this file are for public
+ usage of the API. All private elements are defined in the
+ oct6100_channel_priv.h file.
+
+This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API is
+free software; you can redistribute it and/or modify it under the terms of
+the GNU General Public License as published by the Free Software Foundation;
+either version 2 of the License, or (at your option) any later version.
+
+The OCT6100 GPL API is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with the OCT6100 GPL API; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+$Octasic_Release: OCT612xAPI-01.00-PR38 $
+
+$Octasic_Revision: 79 $
+
+\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
+
+#ifndef __OCT6100_CHANNEL_PUB_H__
+#define __OCT6100_CHANNEL_PUB_H__
+
+/***************************** INCLUDE FILES *******************************/
+
+
+/***************************** DEFINES *************************************/
+
+
+/***************************** TYPES ***************************************/
+
+/* Channel open structures. */
+typedef struct _OCT6100_CHANNEL_OPEN_TDM_
+{
+ UINT32 ulRinNumTssts;
+ UINT32 ulSinNumTssts;
+ UINT32 ulRoutNumTssts;
+ UINT32 ulSoutNumTssts;
+
+ UINT32 ulSinTimeslot;
+ UINT32 ulSinStream;
+ UINT32 ulSinPcmLaw;
+
+ UINT32 ulSoutTimeslot;
+ UINT32 ulSoutStream;
+ UINT32 ulSoutPcmLaw;
+
+ UINT32 ulRinTimeslot;
+ UINT32 ulRinStream;
+ UINT32 ulRinPcmLaw;
+
+ UINT32 ulRoutTimeslot;
+ UINT32 ulRoutStream;
+ UINT32 ulRoutPcmLaw;
+
+} tOCT6100_CHANNEL_OPEN_TDM, *tPOCT6100_CHANNEL_OPEN_TDM;
+
+typedef struct _OCT6100_CHANNEL_OPEN_VQE_
+{
+ BOOL fEnableNlp;
+ BOOL fEnableTailDisplacement;
+ UINT32 ulTailDisplacement;
+ UINT32 ulTailLength;
+
+ BOOL fSinDcOffsetRemoval;
+ BOOL fRinDcOffsetRemoval;
+ BOOL fRinLevelControl;
+ BOOL fSoutLevelControl;
+ BOOL fRinAutomaticLevelControl;
+ BOOL fSoutAutomaticLevelControl;
+ BOOL fRinHighLevelCompensation;
+ BOOL fAcousticEcho;
+ BOOL fSoutAdaptiveNoiseReduction;
+ BOOL fDtmfToneRemoval;
+
+ BOOL fSoutNoiseBleaching;
+ BOOL fSoutConferencingNoiseReduction;
+
+ UINT32 ulComfortNoiseMode;
+ UINT32 ulNonLinearityBehaviorA;
+ UINT32 ulNonLinearityBehaviorB;
+
+ INT32 lRinLevelControlGainDb;
+ INT32 lSoutLevelControlGainDb;
+ INT32 lRinAutomaticLevelControlTargetDb;
+ INT32 lSoutAutomaticLevelControlTargetDb;
+ INT32 lRinHighLevelCompensationThresholdDb;
+ INT32 lDefaultErlDb;
+ INT32 lAecDefaultErlDb;
+ UINT32 ulAecTailLength;
+ UINT32 ulSoutAutomaticListenerEnhancementGainDb;
+ UINT32 ulSoutNaturalListenerEnhancementGainDb;
+ BOOL fSoutNaturalListenerEnhancement;
+ BOOL fRoutNoiseReduction;
+ INT32 lAnrSnrEnhancementDb;
+ UINT32 ulAnrVoiceNoiseSegregation;
+ UINT32 ulDoubleTalkBehavior;
+
+ UINT32 ulToneDisablerVqeActivationDelay;
+
+ BOOL fEnableMusicProtection;
+ BOOL fIdleCodeDetection;
+
+
+
+} tOCT6100_CHANNEL_OPEN_VQE, *tPOCT6100_CHANNEL_OPEN_VQE;
+
+typedef struct _OCT6100_CHANNEL_OPEN_CODEC_
+{
+ UINT32 ulAdpcmNibblePosition;
+
+ UINT32 ulEncoderPort;
+ UINT32 ulEncodingRate;
+
+ UINT32 ulDecoderPort;
+ UINT32 ulDecodingRate;
+
+ BOOL fEnableSilenceSuppression;
+ UINT32 ulPhase;
+ UINT32 ulPhasingType;
+ UINT32 ulPhasingTsstHndl;
+
+} tOCT6100_CHANNEL_OPEN_CODEC, *tPOCT6100_CHANNEL_OPEN_CODEC;
+
+typedef struct _OCT6100_CHANNEL_OPEN_
+{
+ PUINT32 pulChannelHndl;
+ UINT32 ulUserChanId;
+
+ UINT32 ulEchoOperationMode;
+
+ BOOL fEnableToneDisabler;
+
+ BOOL fEnableExtToneDetection;
+
+ tOCT6100_CHANNEL_OPEN_TDM TdmConfig;
+ tOCT6100_CHANNEL_OPEN_VQE VqeConfig;
+ tOCT6100_CHANNEL_OPEN_CODEC CodecConfig;
+
+
+
+} tOCT6100_CHANNEL_OPEN, *tPOCT6100_CHANNEL_OPEN;
+
+/* Channel close structure. */
+typedef struct _OCT6100_CHANNEL_CLOSE_
+{
+ UINT32 ulChannelHndl;
+
+} tOCT6100_CHANNEL_CLOSE, *tPOCT6100_CHANNEL_CLOSE;
+
+/* Channel modify structures. */
+typedef struct _OCT6100_CHANNEL_MODIFY_TDM_
+{
+ UINT32 ulRinNumTssts;
+ UINT32 ulSinNumTssts;
+ UINT32 ulRoutNumTssts;
+ UINT32 ulSoutNumTssts;
+
+ UINT32 ulSinTimeslot;
+ UINT32 ulSinStream;
+ UINT32 ulSinPcmLaw;
+
+ UINT32 ulSoutTimeslot;
+ UINT32 ulSoutStream;
+ UINT32 ulSoutPcmLaw;
+
+ UINT32 ulRinTimeslot;
+ UINT32 ulRinStream;
+ UINT32 ulRinPcmLaw;
+
+ UINT32 ulRoutTimeslot;
+ UINT32 ulRoutStream;
+ UINT32 ulRoutPcmLaw;
+
+} tOCT6100_CHANNEL_MODIFY_TDM, *tPOCT6100_CHANNEL_MODIFY_TDM;
+
+typedef struct _OCT6100_CHANNEL_MODIFY_VQE_
+{
+ BOOL fEnableNlp;
+ BOOL fEnableTailDisplacement;
+ UINT32 ulTailDisplacement;
+
+ BOOL fSinDcOffsetRemoval;
+ BOOL fRinDcOffsetRemoval;
+ BOOL fRinLevelControl;
+ BOOL fSoutLevelControl;
+ BOOL fRinAutomaticLevelControl;
+ BOOL fSoutAutomaticLevelControl;
+ BOOL fRinHighLevelCompensation;
+ BOOL fAcousticEcho;
+ BOOL fSoutAdaptiveNoiseReduction;
+ BOOL fDtmfToneRemoval;
+
+ BOOL fSoutConferencingNoiseReduction;
+ BOOL fSoutNoiseBleaching;
+
+ UINT32 ulNonLinearityBehaviorA;
+ UINT32 ulNonLinearityBehaviorB;
+ UINT32 ulComfortNoiseMode;
+
+ INT32 lRinLevelControlGainDb;
+ INT32 lSoutLevelControlGainDb;
+ INT32 lRinAutomaticLevelControlTargetDb;
+ INT32 lSoutAutomaticLevelControlTargetDb;
+ INT32 lRinHighLevelCompensationThresholdDb;
+ INT32 lDefaultErlDb;
+ INT32 lAecDefaultErlDb;
+ UINT32 ulAecTailLength;
+ UINT32 ulSoutAutomaticListenerEnhancementGainDb;
+ UINT32 ulSoutNaturalListenerEnhancementGainDb;
+ BOOL fSoutNaturalListenerEnhancement;
+ BOOL fRoutNoiseReduction;
+ INT32 lAnrSnrEnhancementDb;
+ UINT32 ulAnrVoiceNoiseSegregation;
+ UINT32 ulDoubleTalkBehavior;
+
+ UINT32 ulToneDisablerVqeActivationDelay;
+
+ BOOL fEnableMusicProtection;
+ BOOL fIdleCodeDetection;
+
+
+
+} tOCT6100_CHANNEL_MODIFY_VQE, *tPOCT6100_CHANNEL_MODIFY_VQE;
+
+typedef struct _OCT6100_CHANNEL_MODIFY_CODEC_
+{
+ UINT32 ulEncoderPort;
+ UINT32 ulEncodingRate;
+
+ UINT32 ulDecoderPort;
+ UINT32 ulDecodingRate;
+
+ BOOL fEnableSilenceSuppression;
+ UINT32 ulPhase;
+ UINT32 ulPhasingType;
+ UINT32 ulPhasingTsstHndl;
+
+} tOCT6100_CHANNEL_MODIFY_CODEC, *tPOCT6100_CHANNEL_MODIFY_CODEC;
+
+typedef struct _OCT6100_CHANNEL_MODIFY_
+{
+ UINT32 ulChannelHndl;
+ UINT32 ulUserChanId;
+ UINT32 ulEchoOperationMode;
+
+ BOOL fEnableToneDisabler;
+
+ BOOL fApplyToAllChannels;
+
+ BOOL fDisableToneDetection;
+ BOOL fStopBufferPlayout;
+ BOOL fRemoveConfBridgeParticipant;
+ BOOL fRemoveBroadcastTssts;
+
+ BOOL fTdmConfigModified; /* TRUE/FALSE */
+ BOOL fVqeConfigModified; /* TRUE/FALSE */
+ BOOL fCodecConfigModified; /* TRUE/FALSE */
+
+
+ tOCT6100_CHANNEL_MODIFY_TDM TdmConfig;
+ tOCT6100_CHANNEL_MODIFY_VQE VqeConfig;
+ tOCT6100_CHANNEL_MODIFY_CODEC CodecConfig;
+
+} tOCT6100_CHANNEL_MODIFY, *tPOCT6100_CHANNEL_MODIFY;
+
+typedef struct _OCT6100_CHANNEL_BROADCAST_TSST_ADD_
+{
+ UINT32 ulChannelHndl;
+
+ UINT32 ulPort;
+ UINT32 ulTimeslot;
+ UINT32 ulStream;
+
+} tOCT6100_CHANNEL_BROADCAST_TSST_ADD, *tPOCT6100_CHANNEL_BROADCAST_TSST_ADD;
+
+typedef struct _OCT6100_CHANNEL_BROADCAST_TSST_REMOVE_
+{
+ UINT32 ulChannelHndl;
+
+ UINT32 ulPort;
+ UINT32 ulTimeslot;
+ UINT32 ulStream;
+
+ BOOL fRemoveAll;
+
+} tOCT6100_CHANNEL_BROADCAST_TSST_REMOVE, *tPOCT6100_CHANNEL_BROADCAST_TSST_REMOVE;
+
+/* Channel open structures.*/
+typedef struct _OCT6100_CHANNEL_STATS_TDM_
+{
+ UINT32 ulMaxBroadcastTssts;
+ UINT32 ulNumRoutBroadcastTssts;
+ BOOL fMoreRoutBroadcastTssts;
+ UINT32 ulNumSoutBroadcastTssts;
+ BOOL fMoreSoutBroadcastTssts;
+
+ UINT32 ulSinNumTssts;
+ UINT32 ulSoutNumTssts;
+ UINT32 ulRinNumTssts;
+ UINT32 ulRoutNumTssts;
+
+ UINT32 ulSinTimeslot;
+ UINT32 ulSinStream;
+ UINT32 ulSinPcmLaw;
+
+ UINT32 ulSoutTimeslot;
+ UINT32 ulSoutStream;
+ UINT32 ulSoutPcmLaw;
+
+ PUINT32 pulSoutBroadcastTimeslot;
+ PUINT32 pulSoutBroadcastStream;
+
+ UINT32 ulRinTimeslot;
+ UINT32 ulRinStream;
+ UINT32 ulRinPcmLaw;
+
+ UINT32 ulRoutTimeslot;
+ UINT32 ulRoutStream;
+ UINT32 ulRoutPcmLaw;
+
+ PUINT32 pulRoutBroadcastTimeslot;
+ PUINT32 pulRoutBroadcastStream;
+
+} tOCT6100_CHANNEL_STATS_TDM, *tPOCT6100_CHANNEL_STATS_TDM;
+
+typedef struct _OCT6100_CHANNEL_STATS_VQE_
+{
+ BOOL fEnableNlp;
+ BOOL fEnableTailDisplacement;
+ UINT32 ulTailDisplacement;
+ UINT32 ulTailLength;
+
+ BOOL fSinDcOffsetRemoval;
+ BOOL fRinDcOffsetRemoval;
+ BOOL fRinLevelControl;
+ BOOL fSoutLevelControl;
+ BOOL fRinAutomaticLevelControl;
+ BOOL fSoutAutomaticLevelControl;
+ BOOL fRinHighLevelCompensation;
+ BOOL fAcousticEcho;
+ BOOL fSoutAdaptiveNoiseReduction;
+ BOOL fDtmfToneRemoval;
+
+ BOOL fSoutConferencingNoiseReduction;
+ BOOL fSoutNoiseBleaching;
+
+ UINT32 ulComfortNoiseMode;
+ UINT32 ulNonLinearityBehaviorA;
+ UINT32 ulNonLinearityBehaviorB;
+
+ INT32 lRinLevelControlGainDb;
+ INT32 lSoutLevelControlGainDb;
+ INT32 lRinAutomaticLevelControlTargetDb;
+ INT32 lSoutAutomaticLevelControlTargetDb;
+ INT32 lRinHighLevelCompensationThresholdDb;
+ INT32 lDefaultErlDb;
+ INT32 lAecDefaultErlDb;
+ UINT32 ulAecTailLength;
+ UINT32 ulSoutAutomaticListenerEnhancementGainDb;
+ UINT32 ulSoutNaturalListenerEnhancementGainDb;
+ BOOL fSoutNaturalListenerEnhancement;
+ BOOL fRoutNoiseReduction;
+ INT32 lAnrSnrEnhancementDb;
+ UINT32 ulAnrVoiceNoiseSegregation;
+ UINT32 ulDoubleTalkBehavior;
+
+ UINT32 ulToneDisablerVqeActivationDelay;
+
+ BOOL fEnableMusicProtection;
+ BOOL fIdleCodeDetection;
+
+
+
+} tOCT6100_CHANNEL_STATS_VQE, *tPOCT6100_CHANNEL_STATS_VQE;
+
+typedef struct _OCT6100_CHANNEL_STATS_CODEC_
+{
+ UINT32 ulAdpcmNibblePosition;
+
+ UINT32 ulEncoderPort;
+ UINT32 ulEncodingRate;
+
+ UINT32 ulDecoderPort;
+ UINT32 ulDecodingRate;
+
+ BOOL fEnableSilenceSuppression;
+ UINT32 ulPhase;
+ UINT32 ulPhasingType;
+ UINT32 ulPhasingTsstHndl;
+
+} tOCT6100_CHANNEL_STATS_CODEC, *tPOCT6100_CHANNEL_STATS_CODEC;
+
+typedef struct _OCT6100_CHANNEL_STATS_
+{
+ BOOL fResetStats;
+
+ UINT32 ulChannelHndl;
+ UINT32 ulUserChanId;
+
+ UINT32 ulEchoOperationMode;
+ BOOL fEnableToneDisabler;
+
+ UINT32 ulMutePortsMask;
+ BOOL fEnableExtToneDetection;
+
+ tOCT6100_CHANNEL_STATS_TDM TdmConfig;
+ tOCT6100_CHANNEL_STATS_VQE VqeConfig;
+ tOCT6100_CHANNEL_STATS_CODEC CodecConfig;
+
+ /* Real stats. */
+ UINT32 ulNumEchoPathChanges;
+ UINT32 ulToneDisablerStatus;
+
+ INT32 lCurrentERL;
+ INT32 lCurrentERLE;
+ UINT32 ulCurrentEchoDelay;
+
+ INT32 lMaxERL;
+ INT32 lMaxERLE;
+ UINT32 ulMaxEchoDelay;
+
+ INT32 lRinLevel;
+ INT32 lSinLevel;
+ INT32 lRinAppliedGain;
+ INT32 lSoutAppliedGain;
+ INT32 lComfortNoiseLevel;
+
+ BOOL fEchoCancellerConverged;
+ BOOL fSinVoiceDetected;
+
+
+
+} tOCT6100_CHANNEL_STATS, *tPOCT6100_CHANNEL_STATS;
+
+typedef struct _OCT6100_CHANNEL_CREATE_BIDIR_
+{
+ PUINT32 pulBiDirChannelHndl;
+
+ UINT32 ulFirstChannelHndl;
+ UINT32 ulSecondChannelHndl;
+
+} tOCT6100_CHANNEL_CREATE_BIDIR, *tPOCT6100_CHANNEL_CREATE_BIDIR;
+
+typedef struct _OCT6100_CHANNEL_DESTROY_BIDIR_
+{
+ UINT32 ulBiDirChannelHndl;
+
+} tOCT6100_CHANNEL_DESTROY_BIDIR, *tPOCT6100_CHANNEL_DESTROY_BIDIR;
+
+typedef struct _OCT6100_CHANNEL_MUTE_
+{
+ UINT32 ulChannelHndl;
+ UINT32 ulPortMask;
+
+} tOCT6100_CHANNEL_MUTE, *tPOCT6100_CHANNEL_MUTE;
+
+typedef struct _OCT6100_CHANNEL_UNMUTE_
+{
+ UINT32 ulChannelHndl;
+ UINT32 ulPortMask;
+
+} tOCT6100_CHANNEL_UNMUTE, *tPOCT6100_CHANNEL_UNMUTE;
+
+
+/************************** FUNCTION PROTOTYPES *****************************/
+
+
+UINT32 Oct6100ChannelOpenDef(
+ OUT tPOCT6100_CHANNEL_OPEN f_pChannelOpen );
+UINT32 Oct6100ChannelOpen(
+ IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
+ IN OUT tPOCT6100_CHANNEL_OPEN f_pChannelOpen );
+
+UINT32 Oct6100ChannelCloseDef(
+ OUT tPOCT6100_CHANNEL_CLOSE f_pChannelClose );
+UINT32 Oct6100ChannelClose(
+ IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
+ IN OUT tPOCT6100_CHANNEL_CLOSE f_pChannelClose );
+
+UINT32 Oct6100ChannelModifyDef(
+ OUT tPOCT6100_CHANNEL_MODIFY f_pChannelModify );
+UINT32 Oct6100ChannelModify(
+ IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
+ IN OUT tPOCT6100_CHANNEL_MODIFY f_pChannelModify );
+
+UINT32 Oct6100ChannelBroadcastTsstAddDef(
+ OUT tPOCT6100_CHANNEL_BROADCAST_TSST_ADD f_pChannelTsstAdd );
+UINT32 Oct6100ChannelBroadcastTsstAdd(
+ IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
+ IN OUT tPOCT6100_CHANNEL_BROADCAST_TSST_ADD f_pChannelTsstAdd );
+
+UINT32 Oct6100ChannelBroadcastTsstRemoveDef(
+ OUT tPOCT6100_CHANNEL_BROADCAST_TSST_REMOVE f_pChannelTsstRemove );
+UINT32 Oct6100ChannelBroadcastTsstRemove(
+ IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
+ IN OUT tPOCT6100_CHANNEL_BROADCAST_TSST_REMOVE f_pChannelTsstRemove );
+
+UINT32 Oct6100ChannelGetStatsDef(
+ OUT tPOCT6100_CHANNEL_STATS f_pChannelStats );
+UINT32 Oct6100ChannelGetStats(
+ IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
+ IN OUT tPOCT6100_CHANNEL_STATS f_pChannelStats );
+
+UINT32 Oct6100ChannelCreateBiDirDef(
+ OUT tPOCT6100_CHANNEL_CREATE_BIDIR f_pChannelCreateBiDir );
+UINT32 Oct6100ChannelCreateBiDir(
+ IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
+ IN OUT tPOCT6100_CHANNEL_CREATE_BIDIR f_pChannelCreateBiDir );
+
+UINT32 Oct6100ChannelDestroyBiDirDef(
+ OUT tPOCT6100_CHANNEL_DESTROY_BIDIR f_pChannelDestroyBiDir );
+UINT32 Oct6100ChannelDestroyBiDir(
+ IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
+ IN OUT tPOCT6100_CHANNEL_DESTROY_BIDIR f_pChannelDestroyBiDir );
+
+UINT32 Oct6100ChannelMuteDef(
+ OUT tPOCT6100_CHANNEL_MUTE f_pChannelMute );
+UINT32 Oct6100ChannelMute(
+ IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
+ IN OUT tPOCT6100_CHANNEL_MUTE f_pChannelMute );
+
+UINT32 Oct6100ChannelUnMuteDef(
+ OUT tPOCT6100_CHANNEL_UNMUTE f_pChannelUnMute );
+UINT32 Oct6100ChannelUnMute(
+ IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
+ IN OUT tPOCT6100_CHANNEL_UNMUTE f_pChannelUnMute );
+
+#endif /* __OCT6100_CHANNEL_PUB_H__ */
diff --git a/software/include/oct6100api/oct6100_chip_open_inst.h b/software/include/oct6100api/oct6100_chip_open_inst.h
new file mode 100644
index 0000000..f1ee150
--- /dev/null
+++ b/software/include/oct6100api/oct6100_chip_open_inst.h
@@ -0,0 +1,511 @@
+/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
+
+File: oct6100_chip_open_inst.h
+
+ Copyright (c) 2001-2005 Octasic Inc.
+
+Description:
+
+ File containing all defines, macros, and structures pertaining to the file
+ oct6100_chip_open.c. All elements defined in this file are for public
+ usage of the API. All private elements are defined in the
+ oct6100_chip_open_priv.h file.
+
+This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API is
+free software; you can redistribute it and/or modify it under the terms of
+the GNU General Public License as published by the Free Software Foundation;
+either version 2 of the License, or (at your option) any later version.
+
+The OCT6100 GPL API is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with the OCT6100 GPL API; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+$Octasic_Release: OCT612xAPI-01.00-PR38 $
+
+$Octasic_Revision: 116 $
+
+\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
+
+#ifndef __OCT6100_CHIP_OPEN_INST_H__
+#define __OCT6100_CHIP_OPEN_INST_H__
+
+/***************************** INCLUDE FILES *******************************/
+
+/***************************** DEFINES *************************************/
+
+/***************************** TYPES ***************************************/
+
+typedef struct _OCT6100_API_CHIP_CONFIG_
+{
+ UINT32 ulUserChipId;
+ PVOID pProcessContext;
+
+ PUINT8 pbyImageFile; /* Byte pointer to the image file to be uploaded into the chip. */
+ UINT32 ulImageSize; /* Size of the image file (in bytes). */
+
+ UINT32 ulMemClkFreq;
+ UINT32 ulUpclkFreq; /* 33.33 or 66.66 MHz. */
+ UINT8 fEnableMemClkOut; /* TRUE/FALSE */
+
+ UINT8 fMultiProcessSystem;
+
+ UINT8 byMemoryType; /* SDRAM or DDR */
+ UINT8 byNumMemoryChips; /* Number of memory chips present. */
+ UINT32 ulMemoryChipSize; /* The size of the memory chips. */
+
+ UINT16 usMaxRwAccesses;
+ UINT16 usTailDisplacement;
+
+ /* Resource allocation parameters. */
+ UINT16 usMaxChannels;
+ UINT16 usMaxBiDirChannels;
+
+ UINT32 aulTdmStreamFreqs[ cOCT6100_TDM_STREAM_MAX_GROUPS ];
+
+ UINT8 byMaxTdmStreams;
+ UINT8 byTdmSampling;
+
+ UINT8 fEnableFastH100Mode;
+ UINT8 fEnableAcousticEcho; /* Acoustic echo enabled. */
+
+ UINT16 ausTimestampTimeslots[ 4 ];
+ UINT16 ausTimestampStreams[ 4 ];
+
+ UINT8 fUseSynchTimestamp;
+
+ /* Debug feature used to record stream information from a channel.*/
+ UINT8 fEnableChannelRecording;
+
+ UINT16 usMaxRemoteDebugSessions;
+
+ UINT8 byInterruptPolarity;
+
+ UINT16 usMaxTsiCncts;
+
+ UINT8 fEnableExtToneDetection;
+
+
+ UINT16 usMaxConfBridges;
+ UINT16 usMaxFlexibleConfParticipants;
+ UINT16 usMaxPlayoutBuffers;
+
+ /* Playout event software buffer size. */
+ UINT32 ulSoftBufPlayoutEventsBufSize;
+
+ /* Soft buffer size. */
+ UINT32 ulSoftToneEventsBufSize;
+
+ UINT16 usMaxPhasingTssts;
+ UINT16 usMaxAdpcmChannels;
+
+
+
+
+
+ UINT8 fEnableProductionBist;
+ UINT32 ulNumProductionBistLoops;
+
+} tOCT6100_API_CHIP_CONFIG, *tPOCT6100_API_CHIP_CONFIG;
+
+
+typedef struct _OCT6100_API_MISCELLANEOUS_
+{
+ /* Total size of external memories. */
+ UINT32 ulTotalMemSize;
+
+ UINT32 ulH100SlaveMode;
+
+ /* Mclk frequency generated by the chip. */
+ UINT32 ulMclkFreq;
+
+ /* Array of UINT32s used to perform a burst of writes (avoids having to
+ allocate on the stack. The size of this array MUST NOT CHANGE (it's
+ used everywhere). */
+ UINT16 ausSuperArray[ cOCT6100_INTERNAL_SUPER_ARRAY_SIZE ];
+ UINT16 ausSuperArray1[ cOCT6100_INTERNAL_SUPER_ARRAY_SIZE ];
+ UINT16 ausSuperArray2[ cOCT6100_INTERNAL_SUPER_ARRAY_SIZE ];
+
+ /* Chip ID and revision.*/
+ UINT16 usChipId;
+ UINT16 usChipRevision;
+
+ /* Lsu CPU access variables.*/
+ UINT16 usCpuLsuWritePtr;
+ UINT16 usCodepoint;
+
+ /* Max number of channel supported.*/
+ UINT16 usMaxNumberOfChannels;
+ UINT16 usMaxH100Speed;
+ UINT16 usTdmClkBoundary;
+
+ UINT16 usNumBridgesOpened;
+ UINT16 usFirstBridge;
+
+
+
+
+
+} tOCT6100_API_MISCELLANEOUS, *tPOCT6100_API_MISCELLANEOUS;
+
+typedef struct _OCT6100_API_MEMORY_MAP_
+{
+ /*-----------------------------------------------------------------------------*/
+ /* Structure contained in external memory. */
+
+ /* Memory mapping filled using TLV information from the chip. */
+
+ /* Main channel memory. */
+ UINT32 ulChanMainMemBase;
+ UINT32 ulChanMainMemSize;
+
+ UINT32 ulChanMainIoMemOfst;
+
+ UINT32 ulChanMainRinCBMemOfst;
+ UINT32 ulChanMainRinCBMemSize;
+ UINT32 ulChanMainSinCBMemOfst;
+ UINT32 ulChanMainSinCBMemSize;
+ UINT32 ulChanMainSoutCBMemOfst;
+ UINT32 ulChanMainSoutCBMemSize;
+
+ /* Free memory base address. */
+ UINT32 ulFreeMemBaseAddress;
+
+ /* Root channel config offset. */
+ UINT32 ulChanRootConfOfst;
+
+ /* Playout buffer info. */
+ UINT32 ulChanMainRinPlayoutMemOfst;
+ UINT32 ulChanMainRinPlayoutMemSize;
+ UINT32 ulChanMainSoutPlayoutMemOfst;
+ UINT32 ulChanMainSoutPlayoutMemSize;
+
+ /* Channel Stats location */
+ UINT32 ulChanMainIoStatsOfst;
+ UINT32 ulChanMainIoStatsSize;
+
+ /* Buffer playout fields. */
+ tOCT6100_TLV_OFFSET PlayoutRinWritePtrOfst;
+ tOCT6100_TLV_OFFSET PlayoutRinIgnoreSkipCleanOfst;
+ tOCT6100_TLV_OFFSET PlayoutRinSkipPtrOfst;
+ tOCT6100_TLV_OFFSET PlayoutSoutWritePtrOfst;
+ tOCT6100_TLV_OFFSET PlayoutSoutIgnoreSkipCleanOfst;
+ tOCT6100_TLV_OFFSET PlayoutSoutSkipPtrOfst;
+ tOCT6100_TLV_OFFSET PlayoutRinReadPtrOfst;
+ tOCT6100_TLV_OFFSET PlayoutSoutReadPtrOfst;
+ tOCT6100_TLV_OFFSET PlayoutRinHardSkipOfst;
+ tOCT6100_TLV_OFFSET PlayoutSoutHardSkipOfst;
+
+ /* Adaptive noise reduction. */
+ tOCT6100_TLV_OFFSET AdaptiveNoiseReductionOfst;
+
+ /* DC offset removal. */
+ tOCT6100_TLV_OFFSET RinDcOffsetRemovalOfst;
+ tOCT6100_TLV_OFFSET SinDcOffsetRemovalOfst;
+
+ /* Level control. */
+ tOCT6100_TLV_OFFSET RinLevelControlOfst;
+ tOCT6100_TLV_OFFSET SoutLevelControlOfst;
+
+ /* Auto level control. */
+ tOCT6100_TLV_OFFSET RinAutoLevelControlTargetOfst;
+ tOCT6100_TLV_OFFSET SoutAutoLevelControlTargetOfst;
+
+ /* High level compensation. */
+ tOCT6100_TLV_OFFSET RinHighLevelCompensationThresholdOfst;
+ tOCT6100_TLV_OFFSET SoutHighLevelCompensationThresholdOfst;
+
+ /* Auto level control and high level compensation status. */
+ tOCT6100_TLV_OFFSET AlcHlcStatusOfst;
+
+ /* Confort Noise Mode. */
+ tOCT6100_TLV_OFFSET ComfortNoiseModeOfst;
+
+ /* NLP control field. */
+ tOCT6100_TLV_OFFSET NlpControlFieldOfst;
+
+ /* VAD control field offset.*/
+ tOCT6100_TLV_OFFSET VadControlFieldOfst;
+
+ /* NLP Trivial field offset. */
+ tOCT6100_TLV_OFFSET NlpTrivialFieldOfst;
+
+ /* Acoustic echo field offset. */
+ tOCT6100_TLV_OFFSET AecFieldOfst;
+
+ /* Acoustic echo default ERL field offset. */
+ tOCT6100_TLV_OFFSET AecDefaultErlFieldOfst;
+
+ /* Non-linearity behavior A and B field offset. */
+ tOCT6100_TLV_OFFSET PcmLeakFieldOfst;
+ tOCT6100_TLV_OFFSET NlpConvCapFieldOfst;
+
+ /* Default ERL field offset. */
+ tOCT6100_TLV_OFFSET DefaultErlFieldOfst;
+
+ /* Tone Removal field offset.*/
+ tOCT6100_TLV_OFFSET ToneRemovalFieldOfst;
+
+
+
+ /* Channel config fields offset. */
+ tOCT6100_TLV_OFFSET ChanMainIoMaxEchoPointOfst;
+ tOCT6100_TLV_OFFSET TailDisplEnableOfst;
+
+ /* Pouch fields offset. */
+ tOCT6100_TLV_OFFSET PouchBootInstructionOfst;
+ tOCT6100_TLV_OFFSET PouchBootResultOfst;
+ tOCT6100_TLV_OFFSET PouchTailDisplOfst;
+
+ /* 2100 Hz Auto disabling fields offset. */
+ tOCT6100_TLV_OFFSET ToneDisablerControlOfst;
+
+ /* Conferencing dominant speaker field offset. */
+ tOCT6100_TLV_OFFSET DominantSpeakerFieldOfst;
+
+ /* Conferencing noise reduction field offset. */
+ tOCT6100_TLV_OFFSET ConferencingNoiseReductionOfst;
+
+ /* Per channel tail displacement field offset. */
+ tOCT6100_TLV_OFFSET PerChanTailDisplacementFieldOfst;
+
+ /* Per channel tail length field offset. */
+ tOCT6100_TLV_OFFSET PerChanTailLengthFieldOfst;
+
+ /* AF control/echo cancellation bypass. */
+ tOCT6100_TLV_OFFSET AftControlOfst;
+
+ /* Voice detected stat field offset. */
+ tOCT6100_TLV_OFFSET SinVoiceDetectedStatOfst;
+
+ /* Rin currently applied gain field offset. */
+ tOCT6100_TLV_OFFSET RinAppliedGainStatOfst;
+
+ /* Sout currently applied gain field offset. */
+ tOCT6100_TLV_OFFSET SoutAppliedGainStatOfst;
+
+ /* Adaptive listener enhancement field offset. */
+ tOCT6100_TLV_OFFSET AdaptiveAleOfst;
+
+ /* Rin NR field offset. */
+ tOCT6100_TLV_OFFSET RinAnrOfst;
+
+ /* Sin Mute field offset. */
+ tOCT6100_TLV_OFFSET SinMuteOfst;
+
+ /* Rin Mute field offset. */
+ tOCT6100_TLV_OFFSET RinMuteOfst;
+
+ /* Sout ANR SNR enhancement offset. */
+ tOCT6100_TLV_OFFSET AnrSnrEnhancementOfst;
+
+ /* Sout ANR voice-noise segregation offset. */
+ tOCT6100_TLV_OFFSET AnrVoiceNoiseSegregationOfst;
+
+ /* Tone disabler VQE activation delay offset. */
+ tOCT6100_TLV_OFFSET ToneDisablerVqeActivationDelayOfst;
+
+ /* AF tail displacement value configuration offset. */
+ tOCT6100_TLV_OFFSET AfTailDisplacementFieldOfst;
+
+ /* Pouch counter field offset. */
+ tOCT6100_TLV_OFFSET PouchCounterFieldOfst;
+
+ /* Acoustic echo tail length. */
+ tOCT6100_TLV_OFFSET AecTailLengthFieldOfst;
+
+ /* Is ISR called field offset. */
+ tOCT6100_TLV_OFFSET IsIsrCalledFieldOfst;
+
+ /* Music protection enable field offset. */
+ tOCT6100_TLV_OFFSET MusicProtectionFieldOfst;
+
+ /* Rin port energy level statistics field offset. */
+ tOCT6100_TLV_OFFSET RinEnergyStatFieldOfst;
+
+ /* Sout port energy level statistics field offset. */
+ tOCT6100_TLV_OFFSET SoutEnergyStatFieldOfst;
+
+ /* Double talk behavior field offset. */
+ tOCT6100_TLV_OFFSET DoubleTalkBehaviorFieldOfst;
+
+ /* Idle code detection field offset. */
+ tOCT6100_TLV_OFFSET IdleCodeDetectionFieldOfst;
+
+ /* TSI memory mapping information.*/
+ UINT32 ulNumTsiEntries;
+
+ /*-----------------------------------------------------------------------------*/
+
+} tOCT6100_API_MEMORY_MAP, *tPOCT6100_API_MEMORY_MAP;
+
+typedef struct _OCT6100_API_SOFT_BUFS_
+{
+ /* To avoid compilation errors. */
+ UINT32 ulDummyVariable;
+
+ /* Tone events buffer pointers. */
+ UINT32 ulToneEventBufferWritePtr;
+ UINT32 ulToneEventBufferReadPtr;
+ UINT32 ulToneEventBufferSize;
+ UINT32 ulToneEventBufferMemOfst;
+ UINT32 ulToneEventBufferOverflowCnt;
+
+ /* Playout events buffer pointers. */
+ UINT32 ulBufPlayoutEventBufferWritePtr;
+ UINT32 ulBufPlayoutEventBufferReadPtr;
+ UINT32 ulBufPlayoutEventBufferSize;
+ UINT32 ulBufPlayoutEventBufferMemOfst;
+ UINT32 ulBufPlayoutEventBufferOverflowCnt;
+
+} tOCT6100_API_SOFT_BUFS, *tPOCT6100_API_SOFT_BUFS;
+
+typedef struct _OCT6100_API_IMAGE_REGION_
+{
+ UINT32 ulPart1Size;
+ UINT32 ulPart2Size;
+ UINT32 ulClockInfo;
+
+ UINT32 ulReserved;
+
+ UINT32 ulPart1BaseAddress;
+ UINT32 ulPart2BaseAddress;
+
+} tOCT6100_API_IMAGE_REGION, *tPOCT6100_API_IMAGE_REGION;
+
+typedef struct _OCT6100_API_IMAGE_INFO_
+{
+ UINT8 fBufferPlayout;
+ UINT8 fAdaptiveNoiseReduction;
+ UINT8 fRinDcOffsetRemoval;
+ UINT8 fSinDcOffsetRemoval;
+
+ UINT8 fRinAutoLevelControl;
+ UINT8 fSoutAutoLevelControl;
+ UINT8 fRinHighLevelCompensation;
+ UINT8 fSoutHighLevelCompensation;
+
+ UINT8 fAlcHlcStatus;
+ UINT8 fComfortNoise;
+ UINT8 fNlpControl;
+ UINT8 fSilenceSuppression;
+
+ UINT8 fToneDisabler;
+ UINT8 fTailDisplacement;
+ UINT8 fPerChannelTailDisplacement;
+ UINT8 fAcousticEcho;
+
+ UINT8 fAecEnabled;
+ UINT8 fToneRemoval;
+ UINT8 fDefaultErl;
+ UINT8 fMaxEchoPoint;
+
+ UINT8 fNonLinearityBehaviorA;
+ UINT8 fNonLinearityBehaviorB;
+ UINT8 fAecDefaultErl;
+ UINT8 fAdpcm;
+
+ UINT8 fConferencing;
+ UINT8 fConferencingNoiseReduction;
+ UINT8 fMusicProtection;
+ UINT8 fDominantSpeakerEnabled;
+
+ UINT8 fAftControl;
+ UINT8 fSinVoiceDetectedStat;
+ UINT8 fRinAppliedGainStat;
+ UINT8 fSoutAppliedGainStat;
+
+ UINT8 fListenerEnhancement;
+ UINT8 fRoutNoiseReduction;
+ UINT8 fRinMute;
+ UINT8 fSinMute;
+
+ UINT8 fAnrSnrEnhancement;
+ UINT8 fAnrVoiceNoiseSegregation;
+ UINT8 fRinBufferPlayoutHardSkip;
+ UINT8 fSoutBufferPlayoutHardSkip;
+
+ UINT16 usMaxNumberOfChannels;
+ UINT8 fPerChannelTailLength;
+ UINT8 fToneDisablerVqeActivationDelay;
+
+ UINT32 ulToneProfileNumber;
+
+ UINT16 usMaxTailDisplacement;
+ UINT16 usMaxTailLength;
+
+ UINT8 byNumToneDetectors;
+ UINT8 byMaxNumberPlayoutEvents;
+
+ UINT8 fAfTailDisplacement;
+ UINT8 fAecTailLength;
+
+ UINT8 fMusicProtectionConfiguration;
+ UINT8 byImageType;
+
+ UINT8 fBufferPlayoutSkipInEvents;
+ UINT8 fSoutNoiseBleaching;
+
+ UINT8 fRinEnergyStat;
+ UINT8 fSoutEnergyStat;
+
+ UINT8 fDoubleTalkBehavior;
+ UINT8 fDoubleTalkBehaviorFieldOfst;
+
+ UINT8 fIdleCodeDetection;
+ UINT8 fIdleCodeDetectionConfiguration;
+
+ UINT8 fSinLevel;
+
+
+
+ UINT8 szVersionNumber[ cOCT6100_VERSION_NUMBER_MAX_SIZE ];
+ UINT32 ulBuildId;
+
+ tOCT6100_TLV_TONE_INFO aToneInfo[ cOCT6100_MAX_TONE_EVENT ];
+
+} tOCT6100_API_IMAGE_INFO, *tPOCT6100_API_IMAGE_INFO;
+
+typedef struct _OCT6100_API_MIXER_
+{
+ /* Pointer to the various event region. */
+ UINT16 usFirstSoutCopyEventPtr;
+ UINT16 usLastSoutCopyEventPtr;
+
+ UINT16 usFirstBridgeEventPtr;
+ UINT16 usLastBridgeEventPtr;
+
+ UINT16 usFirstSinCopyEventPtr;
+ UINT16 usLastSinCopyEventPtr;
+
+ /* Recording event info. */
+ UINT16 usRecordCopyEventIndex;
+ UINT16 usRecordSinEventIndex;
+
+} tOCT6100_API_MIXER, tPOCT6100_API_MIXER;
+
+
+typedef struct _OCT6100_API_BUFFER_PLAYOUT_MALLOC_INFO_
+{
+ /* Next node to be checked for free memory. */
+ UINT32 ulRovingNode;
+
+ /* First unused node in the unused list. */
+ UINT32 ulFirstUnusedNode;
+
+ /* Last unused node in the unused list. */
+ UINT32 ulLastUnusedNode;
+
+ /* Count of unused nodes. */
+ UINT32 ulUnusedNodeCnt;
+
+} tOCT6100_API_BUFFER_PLAYOUT_MALLOC_INFO, *tPOCT6100_API_BUFFER_PLAYOUT_MALLOC_INFO;
+
+
+
+
+#endif /* __OCT6100_CHIP_OPEN_INST_H__ */
diff --git a/software/include/oct6100api/oct6100_chip_open_pub.h b/software/include/oct6100api/oct6100_chip_open_pub.h
new file mode 100644
index 0000000..4554ccc
--- /dev/null
+++ b/software/include/oct6100api/oct6100_chip_open_pub.h
@@ -0,0 +1,222 @@
+/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
+
+File: oct6100_chip_open_pub.h
+
+ Copyright (c) 2001-2005 Octasic Inc.
+
+Description:
+
+ File containing all defines, macros, and structures pertaining to the file
+ oct6100_chip_open.c. All elements defined in this file are for public
+ usage of the API. All private elements are defined in the
+ oct6100_chip_open_priv.h file.
+
+This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API is
+free software; you can redistribute it and/or modify it under the terms of
+the GNU General Public License as published by the Free Software Foundation;
+either version 2 of the License, or (at your option) any later version.
+
+The OCT6100 GPL API is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with the OCT6100 GPL API; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+$Octasic_Release: OCT612xAPI-01.00-PR38 $
+
+$Octasic_Revision: 48 $
+
+\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
+
+#ifndef __OCT6100_CHIP_OPEN_PUB_H__
+#define __OCT6100_CHIP_OPEN_PUB_H__
+
+/***************************** INCLUDE FILES *******************************/
+
+
+/***************************** DEFINES *************************************/
+
+
+/***************************** TYPES ***************************************/
+
+typedef struct _OCT6100_CHIP_OPEN_
+{
+ UINT32 ulUserChipId;
+ BOOL fMultiProcessSystem;
+ PVOID pProcessContext;
+
+ UINT32 ulMaxRwAccesses;
+
+ PUINT8 pbyImageFile; /* Byte pointer to the image file to be uploaded into the chip. */
+ UINT32 ulImageSize; /* Size of the image file (in bytes). */
+
+ UINT32 ulMemClkFreq; /* 10 - 133.3 MHz. */
+ UINT32 ulUpclkFreq; /* 1 - 66.6 MHz. */
+ BOOL fEnableMemClkOut;
+
+ UINT32 ulMemoryType; /* SDRAM or DDR type external memory. */
+ UINT32 ulNumMemoryChips; /* Number of memory chips present. */
+ UINT32 ulMemoryChipSize; /* The size of the memory chips. */
+
+ UINT32 ulTailDisplacement; /* Tail displacement supported by the chip. */
+
+ BOOL fEnableAcousticEcho;/* Acoustic echo cancellation enabled. */
+
+ /* Resource allocation parameters. */
+ UINT32 ulMaxChannels;
+ UINT32 ulMaxTsiCncts;
+ UINT32 ulMaxBiDirChannels;
+ UINT32 ulMaxConfBridges;
+ UINT32 ulMaxFlexibleConfParticipants;
+ UINT32 ulMaxPlayoutBuffers;
+
+
+ UINT32 ulMaxPhasingTssts;
+ UINT32 ulMaxAdpcmChannels;
+ BOOL fUseSynchTimestamp;
+ UINT32 aulTimestampTimeslots[ 4 ];
+ UINT32 aulTimestampStreams[ 4 ];
+ UINT32 ulInterruptPolarity;
+ tOCT6100_INTERRUPT_CONFIGURE InterruptConfig;
+
+ UINT32 aulTdmStreamFreqs[ cOCT6100_TDM_STREAM_MAX_GROUPS ];
+ UINT32 ulMaxTdmStreams;
+ UINT32 ulTdmSampling;
+
+ BOOL fEnableFastH100Mode;
+
+ UINT32 ulSoftToneEventsBufSize; /* In events. */
+ BOOL fEnableExtToneDetection;
+
+
+ UINT32 ulSoftBufferPlayoutEventsBufSize; /* In events. */
+ UINT32 ulMaxRemoteDebugSessions;
+
+ BOOL fEnableChannelRecording;
+
+ BOOL fEnableProductionBist;
+ UINT32 ulNumProductionBistLoops;
+
+} tOCT6100_CHIP_OPEN, *tPOCT6100_CHIP_OPEN;
+
+typedef struct _OCT6100_GET_INSTANCE_SIZE_
+{
+ UINT32 ulApiInstanceSize;
+
+} tOCT6100_GET_INSTANCE_SIZE, *tPOCT6100_GET_INSTANCE_SIZE;
+
+typedef struct _OCT6100_CHIP_CLOSE_
+{
+ UINT32 ulDummyVariable;
+
+} tOCT6100_CHIP_CLOSE, *tPOCT6100_CHIP_CLOSE;
+
+typedef struct _OCT6100_CREATE_LOCAL_INSTANCE_
+{
+ tPOCT6100_INSTANCE_API pApiInstShared;
+ tPOCT6100_INSTANCE_API pApiInstLocal;
+ PVOID pProcessContext;
+ UINT32 ulUserChipId;
+
+} tOCT6100_CREATE_LOCAL_INSTANCE, *tPOCT6100_CREATE_LOCAL_INSTANCE;
+
+typedef struct _OCT6100_DESTROY_LOCAL_INSTANCE_
+{
+ UINT32 ulDummy;
+
+} tOCT6100_DESTROY_LOCAL_INSTANCE, *tPOCT6100_DESTROY_LOCAL_INSTANCE;
+
+typedef struct _OCT6100_GET_HW_REVISION_
+{
+ UINT32 ulUserChipId;
+ PVOID pProcessContext;
+ UINT32 ulRevisionNum;
+
+} tOCT6100_GET_HW_REVISION, *tPOCT6100_GET_HW_REVISION;
+
+typedef struct _OCT6100_FREE_RESOURCES_
+{
+ BOOL fFreeTsiConnections;
+ BOOL fFreeConferenceBridges;
+ BOOL fFreePlayoutBuffers;
+ BOOL fFreePhasingTssts;
+ BOOL fFreeAdpcmChannels;
+
+} tOCT6100_FREE_RESOURCES, *tPOCT6100_FREE_RESOURCES;
+
+typedef struct _OCT6100_PRODUCTION_BIST_
+{
+ UINT32 ulCurrentAddress;
+ UINT32 ulCurrentLoop;
+ UINT32 ulCurrentTest;
+ UINT32 ulBistStatus;
+ UINT32 ulFailedAddress;
+ UINT32 ulReadValue;
+ UINT32 ulExpectedValue;
+
+} tOCT6100_PRODUCTION_BIST, *tPOCT6100_PRODUCTION_BIST;
+
+typedef struct _OCT6100_API_GET_VERSION_
+{
+ UINT8 achApiVersion[ cOCT6100_API_VERSION_STRING_LENGTH ];
+
+} tOCT6100_API_GET_VERSION, *tPOCT6100_API_GET_VERSION;
+
+
+/************************** FUNCTION PROTOTYPES *****************************/
+
+UINT32 Oct6100ChipOpenDef(
+ OUT tPOCT6100_CHIP_OPEN f_pChipOpen );
+UINT32 Oct6100ChipOpen(
+ IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
+ IN OUT tPOCT6100_CHIP_OPEN f_pChipOpen );
+
+UINT32 Oct6100ChipCloseDef(
+ OUT tPOCT6100_CHIP_CLOSE f_pChipClose );
+UINT32 Oct6100ChipClose(
+ IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
+ IN OUT tPOCT6100_CHIP_CLOSE f_pChipClose );
+
+UINT32 Oct6100GetInstanceSizeDef(
+ OUT tPOCT6100_GET_INSTANCE_SIZE f_pInstanceSize );
+UINT32 Oct6100GetInstanceSize(
+ IN OUT tPOCT6100_CHIP_OPEN f_pChipOpen,
+ IN OUT tPOCT6100_GET_INSTANCE_SIZE f_pInstanceSize );
+
+UINT32 Oct6100CreateLocalInstanceDef(
+ OUT tPOCT6100_CREATE_LOCAL_INSTANCE f_pCreateLocal );
+UINT32 Oct6100CreateLocalInstance(
+ IN OUT tPOCT6100_CREATE_LOCAL_INSTANCE f_pCreateLocal );
+
+UINT32 Oct6100DestroyLocalInstanceDef(
+ OUT tPOCT6100_DESTROY_LOCAL_INSTANCE f_pDestroyLocal );
+UINT32 Oct6100DestroyLocalInstance(
+ IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
+ IN OUT tPOCT6100_DESTROY_LOCAL_INSTANCE f_pDestroyLocal );
+
+UINT32 Oct6100ApiGetVersionDef(
+ OUT tPOCT6100_API_GET_VERSION f_pApiGetVersion );
+UINT32 Oct6100ApiGetVersion(
+ IN OUT tPOCT6100_API_GET_VERSION f_pApiGetVersion );
+
+UINT32 Oct6100GetHwRevisionDef(
+ OUT tPOCT6100_GET_HW_REVISION f_pRevision );
+UINT32 Oct6100GetHwRevision(
+ IN OUT tPOCT6100_GET_HW_REVISION f_pRevision );
+
+UINT32 Oct6100FreeResourcesDef(
+ OUT tPOCT6100_FREE_RESOURCES f_pFreeResources );
+UINT32 Oct6100FreeResources(
+ IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
+ IN OUT tPOCT6100_FREE_RESOURCES f_pFreeResources );
+
+UINT32 Oct6100ProductionBistDef(
+ OUT tPOCT6100_PRODUCTION_BIST f_pProductionBist );
+UINT32 Oct6100ProductionBist(
+ IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
+ IN OUT tPOCT6100_PRODUCTION_BIST f_pProductionBist );
+
+#endif /* __OCT6100_CHIP_OPEN_PUB_H__ */
diff --git a/software/include/oct6100api/oct6100_chip_stats_inst.h b/software/include/oct6100api/oct6100_chip_stats_inst.h
new file mode 100644
index 0000000..1c4156b
--- /dev/null
+++ b/software/include/oct6100api/oct6100_chip_stats_inst.h
@@ -0,0 +1,84 @@
+/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
+
+File: oct6100_chip_stats_inst.h
+
+ Copyright (c) 2001-2005 Octasic Inc.
+
+Description:
+
+ File containing all defines, macros, and structures pertaining to the file
+ oct6100_chip_stats.c. All elements defined in this file are for public
+ usage of the API. All private elements are defined in the
+ oct6100_chip_stats_priv.h file.
+
+This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API is
+free software; you can redistribute it and/or modify it under the terms of
+the GNU General Public License as published by the Free Software Foundation;
+either version 2 of the License, or (at your option) any later version.
+
+The OCT6100 GPL API is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with the OCT6100 GPL API; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+$Octasic_Release: OCT612xAPI-01.00-PR38 $
+
+$Octasic_Revision: 21 $
+
+\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
+
+#ifndef __OCT6100_CHIP_STATS_INST_H__
+#define __OCT6100_CHIP_STATS_INST_H__
+
+/***************************** INCLUDE FILES *******************************/
+
+
+/***************************** DEFINES *************************************/
+
+
+/***************************** TYPES ***************************************/
+
+typedef struct _OCT6100_API_CHIP_ERROR_STATS_
+{
+ UINT8 fFatalChipError;
+
+ UINT32 ulInternalReadTimeoutCnt;
+ UINT32 ulSdramRefreshTooLateCnt;
+ UINT32 ulPllJitterErrorCnt;
+
+ /* Internal tone detector error counter. */
+ UINT32 ulToneDetectorErrorCnt;
+
+ UINT32 ulOverflowToneEventsCnt;
+
+ UINT32 ulH100OutOfSyncCnt;
+ UINT32 ulH100ClkABadCnt;
+ UINT32 ulH100ClkBBadCnt;
+ UINT32 ulH100FrameABadCnt;
+
+
+
+} tOCT6100_API_CHIP_ERROR_STATS, *tPOCT6100_API_CHIP_ERROR_STATS;
+
+typedef struct _OCT6100_API_CHIP_STATS_
+{
+ UINT16 usNumberChannels;
+ UINT16 usNumberBiDirChannels;
+ UINT16 usNumberTsiCncts;
+ UINT16 usNumberConfBridges;
+ UINT16 usNumberPlayoutBuffers;
+ UINT16 usNumEcChanUsingMixer;
+
+ UINT32 ulPlayoutMemUsed;
+ UINT16 usNumberActiveBufPlayoutPorts;
+
+ UINT16 usNumberPhasingTssts;
+ UINT16 usNumberAdpcmChans;
+
+} tOCT6100_API_CHIP_STATS, *tPOCT6100_API_CHIP_STATS;
+
+#endif /* __OCT6100_CHIP_STATS_INST_H__ */
diff --git a/software/include/oct6100api/oct6100_chip_stats_pub.h b/software/include/oct6100api/oct6100_chip_stats_pub.h
new file mode 100644
index 0000000..57add0e
--- /dev/null
+++ b/software/include/oct6100api/oct6100_chip_stats_pub.h
@@ -0,0 +1,149 @@
+/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
+
+File: oct6100_chip_stats_pub.h
+
+ Copyright (c) 2001-2005 Octasic Inc.
+
+Description:
+
+ File containing all defines, macros, and structures pertaining to the file
+ oct6100_chip_stats.c. All elements defined in this file are for public
+ usage of the API. All private elements are defined in the
+ oct6100_chip_stats_priv.h file.
+
+This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API is
+free software; you can redistribute it and/or modify it under the terms of
+the GNU General Public License as published by the Free Software Foundation;
+either version 2 of the License, or (at your option) any later version.
+
+The OCT6100 GPL API is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with the OCT6100 GPL API; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+$Octasic_Release: OCT612xAPI-01.00-PR38 $
+
+$Octasic_Revision: 55 $
+
+\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
+
+#ifndef __OCT6100_CHIP_STATS_PUB_H__
+#define __OCT6100_CHIP_STATS_PUB_H__
+
+/***************************** INCLUDE FILES *******************************/
+
+
+/***************************** DEFINES *************************************/
+
+
+/***************************** TYPES ***************************************/
+
+typedef struct _OCT6100_CHIP_STATS_
+{
+ BOOL fResetChipStats;
+
+ UINT32 ulNumberChannels;
+ UINT32 ulNumberTsiCncts;
+ UINT32 ulNumberConfBridges;
+ UINT32 ulNumberPlayoutBuffers;
+ UINT32 ulPlayoutFreeMemSize;
+ UINT32 ulNumberPhasingTssts;
+ UINT32 ulNumberAdpcmChannels;
+
+ UINT32 ulH100OutOfSynchCount;
+ UINT32 ulH100ClockABadCount;
+ UINT32 ulH100FrameABadCount;
+ UINT32 ulH100ClockBBadCount;
+
+ UINT32 ulInternalReadTimeoutCount;
+ UINT32 ulSdramRefreshTooLateCount;
+ UINT32 ulPllJitterErrorCount;
+
+ UINT32 ulOverflowToneEventsCount;
+ UINT32 ulSoftOverflowToneEventsCount;
+
+ UINT32 ulSoftOverflowBufferPlayoutEventsCount;
+
+} tOCT6100_CHIP_STATS, *tPOCT6100_CHIP_STATS;
+
+typedef struct _OCT6100_CHIP_TONE_INFO_
+{
+ UINT32 ulToneID;
+ UINT32 ulDetectionPort;
+
+ UINT8 aszToneName[ cOCT6100_TLV_MAX_TONE_NAME_SIZE ];
+
+} tOCT6100_CHIP_TONE_INFO, *tPOCT6100_CHIP_TONE_INFO;
+
+typedef struct _OCT6100_CHIP_IMAGE_INFO_
+{
+ BOOL fBufferPlayout;
+ BOOL fAdaptiveNoiseReduction;
+ BOOL fSoutNoiseBleaching;
+ BOOL fAutoLevelControl;
+ BOOL fHighLevelCompensation;
+ BOOL fSilenceSuppression;
+
+ BOOL fAdpcm;
+ BOOL fConferencing;
+ BOOL fConferencingNoiseReduction;
+ BOOL fDominantSpeaker;
+
+ BOOL fAcousticEcho;
+ BOOL fAecTailLength;
+ BOOL fToneRemoval;
+
+ BOOL fDefaultErl;
+ BOOL fNonLinearityBehaviorA;
+ BOOL fNonLinearityBehaviorB;
+ BOOL fPerChannelTailDisplacement;
+ BOOL fPerChannelTailLength;
+ BOOL fListenerEnhancement;
+ BOOL fRoutNoiseReduction;
+ BOOL fAnrSnrEnhancement;
+ BOOL fAnrVoiceNoiseSegregation;
+ BOOL fToneDisablerVqeActivationDelay;
+ BOOL fMusicProtection;
+ BOOL fDoubleTalkBehavior;
+ BOOL fIdleCodeDetection;
+ BOOL fSinLevel;
+
+ UINT32 ulMaxChannels;
+ UINT32 ulNumTonesAvailable;
+ UINT32 ulToneProfileNumber;
+ UINT32 ulMaxTailDisplacement;
+ UINT32 ulMaxTailLength;
+ UINT32 ulDebugEventSize;
+ UINT32 ulMaxPlayoutEvents;
+
+ UINT32 ulImageType;
+
+ UINT8 szVersionNumber[ cOCT6100_VERSION_NUMBER_MAX_SIZE ];
+ UINT32 ulBuildId;
+
+ tOCT6100_CHIP_TONE_INFO aToneInfo[ cOCT6100_MAX_TONE_EVENT ];
+
+} tOCT6100_CHIP_IMAGE_INFO, *tPOCT6100_CHIP_IMAGE_INFO;
+
+
+/************************** FUNCTION PROTOTYPES *****************************/
+
+UINT32 Oct6100ChipGetStatsDef(
+ OUT tPOCT6100_CHIP_STATS f_pChipStats );
+
+UINT32 Oct6100ChipGetStats(
+ IN OUT tPOCT6100_INSTANCE_API f_pApiInst,
+ IN OUT tPOCT6100_CHIP_STATS f_pChipStats );
+
+UINT32 Oct6100ChipGetImageInfoDef(
+ OUT tPOCT6100_CHIP_IMAGE_INFO f_pChipImageInfo );
+
+UINT32 Oct6100ChipGetImageInfo(
+ IN OUT tPOCT6100_INSTANCE_API f_pApiInst,
+ OUT tPOCT6100_CHIP_IMAGE_INFO f_pChipImageInfo );
+
+#endif /* __OCT6100_CHIP_STATS_PUB_H__ */
diff --git a/software/include/oct6100api/oct6100_conf_bridge_inst.h b/software/include/oct6100api/oct6100_conf_bridge_inst.h
new file mode 100644
index 0000000..ebe2da3
--- /dev/null
+++ b/software/include/oct6100api/oct6100_conf_bridge_inst.h
@@ -0,0 +1,104 @@
+/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
+
+File: oct6100_conf_bridge_inst.h
+
+ Copyright (c) 2001-2005 Octasic Inc.
+
+Description:
+
+ File containing all defines, macros, and structures pertaining to the file
+ oct6100_conf_bridge.c. All elements defined in this file are for public
+ usage of the API. All private elements are defined in the
+ oct6100_conf_bridge_priv.h file.
+
+This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API is
+free software; you can redistribute it and/or modify it under the terms of
+the GNU General Public License as published by the Free Software Foundation;
+either version 2 of the License, or (at your option) any later version.
+
+The OCT6100 GPL API is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with the OCT6100 GPL API; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+$Octasic_Release: OCT612xAPI-01.00-PR38 $
+
+$Octasic_Revision: 19 $
+
+\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
+
+#ifndef __OCT6100_CONF_BRIDGE_INST_H__
+#define __OCT6100_CONF_BRIDGE_INST_H__
+
+/***************************** INCLUDE FILES *******************************/
+
+
+/***************************** DEFINES *************************************/
+
+
+/***************************** TYPES ***************************************/
+
+typedef struct _OCT6100_API_CONF_BRIDGE_
+{
+ /* Flag specifying whether the entry is used or not. */
+ UINT8 fReserved;
+
+ /* Entry counter for the resources. */
+ UINT8 byEntryOpenCnt;
+
+ /* Next bridge pointer. */
+ UINT16 usNextBridgePtr;
+
+ /* Previous bridge pointer. */
+ UINT16 usPrevBridgePtr;
+
+ /* Number of clients connected to the bridge. */
+ UINT16 usNumClients;
+
+ /* Store the index of the load event, to diffentiate him form the accumulate. */
+ UINT16 usLoadIndex;
+
+ /* Pointer to the first bridge events.*/
+ UINT16 usFirstLoadEventPtr;
+ UINT16 usFirstSubStoreEventPtr;
+ UINT16 usLastSubStoreEventPtr;
+
+ /* Pointer to the silence load event, if it exists. */
+ UINT16 usSilenceLoadEventPtr;
+
+ /* Flag specifying whether the dominant speaker is set or not. */
+ UINT16 usDominantSpeakerChanIndex;
+ UINT8 fDominantSpeakerSet;
+
+ /* Flag specifying if this is flexible conferencing bridge. */
+ UINT8 fFlexibleConferencing;
+
+ /* Number of clients being tapped. */
+ UINT16 usNumTappedClients;
+
+} tOCT6100_API_CONF_BRIDGE, *tPOCT6100_API_CONF_BRIDGE;
+
+typedef struct _OCT6100_API_FLEX_CONF_PARTICIPANT_
+{
+ /* Input port of the conferencing for this participant. */
+ UINT32 ulInputPort;
+
+ /* Whether the flexible mixer has been created. */
+ UINT8 fFlexibleMixerCreated;
+
+ /* Listener mask ( who can hear us ). */
+ UINT32 ulListenerMask;
+
+ /* Our index in the listener mask. */
+ UINT32 ulListenerMaskIndex;
+
+ /* Mixer event indexes for this participant's mixer. */
+ UINT16 ausLoadOrAccumulateEventIndex[ cOCT6100_MAX_FLEX_CONF_PARTICIPANTS_PER_BRIDGE ];
+
+} tOCT6100_API_FLEX_CONF_PARTICIPANT, *tPOCT6100_API_FLEX_CONF_PARTICIPANT;
+
+#endif /* __OCT6100_CONF_BRIDGE_INST_H__ */
diff --git a/software/include/oct6100api/oct6100_conf_bridge_pub.h b/software/include/oct6100api/oct6100_conf_bridge_pub.h
new file mode 100644
index 0000000..a751cd3
--- /dev/null
+++ b/software/include/oct6100api/oct6100_conf_bridge_pub.h
@@ -0,0 +1,169 @@
+/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
+
+File: oct6100_conf_bridge_pub.h
+
+ Copyright (c) 2001-2005 Octasic Inc.
+
+Description:
+
+ File containing all defines, macros, and structures pertaining to the file
+ oct6100_conf_bridge.c. All elements defined in this file are for public
+ usage of the API. All private elements are defined in the
+ oct6100_conf_bridge_priv.h file.
+
+This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API is
+free software; you can redistribute it and/or modify it under the terms of
+the GNU General Public License as published by the Free Software Foundation;
+either version 2 of the License, or (at your option) any later version.
+
+The OCT6100 GPL API is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with the OCT6100 GPL API; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+$Octasic_Release: OCT612xAPI-01.00-PR38 $
+
+$Octasic_Revision: 22 $
+
+\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
+
+#ifndef __OCT6100_CONF_BRIDGE_PUB_H__
+#define __OCT6100_CONF_BRIDGE_PUB_H__
+
+/***************************** INCLUDE FILES *******************************/
+
+
+/***************************** DEFINES *************************************/
+
+
+/***************************** TYPES ***************************************/
+
+typedef struct _OCT6100_CONF_BRIDGE_OPEN_
+{
+ PUINT32 pulConfBridgeHndl; /* Handle returned when the bridge is opened. */
+ BOOL fFlexibleConferencing;
+
+} tOCT6100_CONF_BRIDGE_OPEN, *tPOCT6100_CONF_BRIDGE_OPEN;
+
+typedef struct _OCT6100_CONF_BRIDGE_CLOSE_
+{
+ UINT32 ulConfBridgeHndl;
+
+} tOCT6100_CONF_BRIDGE_CLOSE, *tPOCT6100_CONF_BRIDGE_CLOSE;
+
+typedef struct _OCT6100_CONF_BRIDGE_CHAN_ADD_
+{
+ UINT32 ulConfBridgeHndl;
+ UINT32 ulChannelHndl;
+ UINT32 ulInputPort;
+ UINT32 ulListenerMaskIndex;
+ UINT32 ulListenerMask;
+ BOOL fMute;
+ UINT32 ulTappedChannelHndl;
+
+} tOCT6100_CONF_BRIDGE_CHAN_ADD, *tPOCT6100_CONF_BRIDGE_CHAN_ADD;
+
+typedef struct _OCT6100_CONF_BRIDGE_CHAN_REMOVE_
+{
+ UINT32 ulConfBridgeHndl;
+ UINT32 ulChannelHndl;
+ BOOL fRemoveAll;
+
+} tOCT6100_CONF_BRIDGE_CHAN_REMOVE, *tPOCT6100_CONF_BRIDGE_CHAN_REMOVE;
+
+typedef struct _OCT6100_CONF_BRIDGE_CHAN_MUTE_
+{
+ UINT32 ulChannelHndl;
+
+} tOCT6100_CONF_BRIDGE_CHAN_MUTE, *tPOCT6100_CONF_BRIDGE_CHAN_MUTE;
+
+typedef struct _OCT6100_CONF_BRIDGE_CHAN_UNMUTE_
+{
+ UINT32 ulChannelHndl;
+
+} tOCT6100_CONF_BRIDGE_CHAN_UNMUTE, *tPOCT6100_CONF_BRIDGE_CHAN_UNMUTE;
+
+typedef struct _OCT6100_CONF_BRIDGE_DOMINANT_SPEAKER_SET_
+{
+ UINT32 ulConfBridgeHndl;
+ UINT32 ulChannelHndl;
+
+} tOCT6100_CONF_BRIDGE_DOMINANT_SPEAKER_SET, *tPOCT6100_CONF_BRIDGE_DOMINANT_SPEAKER_SET;
+
+typedef struct _OCT6100_CONF_BRIDGE_MASK_CHANGE_
+{
+ UINT32 ulChannelHndl;
+ UINT32 ulNewListenerMask;
+
+} tOCT6100_CONF_BRIDGE_MASK_CHANGE, *tPOCT6100_CONF_BRIDGE_MASK_CHANGE;
+
+typedef struct _OCT6100_CONF_BRIDGE_STATS_
+{
+ UINT32 ulConfBridgeHndl;
+ UINT32 ulNumChannels;
+ UINT32 ulNumTappedChannels;
+ BOOL fFlexibleConferencing;
+
+} tOCT6100_CONF_BRIDGE_STATS, *tPOCT6100_CONF_BRIDGE_STATS;
+
+/************************** FUNCTION PROTOTYPES *****************************/
+
+UINT32 Oct6100ConfBridgeOpenDef(
+ OUT tPOCT6100_CONF_BRIDGE_OPEN f_pConfBridgeOpen );
+UINT32 Oct6100ConfBridgeOpen(
+ IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
+ IN OUT tPOCT6100_CONF_BRIDGE_OPEN f_pConfBridgeOpen );
+
+UINT32 Oct6100ConfBridgeCloseDef(
+ OUT tPOCT6100_CONF_BRIDGE_CLOSE f_pConfBridgeClose );
+UINT32 Oct6100ConfBridgeClose(
+ IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
+ IN OUT tPOCT6100_CONF_BRIDGE_CLOSE f_pConfBridgeClose );
+
+UINT32 Oct6100ConfBridgeChanAddDef(
+ OUT tPOCT6100_CONF_BRIDGE_CHAN_ADD f_pConfBridgeAdd );
+UINT32 Oct6100ConfBridgeChanAdd(
+ IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
+ IN OUT tPOCT6100_CONF_BRIDGE_CHAN_ADD f_pConfBridgeAdd );
+
+UINT32 Oct6100ConfBridgeChanRemoveDef(
+ OUT tPOCT6100_CONF_BRIDGE_CHAN_REMOVE f_pConfBridgeRemove );
+UINT32 Oct6100ConfBridgeChanRemove(
+ IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
+ IN OUT tPOCT6100_CONF_BRIDGE_CHAN_REMOVE f_pConfBridgeRemove );
+
+UINT32 Oct6100ConfBridgeChanMuteDef(
+ OUT tPOCT6100_CONF_BRIDGE_CHAN_MUTE f_pConfBridgeMute );
+UINT32 Oct6100ConfBridgeChanMute(
+ IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
+ IN OUT tPOCT6100_CONF_BRIDGE_CHAN_MUTE f_pConfBridgeMute );
+
+UINT32 Oct6100ConfBridgeChanUnMuteDef(
+ OUT tPOCT6100_CONF_BRIDGE_CHAN_UNMUTE f_pConfBridgeUnMute );
+UINT32 Oct6100ConfBridgeChanUnMute(
+ IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
+ IN OUT tPOCT6100_CONF_BRIDGE_CHAN_UNMUTE f_pConfBridgeUnMute );
+
+UINT32 Oct6100ConfBridgeDominantSpeakerSetDef(
+ OUT tPOCT6100_CONF_BRIDGE_DOMINANT_SPEAKER_SET f_pConfBridgeDominantSpeaker );
+UINT32 Oct6100ConfBridgeDominantSpeakerSet(
+ IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
+ IN OUT tPOCT6100_CONF_BRIDGE_DOMINANT_SPEAKER_SET f_pConfBridgeDominantSpeaker );
+
+UINT32 Oct6100ConfBridgeMaskChangeDef(
+ OUT tPOCT6100_CONF_BRIDGE_MASK_CHANGE f_pConfBridgeMaskChange );
+UINT32 Oct6100ConfBridgeMaskChange(
+ IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
+ IN OUT tPOCT6100_CONF_BRIDGE_MASK_CHANGE f_pConfBridgeMaskChange );
+
+UINT32 Oct6100ConfBridgeGetStatsDef(
+ OUT tPOCT6100_CONF_BRIDGE_STATS f_pConfBridgeStats );
+UINT32 Oct6100ConfBridgeGetStats(
+ IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
+ IN OUT tPOCT6100_CONF_BRIDGE_STATS f_pConfBridgeStats );
+
+#endif /* __OCT6100_CONF_BRIDGE_PUB_H__ */
diff --git a/software/include/oct6100api/oct6100_debug_inst.h b/software/include/oct6100api/oct6100_debug_inst.h
new file mode 100644
index 0000000..7635411
--- /dev/null
+++ b/software/include/oct6100api/oct6100_debug_inst.h
@@ -0,0 +1,121 @@
+/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
+
+File: oct6100_debug_inst.h
+
+ Copyright (c) 2001-2005 Octasic Inc.
+
+Description:
+
+ File containing all defines, macros, and structures pertaining to the file
+ oct6100_debug.c. All elements defined in this file are for public
+ usage of the API. All private elements are defined in the
+ oct6100_debug_priv.h file.
+
+This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API is
+free software; you can redistribute it and/or modify it under the terms of
+the GNU General Public License as published by the Free Software Foundation;
+either version 2 of the License, or (at your option) any later version.
+
+The OCT6100 GPL API is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with the OCT6100 GPL API; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+$Octasic_Release: OCT612xAPI-01.00-PR38 $
+
+$Octasic_Revision: 9 $
+
+\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
+
+#ifndef __OCT6100_DEBUG_INST_H__
+#define __OCT6100_DEBUG_INST_H__
+
+/***************************** INCLUDE FILES *******************************/
+
+
+/***************************** DEFINES *************************************/
+
+
+/***************************** TYPES ***************************************/
+
+typedef struct _OCT6100_API_DEBUG_
+{
+ /* Information from the TLVs. */
+ UINT32 ulDebugEventSize;
+ UINT32 ulMatrixBaseAddress;
+ UINT32 ulDebugChanStatsByteSize;
+ UINT32 ulDebugChanLiteStatsByteSize;
+ UINT32 ulHotChannelSelectBaseAddress;
+ UINT32 ulMatrixTimestampBaseAddress;
+ UINT32 ulAfWritePtrByteOffset;
+ UINT32 ulRecordedPcmEventByteSize;
+ UINT32 ulMatrixWpBaseAddress;
+
+ /* Pouch counter presence in the image. */
+ UINT8 fPouchCounter;
+
+ /* Record channel indexes. */
+ UINT16 usRecordMemIndex;
+ UINT16 usRecordChanIndex;
+
+ UINT16 usRecordRinRoutTsiMemIndex;
+ UINT16 usRecordSinSoutTsiMemIndex;
+
+ /* Debug channel information.*/
+ UINT16 usCurrentDebugChanIndex;
+
+ /* Matrix event mask. */
+ UINT16 usMatrixCBMask;
+
+ /* If data is being dumped now. */
+ UINT8 fDebugDataBeingDumped;
+
+ /* Index of the last event retrieved. */
+ UINT16 usLastDebugEventIndex;
+
+ /* Number of events to retrieve. */
+ UINT16 usNumEvents;
+
+ /* Chip debug event write ptr. */
+ UINT16 usChipDebugEventWritePtr;
+
+ /* Hot channel read data. */
+ UINT16 ausHotChannelData[ 2 ];
+
+ /* Last PCM sample index. */
+ UINT32 ulLastPcmSampleIndex;
+
+ /* Last AF log read pointer. */
+ UINT16 usLastAfLogReadPtr;
+
+ /* AF log hardware write pointer. */
+ UINT16 usAfLogWritePtr;
+
+ /* Last tone event index retrieved. */
+ UINT16 usLastToneEventIndex;
+
+ /* Whether the image version string has been copied in the user buffer. */
+ BOOL fImageVersionCopied;
+
+ /* Whether the api version string has been copied in the user buffer. */
+ BOOL fApiVersionCopied;
+
+ /* Total number of bytes that will be returned for the current dump. */
+ UINT32 ulDebugDataTotalNumBytes;
+
+ /* Field to detect if the ISR is called present? */
+ BOOL fIsIsrCalledField;
+
+ /* Remaining number of bytes that will be returned for the current dump. */
+ UINT32 ulDebugDataRemainingNumBytes;
+
+ /* AF events control block size. */
+ UINT32 ulAfEventCbByteSize;
+
+} tOCT6100_API_DEBUG, *tPOCT6100_API_DEBUG;
+
+#endif /* __OCT6100_DEBUG_INST_H__ */
diff --git a/software/include/oct6100api/oct6100_debug_pub.h b/software/include/oct6100api/oct6100_debug_pub.h
new file mode 100644
index 0000000..fe61a5f
--- /dev/null
+++ b/software/include/oct6100api/oct6100_debug_pub.h
@@ -0,0 +1,75 @@
+/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
+
+File: oct6100_debug_pub.h
+
+ Copyright (c) 2001-2005 Octasic Inc.
+
+Description:
+
+ File containing all defines, macros, and structures pertaining to the file
+ oct6100_debug.c. All elements defined in this file are for public
+ usage of the API.
+
+This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API is
+free software; you can redistribute it and/or modify it under the terms of
+the GNU General Public License as published by the Free Software Foundation;
+either version 2 of the License, or (at your option) any later version.
+
+The OCT6100 GPL API is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with the OCT6100 GPL API; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+$Octasic_Release: OCT612xAPI-01.00-PR38 $
+
+$Octasic_Revision: 13 $
+
+\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
+
+#ifndef __OCT6100_DEBUG_PUB_H__
+#define __OCT6100_DEBUG_PUB_H__
+
+/***************************** INCLUDE FILES *******************************/
+
+
+/***************************** DEFINES *************************************/
+
+
+/***************************** TYPES ***************************************/
+
+typedef struct _OCT6100_DEBUG_SELECT_CHANNEL_
+{
+ UINT32 ulChannelHndl;
+
+} tOCT6100_DEBUG_SELECT_CHANNEL, *tPOCT6100_DEBUG_SELECT_CHANNEL;
+
+typedef struct _OCT6100_DEBUG_GET_DATA_
+{
+ UINT32 ulGetDataMode;
+ UINT32 ulRemainingNumBytes;
+ UINT32 ulTotalNumBytes;
+ UINT32 ulMaxBytes;
+ UINT32 ulValidNumBytes;
+ PUINT8 pbyData;
+
+} tOCT6100_DEBUG_GET_DATA, *tPOCT6100_DEBUG_GET_DATA;
+
+/************************** FUNCTION PROTOTYPES *****************************/
+
+UINT32 Oct6100DebugSelectChannelDef(
+ OUT tPOCT6100_DEBUG_SELECT_CHANNEL f_pSelectDebugChan );
+UINT32 Oct6100DebugSelectChannel(
+ IN OUT tPOCT6100_INSTANCE_API f_pApiInst,
+ IN OUT tPOCT6100_DEBUG_SELECT_CHANNEL f_pSelectDebugChan );
+
+UINT32 Oct6100DebugGetDataDef(
+ OUT tPOCT6100_DEBUG_GET_DATA f_pGetData );
+UINT32 Oct6100DebugGetData(
+ IN OUT tPOCT6100_INSTANCE_API f_pApiInst,
+ IN OUT tPOCT6100_DEBUG_GET_DATA f_pGetData );
+
+#endif /* __OCT6100_DEBUG_PUB_H__ */
diff --git a/software/include/oct6100api/oct6100_defines.h b/software/include/oct6100api/oct6100_defines.h
new file mode 100644
index 0000000..67e8d2e
--- /dev/null
+++ b/software/include/oct6100api/oct6100_defines.h
@@ -0,0 +1,642 @@
+/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
+
+File: oct6100_defines.h
+
+ Copyright (c) 2001-2005 Octasic Inc.
+
+Description:
+
+ Header file containing all defines used throughout the API.
+
+This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API is
+free software; you can redistribute it and/or modify it under the terms of
+the GNU General Public License as published by the Free Software Foundation;
+either version 2 of the License, or (at your option) any later version.
+
+The OCT6100 GPL API is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with the OCT6100 GPL API; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.7
+
+$Octasic_Release: OCT612xAPI-01.00-PR38 $
+
+$Octasic_Revision: 164 $
+
+\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
+
+#ifndef __OCT6100_DEFINES_H__
+#define __OCT6100_DEFINES_H__
+
+/***************************** INCLUDE FILES *******************************/
+
+#include "octdef.h"
+
+/***************************** DEFINES *************************************/
+
+/* 32-bits values. */
+#define cOCT6100_FFFFFFFF 0xFFFFFFFF
+#define cOCT6100_FFFFFFFE 0xFFFFFFFE
+#define cOCT6100_7FFFFFFF 0x7FFFFFFF
+
+/* 16-bits values. */
+#define cOCT6100_FFFD 0xFFFD
+#define cOCT6100_FFFE 0xFFFE
+#define cOCT6100_FFFF 0xFFFF
+#define cOCT6100_7FFF 0x7FFF
+
+/* 8-bits values. */
+#define cOCT6100_FF 0xFF
+
+#define cOCT6100_CURRENT_VALUE cOCT6100_FFFFFFFF
+#define cOCT6100_INVALID_CHIP_ID cOCT6100_FFFFFFFF
+#define cOCT6100_INVALID_HANDLE cOCT6100_FFFFFFFF
+#define cOCT6100_INVALID_TIMESLOT cOCT6100_FFFFFFFF
+#define cOCT6100_INVALID_STREAM cOCT6100_FFFFFFFF
+#define cOCT6100_INVALID_VALUE cOCT6100_FFFFFFFF
+#define cOCT6100_INVALID_STAT cOCT6100_FFFFFFFF
+#define cOCT6100_INVALID_STAT_W cOCT6100_FFFF
+#define cOCT6100_INVALID_PCM_LAW cOCT6100_FF
+#define cOCT6100_INVALID_EVENT cOCT6100_FFFF
+#define cOCT6100_INVALID_INDEX cOCT6100_FFFF
+#define cOCT6100_INVALID_TONE cOCT6100_FFFFFFFF
+#define cOCT6100_INVALID_PORT cOCT6100_FF
+
+#define cOCT6100_AUTO_SELECT cOCT6100_FFFFFFFE
+#define cOCT6100_AUTO_SELECT_TAIL cOCT6100_FFFE
+
+#define cOCT6100_INVALID_BOOL 2
+
+#define cOCT6100_KEEP_PREVIOUS_SETTING 0x70100000
+
+#define cOCT6100_INVALID_SIGNED_STAT cOCT6100_7FFFFFFF
+#define cOCT6100_INVALID_SIGNED_STAT_W cOCT6100_7FFF
+#define cOCT6100_INVALID_ECHO_DELAY 0x400
+
+
+
+#define cOCT6100_SIZE_128 128
+#define cOCT6100_SIZE_256 256
+#define cOCT6100_SIZE_512 512
+#define cOCT6100_SIZE_1K 1024
+#define cOCT6100_SIZE_2K 2048
+#define cOCT6100_SIZE_4K 4096
+#define cOCT6100_SIZE_8K 8192
+#define cOCT6100_SIZE_16K 16384
+#define cOCT6100_SIZE_32K 32768
+#define cOCT6100_SIZE_64K 65536
+#define cOCT6100_SIZE_128K 131072
+#define cOCT6100_SIZE_256K 262144
+#define cOCT6100_SIZE_512K 524288
+#define cOCT6100_SIZE_1M 1048576
+#define cOCT6100_SIZE_2M 2097152
+#define cOCT6100_SIZE_4M 4194304
+#define cOCT6100_SIZE_8M 8388608
+#define cOCT6100_SIZE_16M 16777216
+#define cOCT6100_SIZE_32M 33554432
+#define cOCT6100_SIZE_64M 67108864
+#define cOCT6100_SIZE_128M 134217728
+#define cOCT6100_SIZE_256M 268435456
+#define cOCT6100_SIZE_512M 536870912
+#define cOCT6100_SIZE_1G 1073741824
+#define cOCT6100_SIZE_2G 2147483648
+
+#define cOCT6100_HNDL_TAG_MASK 0xFF000000
+#define cOCT6100_HNDL_INDEX_MASK 0x0000FFFF
+#define cOCT6100_ENTRY_OPEN_CNT_MASK 0x000000FF
+#define cOCT6100_ENTRY_OPEN_CNT_SHIFT 16
+
+#define cOCT6100_HNDL_TAG_INVALID 0xFF000000
+
+#define cOCT6100_HNDL_TAG_CHANNEL 0x01000000
+#define cOCT6100_HNDL_TAG_TSI_CNCT 0x02000000
+#define cOCT6100_HNDL_TAG_CONF_BRIDGE 0x03000000
+#define cOCT6100_HNDL_TAG_PHASING_TSST 0x04000000
+#define cOCT6100_HNDL_TAG_BIDIR_CHANNEL 0x05000000
+#define cOCT6100_HNDL_TAG_COPY_EVENT 0x06000000
+#define cOCT6100_HNDL_TAG_ADPCM_CHANNEL 0x07000000
+
+#define cOCT6100_INVALID_HANDLE_TYPE cOCT6100_INVALID_VALUE
+
+#define cOCT6100_MEMORY_ROUND_SIZE 16
+
+#define mOCT6100_ROUND_MEMORY_SIZE( ulMemorySize, ulTempVar ) \
+ if ((ulTempVar = ulMemorySize % cOCT6100_MEMORY_ROUND_SIZE) != 0) \
+ ulMemorySize += cOCT6100_MEMORY_ROUND_SIZE - ulTempVar;
+
+#define mOCT6100_ROUND_ADDRESS( ulAddress, ulBoundary, ulTempVar ) \
+ if ((ulTempVar = ulAddress % ulBoundary) != 0) \
+ ulAddress += ulBoundary - ulTempVar;
+
+#define cOCT6100_INTERNAL_CLOCK_SOURCE 0
+#define cOCT6100_EXTERNAL_CLOCK_SOURCE 1
+
+#define cOCT6100_ACTIVE_HIGH_POLARITY 0
+#define cOCT6100_ACTIVE_LOW_POLARITY 1
+
+#define cOCT6100_TDM_SAMPLE_AT_3_QUARTERS 0
+#define cOCT6100_TDM_SAMPLE_AT_RISING_EDGE 1
+#define cOCT6100_TDM_SAMPLE_AT_FALLING_EDGE 2
+
+#define cOCT6100_TDM_STREAM_FREQ_2MHZ 0
+#define cOCT6100_TDM_STREAM_FREQ_4MHZ 1
+#define cOCT6100_TDM_STREAM_FREQ_8MHZ 2
+#define cOCT6100_TDM_STREAM_FREQ_16MHZ 3
+
+#define cOCT6100_TDM_STREAM_MAX_GROUPS 8
+
+#define cOCT6100_PCM_U_LAW 0
+#define cOCT6100_PCM_A_LAW 1
+#define cOCT6100_PCM_UNCHANGED 2
+#define cOCT6100_ADPCM_ENCODED 3
+
+#define cOCT6100_INTERRUPT_DISABLE 0
+#define cOCT6100_INTERRUPT_NO_TIMEOUT 1
+#define cOCT6100_INTERRUPT_TIMEOUT 2
+
+#define cOCT6100_NUMBER_TSSTS_1 1
+#define cOCT6100_NUMBER_TSSTS_2 2
+
+#define cOCT6100_G711_64KBPS 1
+#define cOCT6100_G726_40KBPS 2
+#define cOCT6100_G726_32KBPS 3
+#define cOCT6100_G726_24KBPS 4
+#define cOCT6100_G726_16KBPS 5
+#define cOCT6100_G727_40KBPS_4_1 6
+#define cOCT6100_G727_40KBPS_3_2 7
+#define cOCT6100_G727_40KBPS_2_3 8
+#define cOCT6100_G727_32KBPS_4_0 9
+#define cOCT6100_G727_32KBPS_3_1 10
+#define cOCT6100_G727_32KBPS_2_2 11
+#define cOCT6100_G727_24KBPS_3_0 12
+#define cOCT6100_G727_24KBPS_2_1 13
+#define cOCT6100_G727_16KBPS_2_0 14
+#define cOCT6100_G726_ENCODED 15
+#define cOCT6100_G711_G726_ENCODED 16
+#define cOCT6100_G711_G727_2C_ENCODED 17
+#define cOCT6100_G711_G727_3C_ENCODED 18
+#define cOCT6100_G711_G727_4C_ENCODED 19
+#define cOCT6100_G727_2C_ENCODED 20
+#define cOCT6100_G727_3C_ENCODED 21
+#define cOCT6100_G727_4C_ENCODED 22
+
+#define cOCT6100_ADPCM_IN_HIGH_BITS 0
+#define cOCT6100_ADPCM_IN_LOW_BITS 1
+
+/* The values of these defines must not change. */
+#define cOCT6100_H100_TRACKA 0
+#define cOCT6100_H100_TRACKB 1
+#define cOCT6100_H100_TRACKA_FALLBACKB 2
+#define cOCT6100_H100_TRACKB_FALLBACKA 3
+#define cOCT6100_H100_DISABLED 4
+#define cOCT6100_H100_MASTERA 5
+#define cOCT6100_H100_BACKUPA 6
+#define cOCT6100_H100_MASTERB 7
+#define cOCT6100_H100_BACKUPB 8
+
+#define cOCT6100_FREE_TSST 0
+#define cOCT6100_RX_TSST 16
+#define cOCT6100_TX_TSST 32
+
+#define cOCT6100_INTRPT_ACTIVE 0
+#define cOCT6100_INTRPT_WILL_TIMEOUT 1
+#define cOCT6100_INTRPT_IN_TIMEOUT 2
+#define cOCT6100_INTRPT_DISABLED 3
+
+#define cOCT6100_EXTERNAL_MEM_BIST_TIMEOUT 1000000
+
+/* Clocks defines */
+#define cOCT6100_UPCLK_FREQ_33_33_MHZ 33333333
+#define cOCT6100_UPCLK_FREQ_66_67_MHZ 66666667
+
+#define cOCT6100_MCLK_FREQ_133_MHZ 133000000
+#define cOCT6100_MCLK_FREQ_125_MHZ 125000000
+#define cOCT6100_MCLK_FREQ_117_MHZ 117000000
+#define cOCT6100_MCLK_FREQ_108_MHZ 108000000
+#define cOCT6100_MCLK_FREQ_100_MHZ 100000000
+#define cOCT6100_MCLK_FREQ_92_MHZ 92000000
+#define cOCT6100_MCLK_FREQ_83_MHZ 83000000
+#define cOCT6100_MCLK_FREQ_75_MHZ 75000000
+
+/* Tone buffer defines.*/
+#define cOCT6100_MAX_NUM_TONE_BUFFERS 1344
+#define cOCT6100_MAX_TONES_PER_CALL 32
+
+/* Memory defines.*/
+#define cOCT6100_MEM_TYPE_SDR 0
+#define cOCT6100_MEM_TYPE_DDR 1
+#define cOCT6100_MEM_TYPE_SDR_PLL_BYPASS 2
+
+#define cOCT6100_MEMORY_CHIP_SIZE_8MB cOCT6100_SIZE_8M
+#define cOCT6100_MEMORY_CHIP_SIZE_16MB cOCT6100_SIZE_16M
+#define cOCT6100_MEMORY_CHIP_SIZE_32MB cOCT6100_SIZE_32M
+#define cOCT6100_MEMORY_CHIP_SIZE_64MB cOCT6100_SIZE_64M
+#define cOCT6100_MEMORY_CHIP_SIZE_128MB cOCT6100_SIZE_128M
+
+#define cOCT6100_MAX_NUM_MEMORY_CHIP 2
+
+#define cOCT6100_16MB_MEMORY_BANKS 0
+#define cOCT6100_32MB_MEMORY_BANKS 1
+#define cOCT6100_64MB_MEMORY_BANKS 2
+#define cOCT6100_128MB_MEMORY_BANKS 3
+
+#define cOCT6100_1_MEMORY_BANKS 0
+#define cOCT6100_2_MEMORY_BANKS 1
+#define cOCT6100_3_MEMORY_BANKS 2
+#define cOCT6100_4_MEMORY_BANKS 3
+
+/* Chip open defines.*/
+#define cOCT6100_INTERNAL_TONE_ARRAY_SIZE 256 /* in words.*/
+#define cOCT6100_INTERNAL_SUPER_ARRAY_SIZE 1024 /* in words.*/
+
+/* Internal memory mapping.*/
+
+/*=======================================================================*/
+#define cOCT6100_TSST_CONTROL_MEM_BASE 0x26000
+
+#define cOCT6100_TSST_CONTROL_MEM_ENTRY_SIZE 2 /* Each entries are 2 bytes.*/
+#define cOCT6100_TSST_CONTROL_MEM_INPUT_TSST 0x0800
+#define cOCT6100_TSST_CONTROL_MEM_OUTPUT_TSST 0x2000
+
+#define cOCT6100_TSST_CONTROL_MEM_PCM_LAW_OFFSET 12
+#define cOCT6100_TSST_CONTROL_MEM_NIBBLE_POS_OFFSET 11
+#define cOCT6100_TSST_CONTROL_MEM_TSST_NUM_OFFSET 12
+
+#define cOCT6100_TSST_CONTROL_MEM_TSI_MEM_MASK 0x7FF
+
+#define cOCT6100_TSST_CONTROL_PHASING_TSST_BASE_ENTRY 1344
+#define cOCT6100_TSST_CONTROL_TIMESTAMP_BASE_ENTRY 1516
+
+/*=======================================================================*/
+#define cOCT6100_CONVERSION_CONTROL_MEM_BASE 0x28000
+
+/* Each entries are 8 bytes but an 8 bytes mixer entry is located inbetween each entry.*/
+#define cOCT6100_CONVERSION_CONTROL_MEM_ENTRY_SIZE 16
+#define cOCT6100_CONVERSION_CONTROL_MEM_ENCODER 0x0000
+#define cOCT6100_CONVERSION_CONTROL_MEM_DECODER 0x8000
+#define cOCT6100_CONVERSION_CONTROL_MEM_ACTIVATE_ENTRY 0x8000
+#define cOCT6100_CONVERSION_CONTROL_MEM_RST_ON_NEXT_FR 0x8000
+
+#define cOCT6100_CONVERSION_CONTROL_MEM_PHASE_OFFSET 12
+#define cOCT6100_CONVERSION_CONTROL_MEM_NIBBLE_POS_OFFSET 9
+#define cOCT6100_CONVERSION_CONTROL_MEM_COMP_OFFSET 11
+#define cOCT6100_CONVERSION_CONTROL_MEM_LAW_OFFSET 8
+#define cOCT6100_CONVERSION_CONTROL_MEM_SIL_SUP_OFFSET 8
+
+#define cOCT6100_CONVERSION_CONTROL_PHASE_SIZE_BASE_ADD 0x5400
+
+/*=======================================================================*/
+#define cOCT6100_MIXER_CONTROL_MEM_BASE 0x28008
+
+/* Each entries are 8 bytes but an 8 bytes mixer entry is located inbetween each entry.*/
+#define cOCT6100_MIXER_CONTROL_MEM_ENTRY_SIZE 16
+#define cOCT6100_MIXER_CONTROL_MEM_SUB_STORE 0xA000
+#define cOCT6100_MIXER_CONTROL_MEM_STORE 0x8000
+#define cOCT6100_MIXER_CONTROL_MEM_LOAD 0x4000
+#define cOCT6100_MIXER_CONTROL_MEM_ACCUMULATE 0x6000
+#define cOCT6100_MIXER_CONTROL_MEM_COPY 0x2000
+#define cOCT6100_MIXER_CONTROL_MEM_NO_OP 0x0000
+
+#define cOCT6100_MIXER_CONTROL_MEM_LAW_OFFSET 11
+
+#define cOCT6100_MIXER_HEAD_NODE 0
+#define cOCT6100_MIXER_TAIL_NODE 1
+#define cOCT6100_MIXER_RECORD_COPY_NODE 2
+
+/*=======================================================================*/
+#define cOCT6100_ECHO_CONTROL_MEM_BASE 0x14000
+
+#define cOCT6100_ECHO_CONTROL_MEM_ENTRY_SIZE 4 /* Each entries are 8 bytes.*/
+#define cOCT6100_ECHO_CONTROL_MEM_ACTIVATE_ENTRY 0x8000
+#define cOCT6100_ECHO_CONTROL_MEM_EXTERNAL_AF_CTRL 0x2000
+
+#define cOCT6100_ECHO_CONTROL_MEM_DEBUG_OFFSET 14
+#define cOCT6100_ECHO_CONTROL_MEM_AF_CONTROL 14
+#define cOCT6100_ECHO_CONTROL_MEM_INPUT_LAW_OFFSET 12
+#define cOCT6100_ECHO_CONTROL_MEM_OUTPUT_LAW_OFFSET 11
+
+#define cOCT6100_ECHO_CONTROL_MEM_TSI_MEM_MASK 0x7FF
+
+/*=======================================================================*/
+#define cOCT6100_ST_CONTROL_MEM_BASE 0x2000000
+
+#define cOCT6100_ST_CONTROL_MEM_ENTRY_SIZE 16 /* Each entries are 8 bytes.*/
+
+/*=======================================================================*/
+#define cOCT6100_PART1_BASE 0x00080000
+#define cOCT6100_PART1_CPU_LSU_CB_BASE cOCT6100_PART1_BASE+0x0000E3C0 /* 8 * 8 = 64 bytes */
+#define cOCT6100_PART1_HW_LSU_CB_BASE cOCT6100_PART1_BASE+0x0000E400 /* 8 * 128 = 1K byte */
+#define cOCT6100_PART1_END_STATICS_BASE cOCT6100_PART1_BASE+0x0000E9F0 /* 912 bytes available for your viewing pleasure. */
+#define cOCT6100_PART1_API_SCRATCH_PAD cOCT6100_PART1_END_STATICS_BASE+4+(12*8)
+#define cOCT6100_PART1_EGO_REG cOCT6100_PART1_BASE+0x0007FF00
+
+/* External Memory mapping. */
+#define cOCT6100_EXTERNAL_MEM_BLOCK_SIZE 1024
+#define cOCT6100_EXTERNAL_MEM_BASE_ADDRESS 0x08000000
+
+
+#define cOCT6100_TLV_BASE ( 0x00016000 + cOCT6100_EXTERNAL_MEM_BASE_ADDRESS )
+#define cOCT6100_CHANNEL_ROOT_BASE ( 0x00020000 + cOCT6100_EXTERNAL_MEM_BASE_ADDRESS )
+#define cOCT6100_PGSP_EVENT_OUT_BASE ( 0x002C0000 + cOCT6100_EXTERNAL_MEM_BASE_ADDRESS )
+#define cOCT6100_POUCH_BASE ( 0x002E0000 + cOCT6100_EXTERNAL_MEM_BASE_ADDRESS )
+#define cOCT6100_IMAGE_FILE_BASE ( 0x00300000 + cOCT6100_EXTERNAL_MEM_BASE_ADDRESS )
+
+#define cOCT6100_CHANNEL_ROOT_SIZE 4096
+#define cOCT6100_CHANNEL_ROOT_TOTAL_SIZE ( 672 * cOCT6100_CHANNEL_ROOT_SIZE )
+#define cOCT6100_PGSP_EVENT_OUT_SIZE 131072
+#define cOCT6100_PGSP_TONE_EVENT_SIZE 0x40
+#define cOCT6100_IMAGE_FILE_SIZE 0x100000
+
+#define cOCT6100_MATRIX_TIMESTAMP_DWORD_ADD cOCT6100_POUCH_BASE + 0x8
+#define cOCT6100_MATRIX_CHAN_SELECT_DWORD_ADD cOCT6100_POUCH_BASE + 0x14
+#define cOCT6100_MATRIX_WRITE_PTR_DWORD_ADD cOCT6100_POUCH_BASE + 0x4
+#define cOCT6100_MATRIX_PLL_JITTER_COUNT_ADD cOCT6100_POUCH_BASE + 0x1C
+#define cOCT6100_MATRIX_DWORD_BASE cOCT6100_POUCH_BASE + 0xE0000
+
+#define cOCT6100_CHANNEL_ROOT_GLOBAL_CONF_OFFSET 0x0000
+
+#define cOCT6100_NUM_WORDS_PER_TONE_EVENT 32
+#define cOCT6100_NUM_PGSP_EVENT_OUT 2048
+#define cOCT6100_VALID_TONE_EVENT 0x8000
+#define cOCT6100_LOCAL_TIMESTAMP_INCREMENT 32 /* 4 ms increment. */
+#define cOCT6100_ABSOLUTE_MAX_NUM_PGSP_EVENT_OUT 65535
+#define cOCT6100_MIN_TIMESLOT_FOR_TIMESTAMP 5
+
+
+/*=======================================================================*/
+#define cOCT6100_GSC_PGSP_CONTEXT_BASE_ADD_OFFSET 0x0C
+#define cOCT6100_GSC_PGSP_INIT_CONTEXT_BASE_ADD_OFFSET 0x10
+#define cOCT6100_GSC_RIN_CIRC_BUFFER_BASE_ADD_OFFSET 0x14
+#define cOCT6100_GSC_SIN_CIRC_BUFFER_BASE_ADD_OFFSET 0x18
+#define cOCT6100_GSC_SOUT_CIRC_BUFFER_BASE_ADD_OFFSET 0x1C
+
+#define cOCT6100_GSC_BUFFER_LAW_OFFSET 27
+
+/*=======================================================================*/
+#define cOCT6100_CH_MAIN_PGSP_CONTEXT_OFFSET 0x00000
+#define cOCT6100_CH_MAIN_TONE_EVENT_OFFSET 0x00488
+
+/*=======================================================================*/
+#define cOCT6100_PLAYOUT_EVENT_REPEAT_OFFSET 31
+#define cOCT6100_PLAYOUT_EVENT_LAW_OFFSET 30
+#define cOCT6100_PLAYOUT_EVENT_MIX_OFFSET 28
+#define cOCT6100_PLAYOUT_EVENT_LOOP_TIMES_OFFSET 27
+#define cOCT6100_PLAYOUT_EVENT_GAIN_OFFSET 24
+
+#define cOCT6100_PLAYOUT_EVENT_MEM_SIZE 16
+
+/* Image related defines.*/
+#define cOCT6100_MIN_IMAGE_SIZE 0x001000
+#define cOCT6100_MAX_IMAGE_SIZE 0x100000
+#define cOCT6100_MAX_IMAGE_REGION 60
+#define cOCT6100_IMAGE_AF_CST_OFFSET 0x1000;
+
+/* Max defines.*/
+#define cOCT6100_MAX_ECHO_CHANNELS 672
+#define cOCT6100_MAX_TSI_CNCTS 1530
+#define cOCT6100_MAX_CALLER_ID_PLAYOUT_BUFFERS ( 3328 + 6 )
+#define cOCT6100_MAX_PLAYOUT_BUFFERS ( 1344 + cOCT6100_MAX_CALLER_ID_PLAYOUT_BUFFERS )
+#define cOCT6100_MAX_CONF_BRIDGE 672
+#define cOCT6100_MAX_FLEX_CONF_PARTICIPANTS cOCT6100_MAX_ECHO_CHANNELS
+#define cOCT6100_MAX_PHASING_TSST 16
+#define cOCT6100_MAX_ADPCM_CHANNELS 672
+
+#define cOCT6100_NUM_TSI_B4_PHASING 1344
+#define cOCT6100_TOTAL_TSI_CONTROL_MEM_ENTRY 1534
+#define cOCT6100_MAX_TSI_CONTROL_MEM_ENTRY 1344
+#define cOCT6100_MAX_ECHO_CONTROL_MEM_ENTRY 672
+#define cOCT6100_MAX_TSI_B4_TIMESTAMP 172
+#define cOCT6100_TSI_MEM_FOR_TIMESTAMP 4
+#define cOCT6100_API_EXT_TONE_EXTRA_TSI 1533
+
+/* Echo channel ports */
+#define cOCT6100_CHANNEL_PORT_RIN 0
+#define cOCT6100_CHANNEL_PORT_ROUT 1
+#define cOCT6100_CHANNEL_PORT_SIN 2
+#define cOCT6100_CHANNEL_PORT_SOUT 3
+#define cOCT6100_CHANNEL_PORT_ROUT_SOUT 4
+
+#define cOCT6100_NO_ENCODING 10
+#define cOCT6100_NO_DECODING 11
+
+/* Buffer playout defines */
+#define cOCT6100_NO_SKIP 0
+#define cOCT6100_BUFFER_PLAYOUT_MIN_SIZE 1024
+#define cOCT6100_DEFAULT_TIMESTAMP 0
+#define cOCT6100_MIXING_0_DB 0
+#define cOCT6100_MIXING_MINUS_6_DB 1
+#define cOCT6100_MIXING_MINUS_12_DB 2
+#define cOCT6100_MIXING_MUTE 3
+#define cOCT6100_PLAYOUT_GAIN 0x41000000
+#define cOCT6100_PLAYOUT_EVENT 1
+#define cOCT6100_MINIMUM_BUFFER_SIZE 64
+#define cOCT6100_BUFFER_SIZE_GRANULARITY 16
+#define cOCT6100_REPEAT_INFINITELY cOCT6100_INVALID_VALUE
+#define cOCT6100_REPEAT_MAX 32767
+#define cOCT6100_SAMPLES_PER_MS 8
+
+/* For the playout events. */
+#define cOCT6100_MAX_BUFFER_PLAYOUT_EVENT_PER_CALL 32
+#define cOCT6100_MIN_BUFFER_PLAYOUT_EVENT 128
+#define cOCT6100_MAX_BUFFER_PLAYOUT_EVENT 65535
+/* Event types */
+#define cOCT6100_BUFFER_PLAYOUT_EVENT_INVALID cOCT6100_INVALID_VALUE
+#define cOCT6100_BUFFER_PLAYOUT_EVENT_STOP 1
+
+
+/* Phasing defines.*/
+#define cOCT6100_SINGLE_PHASING 0
+#define cOCT6100_DUAL_PHASING 1
+#define cOCT6100_NO_PHASING 2
+
+/* Echo canceller mode.*/
+#define cOCT6100_ELECTRIC_EC 0
+#define cOCT6100_ELECTRIC_EC_DISPLACEMENT 1
+#define cOCT6100_ACCOUSTIC_ES 2
+
+/* Echo control modes.*/
+#define cOCT6100_ECHO_OP_MODE_NORMAL 0
+#define cOCT6100_ECHO_OP_MODE_HT_FREEZE 1
+#define cOCT6100_ECHO_OP_MODE_HT_RESET 2
+#define cOCT6100_ECHO_OP_MODE_POWER_DOWN 3
+#define cOCT6100_ECHO_OP_MODE_EXTERNAL 4
+#define cOCT6100_ECHO_OP_MODE_NO_ECHO 5
+#define cOCT6100_ECHO_OP_MODE_SPEECH_RECOGNITION 6
+#define cOCT6100_ECHO_OP_MODE_G169_ALC cOCT6100_ECHO_OP_MODE_NO_ECHO
+
+/* 2100 Hz disabling configuration. */
+#define cOCT6100_NEVER_DISABLED 0
+#define cOCT6100_G164_2100_HZ 1
+#define cOCT6100_G165_2100_HZ_WITH_PHASE_REV 2
+
+/* TSST defines.*/
+#define cOCT6100_UNASSIGNED cOCT6100_FFFD
+
+#define cOCT6100_MAX_TSSTS 4096
+#define cOCT6100_TWO_TSSTS_INDEX_MASK 0x8000
+#define cOCT6100_TSST_INDEX_MASK 0x7FFF
+#define cOCT6100_INPUT_TSST 0
+#define cOCT6100_OUTPUT_TSST 1
+
+/* Conference bridges defines.*/
+#define cOCT6100_MAX_MIXER_EVENTS 1344
+#define cOCT6100_MAX_FLEX_CONF_PARTICIPANTS_PER_BRIDGE 32
+#define cOCT6100_CONF_DOMINANT_SPEAKER_UNASSIGNED 672
+#define cOCT6100_CONF_NO_DOMINANT_SPEAKER_HNDL cOCT6100_FFFFFFFE
+
+/* Conversion memory defines.*/
+#define cOCT6100_MAX_CONVERSION_MEMORY_BLOCKS 1344
+
+/* Tone detection defines.*/
+#define cOCT6100_MAX_TONE_NUMBER 55
+
+/* Register definition and address. */
+#define cOCT6100_TONE_EVENT_WRITE_PTR_REG 0x722
+#define cOCT6100_TONE_EVENT_READ_PTR_REG 0x720
+
+/* Special tone IDs. */
+
+/* System 5/7 Section */
+#define cOCT6100_TONE_SIN_SYSTEM7_2000 0x20000023
+#define cOCT6100_TONE_SIN_SYSTEM7_1780 0x20000024
+#define cOCT6100_CHIP_ID_REVISION_REG 0x17E
+
+/* BOOT type. */
+#define cOCT6100_AF_BOOT_TYPE 0x5
+#define cOCT6100_PRODUCTION_BOOT_TYPE 0x7
+
+/* Interrupt register masks.*/
+#define cOCT6100_INTRPT_MASK_REG_102H 0x0001
+#define cOCT6100_INTRPT_MASK_REG_202H 0x1C01
+#define cOCT6100_INTRPT_MASK_REG_302H 0xF100
+#define cOCT6100_INTRPT_MASK_REG_502H 0x0002
+#define cOCT6100_INTRPT_MASK_REG_702H 0x0002
+
+#define cOCT6100_DECODER_MEMORY_OFFSET 672
+
+/* Debug defines.*/
+#define cOCT6100_DEBUG_MAX_READ_LENGTH 10240
+#define cOCT6100_DEBUG_SOUT_MAX_READ_LENGTH 2560
+#define cOCT6100_DEBUG_CHAN_RECORD_INDEX 64
+#define cOCT6100_DEBUG_RECORD_BUFFER_BYTE_SIZE 0x20000
+#define cOCT6100_DEBUG_RECORD_MATRIX_SIZE 0x8000
+#define cOCT6100_DEBUG_RECORD_READ_DATA_BYTE_SIZE 1024
+#define cOCT6100_DEBUG_RECORD_BLOCK_BYTE_SIZE 0x1000
+
+/* Tone event defines.*/
+#define cOCT6100_MAX_TONE_EVENT 56
+#define cOCT6100_TONE_PRESENT 0
+#define cOCT6100_TONE_STOP 1
+#define cOCT6100_TONE_REFRESH 2
+
+/* TLV defines.*/
+#define cOCT6100_TLV_MAX_ADDRESS 0x10000000
+#define cOCT6100_TLV_MAX_TONE_NAME_SIZE 64
+
+#define cOCT6100_VERSION_NUMBER_MAX_SIZE 1016
+
+/* Echo Tail defines.*/
+#define cOCT6100_TAIL_LENGTH_32MS 32
+#define cOCT6100_TAIL_LENGTH_64MS 64
+#define cOCT6100_TAIL_LENGTH_128MS 128
+#define cOCT6100_MAX_ECHO_TAIL_DISPLACEMENT 5600 /* In milliseconds */
+
+
+
+
+
+/* Generic loop counter.*/
+#define cOCT6100_MAX_LOOP 0x2000
+/* CPU boot timeout counter. */
+#define cOCT6100_MAX_LOOP_CPU_TIMEOUT 0x20000
+
+/* Automatic level control */
+#define cOCT6100_PASS_THROUGH_LEVEL_CONTROL 0x90
+
+/* Channel stats debug info */
+#define cOCT6100_DEBUG_CHAN_STATS_EVENT_BYTE_SIZE 1024
+#define cOCT6100_DEBUG_CHAN_STATS_LITE_EVENT_BYTE_SIZE 720
+
+/* Tone image info defines.*/
+#define cOCT6100_TONE_INFO_START_STRING "[ToneDetectorInfo]"
+#define cOCT6100_TONE_INFO_STOP_STRING "[~ToneDetectorInfo]"
+#define cOCT6100_TONE_INFO_EVENT_STRING "TONEEVENT=0x"
+
+#define cOCT6100_MAX_NLP_CONF_DWORD 20
+
+/* Tail displacement info.*/
+#define cOCT6100_MAX_TAIL_DISPLACEMENT 896
+
+/* Comfort noise define */
+#define cOCT6100_COMFORT_NOISE_NORMAL 0x0
+#define cOCT6100_COMFORT_NOISE_EXTENDED 0x3
+#define cOCT6100_COMFORT_NOISE_OFF 0x2
+#define cOCT6100_COMFORT_NOISE_FAST_LATCH 0x1
+
+/* Mixer event type.*/
+#define cOCT6100_EVENT_TYPE_SOUT_COPY 0x0
+#define cOCT6100_EVENT_TYPE_SIN_COPY 0x1
+
+/* Tone disabler status.*/
+#define cOCT6100_TONE_DISABLER_EC_ENABLED 0
+#define cOCT6100_TONE_DISABLER_EC_DISABLED 1
+
+/* ADPCM Channel defines */
+#define cOCT6100_ADPCM_ENCODING 0
+#define cOCT6100_ADPCM_DECODING 1
+
+/* Double talk behavior modes. */
+#define cOCT6100_DOUBLE_TALK_BEH_NORMAL 0x0
+#define cOCT6100_DOUBLE_TALK_BEH_LESS_AGGRESSIVE 0x1
+
+/* Api Version string length.*/
+#define cOCT6100_API_VERSION_STRING_LENGTH 32
+
+/* Extended tone detection information. */
+#define cOCT6100_API_EXT_TONE_DISABLED 0
+#define cOCT6100_API_EXT_TONE_SIN_PORT_MODE 1
+#define cOCT6100_API_EXT_TONE_RIN_PORT_MODE 2
+
+
+
+/* Mute/UnMute defines. */
+#define cOCT6100_CHANNEL_MUTE_PORT_NONE 0x00
+#define cOCT6100_CHANNEL_MUTE_PORT_RIN 0x01
+#define cOCT6100_CHANNEL_MUTE_PORT_ROUT 0x02
+#define cOCT6100_CHANNEL_MUTE_PORT_SIN 0x04
+#define cOCT6100_CHANNEL_MUTE_PORT_SOUT 0x08
+#define cOCT6100_CHANNEL_MUTE_PORT_SIN_WITH_FEATURES 0x10
+
+/* Debug get data dump modes. */
+#define cOCT6100_DEBUG_GET_DATA_MODE_16S_LITE 0x0
+#define cOCT6100_DEBUG_GET_DATA_MODE_120S_LITE 0x1
+#define cOCT6100_DEBUG_GET_DATA_MODE_16S 0x2
+#define cOCT6100_DEBUG_GET_DATA_MODE_120S 0x3
+
+
+
+#define cOCT6100_BIST_IN_PROGRESS 0x0
+#define cOCT6100_BIST_CONFIGURATION_FAILED 0x1
+#define cOCT6100_BIST_STATUS_CRC_FAILED 0x2
+#define cOCT6100_BIST_MEMORY_FAILED 0x3
+#define cOCT6100_BIST_SUCCESS 0x4
+
+/* Image types. */
+#define cOCT6100_IMAGE_TYPE_WIRELINE 0x0
+#define cOCT6100_IMAGE_TYPE_COMBINED 0x1
+
+/* Fatal general error types. */
+#define cOCT6100_FATAL_GENERAL_ERROR_TYPE_1 0x0001
+#define cOCT6100_FATAL_GENERAL_ERROR_TYPE_2 0x0002
+#define cOCT6100_FATAL_GENERAL_ERROR_TYPE_3 0x0004
+#define cOCT6100_FATAL_GENERAL_ERROR_TYPE_4 0x0008
+#define cOCT6100_FATAL_GENERAL_ERROR_TYPE_5 0x0010
+#define cOCT6100_FATAL_GENERAL_ERROR_TYPE_6 0x0020
+#define cOCT6100_FATAL_GENERAL_ERROR_TYPE_7 0x0040
+#define cOCT6100_FATAL_GENERAL_ERROR_TYPE_8 0x0080
+
+#endif /* __OCT6100_DEFINES_H__ */
+
diff --git a/software/include/oct6100api/oct6100_errors.h b/software/include/oct6100api/oct6100_errors.h
new file mode 100644
index 0000000..787965c
--- /dev/null
+++ b/software/include/oct6100api/oct6100_errors.h
@@ -0,0 +1,816 @@
+/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
+
+File: oct6100_errors.h
+
+ Copyright (c) 2001-2005 Octasic Inc.
+
+Description:
+
+ Header file containing all defines used for error codes.
+
+This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API is
+free software; you can redistribute it and/or modify it under the terms of
+the GNU General Public License as published by the Free Software Foundation;
+either version 2 of the License, or (at your option) any later version.
+
+The OCT6100 GPL API is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with the OCT6100 GPL API; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+$Octasic_Release: OCT612xAPI-01.00-PR38 $
+
+$Octasic_Revision: 189 $
+
+\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
+
+#ifndef __OCT6100_ERRORS_H__
+#define __OCT6100_ERRORS_H__
+
+/***************************** INCLUDE FILES *******************************/
+
+#include "octdef.h"
+
+/***************************** DEFINES *************************************/
+
+#define cOCT6100_ERR_OK 0x00000000
+#define cOCT6100_ERR_BASE 0x00100000
+
+#define cOCT6100_NOT_SUPPORTED_BASE (0xFF000 + cOCT6100_ERR_BASE)
+
+/* Not supported defines. */
+#define cOCT6100_ERR_NOT_SUPPORTED_OPEN_DEBUG_RECORD (0x00000 + cOCT6100_NOT_SUPPORTED_BASE)
+#define cOCT6100_ERR_NOT_SUPPORTED_CHANNEL_NLP_CONTROL (0x00001 + cOCT6100_NOT_SUPPORTED_BASE)
+#define cOCT6100_ERR_NOT_SUPPORTED_CHANNEL_BKG_NOISE_FREEZE (0x00002 + cOCT6100_NOT_SUPPORTED_BASE)
+#define cOCT6100_ERR_NOT_SUPPORTED_CHANNEL_SIN_DC_OFFSET_REM (0x00003 + cOCT6100_NOT_SUPPORTED_BASE)
+#define cOCT6100_ERR_NOT_SUPPORTED_CHANNEL_RIN_DC_OFFSET_REM (0x00004 + cOCT6100_NOT_SUPPORTED_BASE)
+#define cOCT6100_ERR_NOT_SUPPORTED_CHANNEL_RIN_AUTO_LC (0x00005 + cOCT6100_NOT_SUPPORTED_BASE)
+#define cOCT6100_ERR_NOT_SUPPORTED_CHANNEL_SOUT_AUTO_LC (0x00006 + cOCT6100_NOT_SUPPORTED_BASE)
+#define cOCT6100_ERR_NOT_SUPPORTED_CHANNEL_ANR (0x00007 + cOCT6100_NOT_SUPPORTED_BASE)
+#define cOCT6100_ERR_NOT_SUPPORTED_CHANNEL_TAIL_DISPLACEMENT (0x00008 + cOCT6100_NOT_SUPPORTED_BASE)
+#define cOCT6100_ERR_NOT_SUPPORTED_CHANNEL_ENCODING (0x00009 + cOCT6100_NOT_SUPPORTED_BASE)
+#define cOCT6100_ERR_NOT_SUPPORTED_CHANNEL_DECODING (0x0000A + cOCT6100_NOT_SUPPORTED_BASE)
+#define cOCT6100_ERR_NOT_SUPPORTED_CHANNEL_LAW_TRANSLATION (0x0000B + cOCT6100_NOT_SUPPORTED_BASE)
+#define cOCT6100_ERR_NOT_SUPPORTED_CHANNEL_ACOUSTIC_ECHO (0x0000C + cOCT6100_NOT_SUPPORTED_BASE)
+#define cOCT6100_ERR_NOT_SUPPORTED_CHANNEL_DEFAULT_ERL (0x0000D + cOCT6100_NOT_SUPPORTED_BASE)
+#define cOCT6100_ERR_NOT_SUPPORTED_CHANNEL_DOUBLE_TALK (0x0000E + cOCT6100_NOT_SUPPORTED_BASE)
+#define cOCT6100_ERR_NOT_SUPPORTED_CHANNEL_NON_LINEARITY_B (0x0000F + cOCT6100_NOT_SUPPORTED_BASE)
+#define cOCT6100_ERR_NOT_SUPPORTED_CHANNEL_AEC_DEFAULT_ERL (0x00010 + cOCT6100_NOT_SUPPORTED_BASE)
+#define cOCT6100_ERR_NOT_SUPPORTED_CHANNEL_RIN_HIGH_LEVEL_COMP (0x00011 + cOCT6100_NOT_SUPPORTED_BASE)
+#define cOCT6100_ERR_NOT_SUPPORTED_CHANNEL_PER_CHAN_TAIL (0x00012 + cOCT6100_NOT_SUPPORTED_BASE)
+#define cOCT6100_ERR_NOT_SUPPORTED_CHANNEL_SIL_SUP (0x00013 + cOCT6100_NOT_SUPPORTED_BASE)
+#define cOCT6100_ERR_NOT_SUPPORTED_OPEN_ACOUSTIC_ECHO (0x00014 + cOCT6100_NOT_SUPPORTED_BASE)
+#define cOCT6100_ERR_NOT_SUPPORTED_OPEN_TAIL_DISPLACEMENT_VALUE (0x00015 + cOCT6100_NOT_SUPPORTED_BASE)
+#define cOCT6100_ERR_NOT_SUPPORTED_OPEN_MAX_ECHO_CHANNELS_VALUE (0x00016 + cOCT6100_NOT_SUPPORTED_BASE)
+#define cOCT6100_ERR_NOT_SUPPORTED_CHANNEL_ALE (0x00017 + cOCT6100_NOT_SUPPORTED_BASE)
+#define cOCT6100_ERR_NOT_SUPPORTED_CHANNEL_NLE (0x00018 + cOCT6100_NOT_SUPPORTED_BASE)
+#define cOCT6100_ERR_NOT_SUPPORTED_CHANNEL_ROUT_NR (0x00019 + cOCT6100_NOT_SUPPORTED_BASE)
+#define cOCT6100_ERR_NOT_SUPPORTED_CHANNEL_SIN_MUTE_FEATURES (0x0001A + cOCT6100_NOT_SUPPORTED_BASE)
+#define cOCT6100_ERR_NOT_SUPPORTED_CHANNEL_ANR_SNR_ENHANCEMENT (0x0001B + cOCT6100_NOT_SUPPORTED_BASE)
+#define cOCT6100_ERR_NOT_SUPPORTED_CHANNEL_ANR_SEGREGATION (0x0001C + cOCT6100_NOT_SUPPORTED_BASE)
+#define cOCT6100_ERR_NOT_SUPPORTED_OPEN_USE_SYNCH_TIMESTAMP (0x0001D + cOCT6100_NOT_SUPPORTED_BASE)
+#define cOCT6100_ERR_NOT_SUPPORTED_CHANNEL_TAIL_LENGTH (0x0001E + cOCT6100_NOT_SUPPORTED_BASE)
+#define cOCT6100_ERR_NOT_SUPPORTED_CHANNEL_TONE_DISABLER_ACTIVATION_DELAY (0x0001F + cOCT6100_NOT_SUPPORTED_BASE)
+#define cOCT6100_ERR_NOT_SUPPORTED_CHANNEL_ACOUSTIC_ECHO_TAIL_LENGTH (0x00020 + cOCT6100_NOT_SUPPORTED_BASE)
+#define cOCT6100_ERR_NOT_SUPPORTED_CHANNEL_MUSIC_PROTECTION (0x00021 + cOCT6100_NOT_SUPPORTED_BASE)
+#define cOCT6100_ERR_NOT_SUPPORTED_DEBUG_DATA_MODE_120S (0x00022 + cOCT6100_NOT_SUPPORTED_BASE)
+#define cOCT6100_ERR_NOT_SUPPORTED_TONE_NOT_PRESENT_IN_FIRMWARE (0x00023 + cOCT6100_NOT_SUPPORTED_BASE)
+#define cOCT6100_ERR_NOT_SUPPORTED_DOUBLE_TALK_BEHAVIOR_MODE (0x00024 + cOCT6100_NOT_SUPPORTED_BASE)
+#define cOCT6100_ERR_NOT_SUPPORTED_IDLE_CODE_DETECTION (0x00025 + cOCT6100_NOT_SUPPORTED_BASE)
+#define cOCT6100_ERR_NOT_SUPPORTED_IDLE_CODE_DETECTION_CONFIG (0x00026 + cOCT6100_NOT_SUPPORTED_BASE)
+
+#define cOCT6100_ERR_NOT_SUPPORTED_BUFFER_PLAYOUT (0x00100 + cOCT6100_NOT_SUPPORTED_BASE)
+#define cOCT6100_ERR_NOT_SUPPORTED_CHANNEL_CNR (0x00101 + cOCT6100_NOT_SUPPORTED_BASE)
+#define cOCT6100_ERR_NOT_SUPPORTED_CONF_BRIDGE (0x00102 + cOCT6100_NOT_SUPPORTED_BASE)
+#define cOCT6100_ERR_NOT_SUPPORTED_CALLER_ID (0x00104 + cOCT6100_NOT_SUPPORTED_BASE)
+#define cOCT6100_ERR_NOT_SUPPORTED_CHANNEL_NOISE_BLEACHING (0x00105 + cOCT6100_NOT_SUPPORTED_BASE)
+
+#define cOCT6100_ERR_NOT_SUPPORTED_CHANNEL_TONE_REMOVAL (0x00300 + cOCT6100_NOT_SUPPORTED_BASE)
+#define cOCT6100_ERR_NOT_SUPPORTED_DOMINANT_SPEAKER (0x00301 + cOCT6100_NOT_SUPPORTED_BASE)
+
+
+#define cOCT6100_ERR_OPEN_INVALID_DEVICE (0x03000 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_INSUFFICIENT_EXTERNAL_MEMORY (0x03001 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_MEMORY_CHIP_SIZE (0x03002 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_UP_CLK_FREQ (0x03003 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_USER_CHIP_ID (0x03004 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_MULTI_PROCESS_SYSTEM (0x03005 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_MAX_RW_ACCESSES (0x03006 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_IMAGE_SIZE (0x03007 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_IMAGE_FILE (0x03008 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_MEM_CLK_FREQ (0x03009 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_MEMORY_CHIPS_NUMBER (0x0300A + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_TOTAL_MEMORY_SIZE (0x0300B + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_USE_SYNCH_TIMESTAMP (0x0300C + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_TIMESTAMP_STREAM (0x0300D + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_TIMESTAMP_TIMESLOT (0x0300E + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_TIMESTAMP_TSSTS (0x0300F + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_TDM_STREAM_FREQS (0x03010 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_TDM_SAMPLING (0x03011 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_FAST_H100_MODE (0x03012 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_MAX_ECHO_CHANNELS (0x03013 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_MAX_PLAYOUT_BUFFERS (0x03014 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_MAX_TSI_CNCTS (0x03015 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_MAX_PHASING_TSSTS (0x03016 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_EXTERNAL_MEM_BIST_FAILED (0x03017 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_EXTERNAL_MEM_BIST_TIMEOUT (0x03018 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_SDRAM_BIST_FAILED (0x03019 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_CORRUPTED_IMAGE (0x0301A + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_CPU_REG_BIST_ERROR (0x0301B + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_SOFT_TONE_EVENT_SIZE (0x0301C + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_INTERRUPT_POLARITY (0x0301D + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_FATAL_GENERAL_CONFIG (0x0301E + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_MAX_REMOTE_DEBUG_SESSIONS (0x0301F + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_ENABLE_MEM_CLK_OUT (0x03020 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_MAX_TDM_STREAM (0x03021 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_MAX_CONF_BRIDGES (0x03022 + cOCT6100_ERR_BASE)
+
+#define cOCT6100_ERR_OPEN_AF_CPU_TIMEOUT (0x03024 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_MEMORY_TYPE (0x03025 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_FATAL_MEMORY_CONFIG (0x03026 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_ERROR_MEMORY_CONFIG (0x03027 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_ERROR_OVERFLOW_TONE_EVENTS_CONFIG (0x03028 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_ERROR_H100_CONFIG (0x03029 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_FATAL_MEMORY_TIMEOUT (0x0302A + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_ERROR_MEMORY_TIMEOUT (0x0302B + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_ERROR_OVERFLOW_TONE_EVENTS_TIMEOUT (0x0302C + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_ERROR_H100_TIMEOUT (0x0302D + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_IMAGE_WRITE_FAILED (0x0302E + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_CRC_ERROR (0x0302F + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_EGO_TIMEOUT (0x03030 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_SOFT_DEBUG_EVENT_BUF_SIZE (0x03031 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_TONE_INFO_START_TAG_NOT_FOUND (0x03032 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_TONE_INFO_STOP_TAG_NOT_FOUND (0x03033 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_INVALID_TONE_EVENT (0x03034 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_INVALID_TONE_NAME (0x03035 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_INVALID_EVENT_NUMBER_SIZE (0x03036 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_INTERNAL_MEMORY_BIST (0x03037 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_TAIL_DISPLACEMENT (0x03038 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_DEBUG_CHANNEL_RECORDING (0x03039 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_MAX_BIDIR_CHANNELS (0x0303A + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_FUNCTIONAL_BIST_FAILED (0x0303C + cOCT6100_ERR_BASE)
+
+#define cOCT6100_ERR_OPEN_MAX_ADPCM_CHANNELS (0x0303E + cOCT6100_ERR_BASE)
+
+#define cOCT6100_ERR_OPEN_ENABLE_EXT_TONE_DETECTION (0x03040 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_SOFT_PLAYOUT_STOP_EVENT_SIZE (0x03041 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_INVALID_FIRMWARE_OR_CAPACITY_PINS (0x03042 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_ENABLE_ACOUSTIC_ECHO (0x03043 + cOCT6100_ERR_BASE)
+
+#define cOCT6100_ERR_OPEN_USER_WRITE_BURST_FAILED (0x03045 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_USER_WRITE_SMEAR_FAILED (0x03046 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_USER_READ_BURST_FAILED (0x03047 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_MAX_FLEXIBLE_CONF_PARTICIPANTS (0x03048 + cOCT6100_ERR_BASE)
+
+#define cOCT6100_ERR_OPEN_DEBUG_MEM_INDEX (0x03051 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_ENABLE_CALLER_ID (0x03052 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_CALLER_ID_PLAYOUT_BUFFERS (0x03053 + cOCT6100_ERR_BASE)
+
+#define cOCT6100_ERR_OPEN_ENABLE_PRODUCTION_BIST (0x03055 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_PRODUCTION_BIST_ACTIVATED (0x03056 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_NUM_PRODUCTION_BIST_LOOPS (0x03057 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_PRODUCTION_BOOT_FAILED (0x03058 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_PRODUCTION_BIST_CONF_FAILED (0x03059 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_PRODUCTION_BIST_POUCH_ERROR (0x0305A + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_OPEN_INVALID_TLV_LENGTH (0x0305B + cOCT6100_ERR_BASE)
+
+#define cOCT6100_ERR_TSI_CNCT_ALL_CHANNELS_ARE_OPENED (0x04000 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_TSI_CNCT_DISABLED (0x04001 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_TSI_CNCT_INVALID_HANDLE (0x04002 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_TSI_CNCT_INPUT_TIMESLOT (0x04003 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_TSI_CNCT_INPUT_STREAM (0x04004 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_TSI_CNCT_OUTPUT_TIMESLOT (0x04005 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_TSI_CNCT_OUTPUT_STREAM (0x04006 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_TSI_CNCT_INPUT_PCM_LAW (0x04007 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_TSI_CNCT_TIMESLOT (0x04008 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_TSI_CNCT_STREAM (0x04009 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_TSI_CNCT_TSST_RESERVED (0x0400A + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_TSI_CNCT_NOT_OPEN (0x0400B + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_TSI_CNCT_ASSOCIATED_TSST_RESERVED (0x0400C + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_TSI_CNCT_NO_MORE_TSI_AVAILABLE (0x0400D + cOCT6100_ERR_BASE)
+
+#define cOCT6100_ERR_BUFFER_PLAYOUT_DISABLED (0x05000 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_BUFFER_PLAYOUT_PATTERN (0x05001 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_BUFFER_PLAYOUT_TOO_SMALL (0x05002 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_BUFFER_PLAYOUT_PCM_LAW (0x05003 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_BUFFER_PLAYOUT_ALL_BUFFERS_OPEN (0x05004 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_BUFFER_PLAYOUT_BUF_SIZE (0x05005 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_BUFFER_PLAYOUT_BUF_INDEX (0x05006 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_BUFFER_PLAYOUT_NOT_OPEN (0x05007 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_BUFFER_PLAYOUT_ACTIVE_DEPENDENCIES (0x05008 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_BUFFER_PLAYOUT_CHANNEL_HANDLE_INVALID (0x05009 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_BUFFER_PLAYOUT_CHANNEL_NOT_OPEN (0x0500A + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_BUFFER_PLAYOUT_ROUT_PORT_PLAYING (0x0500B + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_BUFFER_PLAYOUT_SOUT_PORT_PLAYING (0x0500C + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_BUFFER_PLAYOUT_PORT_INVALID (0x0500D + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_BUFFER_PLAYOUT_PLAYOUT_PORT (0x0500E + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_BUFFER_PLAYOUT_ADD_EVENT_BUF_FULL (0x0500F + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_BUFFER_PLAYOUT_ADD_REPEAT (0x05010 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_BUFFER_PLAYOUT_ADD_MIXING (0x05011 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_BUFFER_PLAYOUT_STOP_CLEANLY (0x05012 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_BUFFER_PLAYOUT_NOT_STARTED (0x05013 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_BUFFER_PLAYOUT_WRITE_BYTE_COUNT (0x05015 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_BUFFER_PLAYOUT_ECHO_OP_MODE (0x05016 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_BUFFER_PLAYOUT_BLOCK_LENGTH_INVALID (0x05017 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_BUFFER_PLAYOUT_BLOCK_OFFSET_INVALID (0x05018 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_BUFFER_PLAYOUT_EVENT_RESET (0x05019 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_BUFFER_PLAYOUT_EVENT_BUF_EMPTY (0x0501A + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_BUFFER_PLAYOUT_MAX_EVENT (0x0501B + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_BUFFER_PLAYOUT_EVENT_DISABLED (0x0501C + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_BUFFER_PLAYOUT_NOTIFY_ON_STOP (0x0501D + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_BUFFER_PLAYOUT_ALLOW_ACTIVE (0x0501E + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_BUFFER_PLAYOUT_STILL_ACTIVE (0x0501F + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_BUFFER_PLAYOUT_REPEAT_USED (0x05020 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_BUFFER_PLAYOUT_NLP_DISABLED (0x05021 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_BUFFER_PLAYOUT_MALLOC_ZERO (0x05022 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_BUFFER_PLAYOUT_NO_MEMORY (0x05023 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_BUFFER_PLAYOUT_MALLOC_POINT_NOT_FOUND (0x05024 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_BUFFER_PLAYOUT_ADD_REPEAT_COUNT (0x05025 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_BUFFER_PLAYOUT_ADD_GAIN_DB (0x05026 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_BUFFER_PLAYOUT_LIST_EMPTY (0x05027 + cOCT6100_ERR_BASE)
+
+#define cOCT6100_ERR_MEMORY_ALL_TSI_MEM_ENTRY_RESERVED (0x06000 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_MEMORY_ALL_ECHO_MEM_ENTRY_RESERVED (0x06002 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_MEMORY_EXTERNAL_MEMORY_FULL (0x06003 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_MEMORY_ALL_CONVERSION_MEM_ENTRY_RESERVED (0x06004 + cOCT6100_ERR_BASE)
+
+
+#define cOCT6100_ERR_CHANNEL_DISABLED (0x07000 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_INVALID_HANDLE (0x07001 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_RIN_NUM_TSSTS (0x07002 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_SIN_NUM_TSSTS (0x07003 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_ROUT_NUM_TSSTS (0x07004 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_SOUT_NUM_TSSTS (0x07005 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_RIN_TIMESLOT (0x07006 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_RIN_STREAM (0x07007 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_SIN_TIMESLOT (0x07008 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_SIN_STREAM (0x07009 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_ROUT_TIMESLOT (0x0700A + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_ROUT_STREAM (0x0700B + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_SOUT_TIMESLOT (0x0700C + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_SOUT_STREAM (0x0700D + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_MISSING_TSST (0x07012 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_SIL_SUP_ENABLE (0x07013 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_PHASING_TYPE (0x07014 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_INVALID_PHASING_HANDLE (0x07015 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_PHASING_TSST_NOT_OPEN (0x07016 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_PHASING_INVALID_PHASE (0x07017 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_DEBUG (0x07018 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_ECHO_OP_MODE (0x0701F + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_SIN_DC_OFFSET_REM (0x07020 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_RIN_DC_OFFSET_REM (0x07021 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_RIN_LEVEL_CONTROL (0x07022 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_SOUT_LEVEL_CONTROL (0x07023 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_RIN_LEVEL_CONTROL_GAIN (0x07024 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_SOUT_LEVEL_CONTROL_GAIN (0x07025 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_SOUT_ADAPT_NOISE_REDUCTION (0x07026 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_ALL_CHANNELS_ARE_OPENED (0x07027 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_NOT_OPEN (0x07029 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_ADPCM_NIBBLE (0x0702A + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_TSST_ADD_PORT (0x0702B + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_TSST_ADD_TIMESLOT (0x0702C + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_TSST_ADD_STREAM (0x0702D + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_ECHO_OP_MODE_INVALID (0x0702E + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_RIN_PCM_LAW (0x0702F + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_SIN_PCM_LAW (0x07030 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_ROUT_PCM_LAW (0x07031 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_SOUT_PCM_LAW (0x07032 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_DECODER_PORT (0x07033 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_ENCODER_PORT (0x07034 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_DECODING_RATE (0x07035 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_ENCODING_RATE (0x07036 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_ENABLE_NLP (0x07037 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_COMFORT_NOISE_MODE (0x07038 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_PHASING_TSST_REQUIRED (0x07039 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_SIL_SUP_INVALID_ENCODER_PORT (0x0703A + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_MODIFY_CODEC_CONFIG (0x0703B + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_MODIFY_VQE_CONFIG (0x0703C + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_MODIFY_TDM_CONFIG (0x0703D + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_ECHO_OP_MODE_RIN_PORT_INVALID (0x0703E + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_ECHO_OP_MODE_SIN_PORT_INVALID (0x0703F + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_TSST_REMOVE_PORT (0x07041 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_TSST_REMOVE_TIMESLOT (0x07042 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_TSST_REMOVE_STREAM (0x07043 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_TSST_REMOVE_INVALID_TSST (0x07044 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_GET_STATS_MAX_BROADCAST_TSST (0x07045 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_ROUT_BROADCAST_TIMESLOT (0x07046 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_ROUT_BROADCAST_STREAM (0x07047 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_SOUT_BROADCAST_TIMESLOT (0x07048 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_SOUT_BROADCAST_STREAM (0x07049 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_ACTIVE_DEPENDENCIES (0x0704A + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_TONE_DISABLER_ENABLE (0x0704B + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_TAIL_LENGTH (0x07053 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_TAIL_DISPLACEMENT (0x07054 + cOCT6100_ERR_BASE)
+
+#define cOCT6100_ERR_CHANNEL_INVALID_RIN_CB_SIZE (0x07058 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_TSST_REMOVE_NO_BROADCAST_TSST (0x07059 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_INVALID_CODEC_POSITION (0x0705A + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_STATS_RESET (0x0705B + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_ENABLE_TAIL_DISPLACEMENT (0x0705C + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_BIDIR_CHANNEL_HANDLE (0x0705E + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_BIDIR_FIRST_CHANNEL_HANDLE (0x0705F + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_BIDIR_SECOND_CHANNEL_HANDLE (0x07060 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_CODEC_ACTIVATED (0x07061 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_ALREADY_BIDIR (0x07062 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_ALL_BIDIR_CHANNELS_ARE_OPENED (0x07063 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_FIRST_CHAN_SOUT_PORT (0x07064 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_FIRST_CHAN_RIN_PORT (0x07065 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_SECOND_CHAN_SOUT_PORT (0x07066 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_SECOND_CHAN_RIN_PORT (0x07067 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_BIDIR_PCM_LAW (0x07068 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_BIDIR_CHAN_NOT_OPEN (0x07069 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_RIN_ROUT_LAW_CONVERSION (0x0706A + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_SIN_SOUT_LAW_CONVERSION (0x0706B + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_PART_OF_BIDIR_CHANNEL (0x0706C + cOCT6100_ERR_BASE)
+
+#define cOCT6100_ERR_CHANNEL_NO_VALID_TDM_CLOCKS (0x0706E + cOCT6100_ERR_BASE)
+
+#define cOCT6100_ERR_CHANNEL_OUT_OF_TSI_MEMORY (0x07073 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_TONE_REMOVAL (0x07075 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_ACOUSTIC_ECHO (0x07077 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_DEFAULT_ERL (0x07079 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_DOUBLE_TALK (0x0707B + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_PHASE_TYPE_REQUIRED (0x0707C + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_SIL_SUP_NLP_MUST_BE_ENABLED (0x0707D + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_ENABLE_EXT_TONE_DETECTION (0x0707E + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_EXT_TONE_DETECTION_DECODER_PORT (0x0707F + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_EXT_TONE_DETECTION_DISABLED (0x07080 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_NON_LINEARITY_B (0x07082 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_FIRST_CHAN_IN_CONFERENCE (0x07083 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_SECOND_CHAN_IN_CONFERENCE (0x07084 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_TAIL_DISPLACEMENT_CANNOT_MODIFY (0x07085 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_NON_LINEARITY_B_CANNOT_MODIFY (0x07086 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_ACOUSTIC_ECHO_NOT_ENABLED (0x07087 + cOCT6100_ERR_BASE)
+
+#define cOCT6100_ERR_CHANNEL_BIDIR_DISABLED (0x0708B + cOCT6100_ERR_BASE)
+
+#define cOCT6100_ERR_CHANNEL_TAIL_DISPLACEMENT_INVALID (0x0708D + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_PER_CHAN_TAIL_DISPLACEMENT (0x0708E + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_SOUT_CONFERENCE_NOISE_REDUCTION (0x0708F + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_AEC_DEFAULT_ERL (0x07092 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_ECHO_OP_MODE_NLP_REQUIRED (0x07093 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_RIN_AUTO_LEVEL_CONTROL (0x07094 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_SOUT_AUTO_LEVEL_CONTROL (0x07095 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_RIN_AUTO_LEVEL_CONTROL_TARGET (0x07096 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_SOUT_AUTO_LEVEL_CONTROL_TARGET (0x07097 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_RIN_AUTO_LEVEL_MANUAL (0x07098 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_SOUT_AUTO_LEVEL_MANUAL (0x07099 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_RIN_HIGH_LEVEL_COMP (0x0709A + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_RIN_AUTO_LEVEL_HIGH_LEVEL_COMP (0x0709C + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_RIN_HIGH_LEVEL_COMP_MANUAL (0x0709D + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_RIN_HIGH_LEVEL_COMP_THRESHOLD (0x0709E + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_MUTE_MASK (0x0709F + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_MUTE_MASK_SIN (0x070A0 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_ALE_RATIO (0x070A1 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_NLE_FLAG (0x070A2 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_ALE_NLE_SIMULTANEOUSLY (0x070A3 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_ROUT_NOISE_REDUCTION (0x070A4 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_ANR_SNR_ENHANCEMENT (0x070A5 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_ANR_SEGREGATION (0x070A6 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_NLE_RATIO (0x070A7 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_APPLY_TO_ALL_CHANNELS (0x070A8 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_ROUT_STREAM_UNASSIGN (0x070A9 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_ROUT_TIMESLOT_UNASSIGN (0x070AA + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_RIN_STREAM_UNASSIGN (0x070AB + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_RIN_TIMESLOT_UNASSIGN (0x070AC + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_SOUT_STREAM_UNASSIGN (0x070AD + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_SOUT_TIMESLOT_UNASSIGN (0x070AE + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_SIN_STREAM_UNASSIGN (0x070AF + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_SIN_TIMESLOT_UNASSIGN (0x070B0 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_DISABLE_TONE_DETECTION (0x070B1 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_STOP_BUFFER_PLAYOUT (0x070B2 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_REMOVE_CONF_BRIDGE_PARTICIPANT (0x070B3 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_REMOVE_BROADCAST_TSSTS (0x070B4 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_TONE_DISABLER_ACTIVATION_DELAY (0x070B5 + cOCT6100_ERR_BASE)
+
+#define cOCT6100_ERR_CHANNEL_OUT_OF_MIXER_EVENTS (0x070B8 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_ACOUSTIC_ECHO_TAIL_LENGTH (0x070B9 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_ENABLE_MUSIC_PROTECTION (0x070BA + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_TAIL_LENGTH_INVALID (0x070BB + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_ACOUSTIC_ECHO_TAIL_SUM (0x070BC + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_DOUBLE_TALK_MODE (0x070BD + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_SOUT_NOISE_BLEACHING (0x070BE + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_SOUT_NOISE_BLEACHING_NR (0x070BF + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_ANR_CNR_SIMULTANEOUSLY (0x070C0 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_IDLE_CODE_DETECTION (0x070C1 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CHANNEL_MUST_ENABLE_TONE_DISABLER (0x070C2 + cOCT6100_ERR_BASE)
+
+#define cOCT6100_ERR_PHASING_TSST_ALL_ENTRIES_ARE_OPENED (0x08000 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_PHASING_TSST_DISABLED (0x08001 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_PHASING_TSST_INVALID_HANDLE (0x08002 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_PHASING_TSST_TIMESLOT (0x08003 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_PHASING_TSST_STREAM (0x08004 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_PHASING_TSST_PHASING_LENGTH (0x08005 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_PHASING_TSST_NOT_OPEN (0x08006 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_PHASING_TSST_ACTIVE_DEPENDENCIES (0x08007 + cOCT6100_ERR_BASE)
+
+
+#define cOCT6100_ERR_CONF_BRIDGE_INVALID_HANDLE (0x09000 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CONF_BRIDGE_DISABLED (0x09001 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CONF_BRIDGE_NOT_OPEN (0x09002 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CONF_BRIDGE_ACTIVE_DEPENDENCIES (0x09003 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CONF_BRIDGE_CHANNEL_ADD_INVALID_HANDLE (0x09004 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CONF_MIXER_EVENT_NOT_FOUND (0x09005 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CONF_BRIDGE_ALL_BUFFERS_OPEN (0x09006 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CONF_BRIDGE_CHANNEL_REMOVE_INVALID_HANDLE (0x09007 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CONF_BRIDGE_CHAN_NOT_ON_BRIDGE (0x09008 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CONF_BRIDGE_CHANNEL_ADD_MUTE (0x09009 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CONF_BRIDGE_CHANNEL_MUTE_INVALID_HANDLE (0x0900A + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CONF_BRIDGE_CHANNEL_MUTE_ALREADY_MUTED (0x0900B + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CONF_BRIDGE_CHANNEL_MUTE_NOT_MUTED (0x0900C + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CONF_BRIDGE_CHANNEL_ADD_CODEC_ACTIVE (0x0900D + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CONF_BRIDGE_CHANNEL_ADD_MIXER_FULL (0x0900E + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CONF_BRIDGE_CHANNEL_ALREADY_ON_BRIDGE (0x0900F + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CONF_BRIDGE_CHANNEL_REMOVE_ALL (0x09010 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CONF_BRIDGE_CHANNEL_ADD_EXT_TONE_ENABLED (0x09011 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CONF_BRIDGE_INVALID_INPUT_PORT (0x09012 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CONF_BRIDGE_CHANNEL_DOMINANT_SPEAKER (0x09013 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CONF_BRIDGE_CHANNEL_BIDIR (0x09015 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CONF_BRIDGE_CNR_MUST_BE_ENABLED (0x09016 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CONF_BRIDGE_NLP_MUST_BE_ENABLED (0x09017 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CONF_BRIDGE_FLEX_CONF (0x09018 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CONF_BRIDGE_FLEX_CONF_PARTICIPANT_CNT (0x09019 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CONF_BRIDGE_FLEX_CONF_LISTENER_MASK_INDEX (0x0901A + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CONF_BRIDGE_FLEX_CONF_ALL_BUFFERS_OPEN (0x0901B + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CONF_BRIDGE_FLEX_CONF_DISABLED (0x0901C + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CONF_BRIDGE_FLEX_CONF_LISTENER_INDEX_USED (0x0901D + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CONF_BRIDGE_SIMPLE_BRIDGE (0x0901E + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CONF_BRIDGE_COPY_EVENTS (0x0901F + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CONF_BRIDGE_CHANNEL_ADD_INVALID_TAP_HANDLE (0x09020 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CONF_BRIDGE_FLEX_CONF_TAP_NOT_SUPPORTED (0x09021 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CONF_BRIDGE_CHANNEL_TAP_NOT_ON_BRIDGE (0x09022 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CONF_BRIDGE_CHANNEL_TAP_DEPENDENCY (0x09023 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CONF_BRIDGE_CHANNEL_TAP_NOT_ON_SAME_BRIDGE (0x09024 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CONF_BRIDGE_CHANNEL_ADD_TAP_SOUT_ONLY (0x09025 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CONF_BRIDGE_CHANNEL_ADD_ALREADY_TAPPED (0x09026 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CONF_BRIDGE_CHANNEL_TAP_ALWAYS_MUTE (0x09027 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_CONF_BRIDGE_CHANNEL_LAW_CONVERSION (0x09028 + cOCT6100_ERR_BASE)
+
+#define cOCT6100_ERR_MISC_CANNOT_ROUND_UP_NUMBER (0x0A000 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_MISC_ASCII_CONVERSION_FAILED (0x0A001 + cOCT6100_ERR_BASE)
+
+#define cOCT6100_ERR_TONE_DETECTION_CHANNEL_HANDLE_INVALID (0x0B000 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_TONE_DETECTION_CHANNEL_NOT_OPEN (0x0B001 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_TONE_DETECTION_TONE_NUMBER_INVALID (0x0B002 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_TONE_DETECTION_TONE_NOT_ACTIVATED (0x0B003 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_TONE_DETECTION_TONE_ACTIVATED (0x0B004 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_TONE_DETECTION_TONE_NOT_AVAILABLE (0x0B005 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_TONE_DETECTION_DISABLE_ALL (0x0B006 + cOCT6100_ERR_BASE)
+
+#define cOCT6100_ERR_EVENTS_GET_TONE_RESET_BUFS (0x0C000 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_EVENTS_TONE_BUF_EMPTY (0x0C001 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_EVENTS_MAX_TONES (0x0C002 + cOCT6100_ERR_BASE)
+
+#define cOCT6100_ERR_INTRPTS_RW_ERROR (0x0D000 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_INTRPTS_NOT_ACTIVE (0x0D001 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_INTRPTS_FATAL_GENERAL_CONFIG (0x0D002 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_INTRPTS_FATAL_MEMORY_CONFIG (0x0D003 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_INTRPTS_DATA_ERR_MEMORY_CONFIG (0x0D004 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_INTRPTS_OVERFLOW_TONE_EVENTS_CONFIG (0x0D005 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_INTRPTS_H100_ERROR_CONFIG (0x0D006 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_INTRPTS_FATAL_GENERAL_TIMEOUT (0x0D007 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_INTRPTS_FATAL_MEMORY_TIMEOUT (0x0D008 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_INTRPTS_DATA_ERR_MEMORY_TIMEOUT (0x0D009 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_INTRPTS_OVERFLOW_TONE_EVENTS_TIMEOUT (0x0D00A + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_INTRPTS_H100_ERROR_TIMEOUT (0x0D00B + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_INTRPTS_AF_TIMESTAMP_READ_TIMEOUT (0x0D00C + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_INTRPTS_NLP_TIMESTAMP_READ_TIMEOUT (0x0D00D + cOCT6100_ERR_BASE)
+
+#define cOCT6100_ERR_TSST_TIMESLOT (0x0E000 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_TSST_STREAM (0x0E001 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_TSST_TSST_RESERVED (0x0E002 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_TSST_ASSOCIATED_TSST_RESERVED (0x0E003 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_TSST_ALL_TSSTS_ARE_OPENED (0x0E004 + cOCT6100_ERR_BASE)
+
+#define cOCT6100_ERR_MULTIPROC_API_INST_SHARED (0x10000 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_MULTIPROC_API_INST_LOCAL (0x10001 + cOCT6100_ERR_BASE)
+
+#define cOCT6100_ERR_DEBUG_CHANNEL_INVALID_HANDLE (0x11000 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_DEBUG_PORT (0x11001 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_DEBUG_READ_LENGTH (0x11002 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_DEBUG_SOUT_READ_LENGTH (0x11003 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_DEBUG_READ_DATA (0x11004 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_DEBUG_GET_EVENTS_RESET_BUFS (0x11005 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_DEBUG_GET_EVENTS_BUF_EMPTY (0x11006 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_DEBUG_RECORD_RIN_PTR_INVALID (0x11007 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_DEBUG_RECORD_SIN_PTR_INVALID (0x11008 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_DEBUG_RECORD_ROUT_PTR_INVALID (0x11009 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_DEBUG_RECORD_SOUT_PTR_INVALID (0x1100A + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_DEBUG_RECORD_RAW_DATA_PTR_INVALID (0x1100B + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_DEBUG_RECORD_LENGTH_INVALID (0x1100C + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_DEBUG_RECORD_NO_CHAN_SELECTED (0x1100D + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_DEBUG_PCM_LAW (0x1100E + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_DEBUG_CHANNEL_RECORDING_DISABLED (0x1100F + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_DEBUG_GET_DATA_MAX_BYTES (0x11010 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_DEBUG_GET_DATA_PTR_INVALID (0x11011 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_DEBUG_RC_CHANNEL_RECORDING_DISABLED (0x11012 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_DEBUG_GET_DATA_MODE (0x11013 + cOCT6100_ERR_BASE)
+
+
+#define cOCT6100_ERR_MIXER_ALL_COPY_EVENT_ENTRY_OPENED (0x12000 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_MIXER_COPY_EVENT_HANDLE (0x12001 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_MIXER_SOURCE_CHAN_HANDLE (0x12002 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_MIXER_DESTINATION_CHAN_HANDLE (0x12003 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_MIXER_SOURCE_PORT (0x12004 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_MIXER_DESTINATION_PORT (0x12005 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_MIXER_EVENT_NOT_OPEN (0x12006 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_MIXER_SOURCE_ADPCM_RESOURCES_ACTIVATED (0x12007 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_MIXER_DEST_ADPCM_RESOURCES_ACTIVATED (0x12008 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_MIXER_ALL_MIXER_EVENT_ENTRY_OPENED (0x12009 + cOCT6100_ERR_BASE)
+
+#define cOCT6100_ERR_ADPCM_CHAN_DISABLED (0x13000 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_ADPCM_CHAN_INVALID_HANDLE (0x13001 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_ADPCM_CHAN_INPUT_TIMESLOT (0x13002 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_ADPCM_CHAN_INPUT_STREAM (0x13003 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_ADPCM_CHAN_OUTPUT_TIMESLOT (0x13004 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_ADPCM_CHAN_OUTPUT_STREAM (0x13005 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_ADPCM_CHAN_INPUT_NUM_TSSTS (0x13006 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_ADPCM_CHAN_OUTPUT_NUM_TSSTS (0x13007 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_ADPCM_CHAN_INPUT_PCM_LAW (0x13008 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_ADPCM_CHAN_MODE (0x13009 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_ADPCM_CHAN_ENCODING_RATE (0x1300A + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_ADPCM_CHAN_DECODING_RATE (0x1300B + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_ADPCM_CHAN_INCOMPATIBLE_NUM_TSSTS (0x1300C + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_ADPCM_CHAN_NO_MORE_TSI_AVAILABLE (0x1300D + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_ADPCM_CHAN_OUTPUT_PCM_LAW (0x1300E + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_ADPCM_CHAN_ADPCM_NIBBLE_POSITION (0x1300F + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_ADPCM_CHAN_NOT_OPEN (0x13010 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_ADPCM_CHAN_ALL_ADPCM_CHAN_ARE_OPENED (0x13011 + cOCT6100_ERR_BASE)
+
+#define cOCT6100_ERR_CHIP_STATS_RESET (0x14000 + cOCT6100_ERR_BASE)
+
+
+
+#define cOCT6100_ERR_PRODUCTION_BIST_DISABLED (0x16000 + cOCT6100_ERR_BASE)
+
+#define cOCT6100_ERR_REMOTEDEBUG_RECEIVED_PKT_PAYLOAD (0x2C000 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_REMOTEDEBUG_RESPONSE_PKT_PAYLOAD (0x2C001 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_REMOTEDEBUG_RECEIVED_PKT_LENGTH (0x2C002 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_REMOTEDEBUG_RESPONSE_PKT_LENGTH (0x2C003 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_REMOTEDEBUG_ENDIAN_DETECTION_FIELD (0x2C004 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_REMOTEDEBUG_CHECKSUM (0x2C005 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_REMOTE_DEBUG_PARSING_ERROR (0x2C006 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_REMOTEDEBUG_ALL_SESSIONS_OPEN (0x2C007 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_REMOTEDEBUG_INVALID_PACKET (0x2C008 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_REMOTEDEBUG_TRANSACTION_ANSWERED (0x2C009 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_REMOTEDEBUG_INAVLID_SESSION_NUMBER (0x2C00A + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_REMOTEDEBUG_INVALID_HOT_CHAN_INDEX (0x2C00B + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_REMOTEDEBUG_DISABLED (0x2C00C + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_REMOTEDEBUG_INVALID_RPC_COMMAND_NUM (0x2C00D + cOCT6100_ERR_BASE)
+
+#define cOCT6100_ERR_TLV_TIMEOUT (0x31000 + cOCT6100_ERR_BASE)
+
+/* Fatal errors must always be greater or equal to 0xE000. */
+#define cOCT6100_ERR_FATAL (0xDE000 + cOCT6100_ERR_BASE)
+
+#define cOCT6100_ERR_FATAL_DRIVER_WRITE_API (0xDE000 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_FATAL_DRIVER_WRITE_EXT_API (0xDE001 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_FATAL_DRIVER_WRITE_SMEAR_API (0xDE002 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_FATAL_DRIVER_WRITE_BURST_API (0xDE003 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_FATAL_DRIVER_READ_API (0xDE004 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_FATAL_DRIVER_READ_BURST_API (0xDE005 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_FATAL_DRIVER_READ_DEBUG_API (0xDE006 + cOCT6100_ERR_BASE)
+#define cOCT6100_ERR_FATAL_DRIVER_WRITE_ARRAY_API (0xDE007 + cOCT6100_ERR_BASE)
+
+#define cOCT6100_FATAL_BASE (0xDF000 + cOCT6100_ERR_BASE)
+
+#define cOCT6100_ERR_FATAL_0 (0x00000 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_1 (0x00001 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_2 (0x00002 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_3 (0x00003 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_4 (0x00004 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_5 (0x00005 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_6 (0x00006 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_7 (0x00007 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_8 (0x00008 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_9 (0x00009 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_A (0x0000A + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_B (0x0000B + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_C (0x0000C + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_D (0x0000D + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_E (0x0000E + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_F (0x0000F + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_10 (0x00010 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_11 (0x00011 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_12 (0x00012 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_13 (0x00013 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_14 (0x00014 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_15 (0x00015 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_16 (0x00016 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_17 (0x00017 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_18 (0x00018 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_19 (0x00019 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_1A (0x0001A + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_1B (0x0001B + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_1C (0x0001C + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_1D (0x0001D + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_1E (0x0001E + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_1F (0x0001F + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_20 (0x00020 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_21 (0x00021 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_22 (0x00022 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_23 (0x00023 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_24 (0x00024 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_25 (0x00025 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_26 (0x00026 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_27 (0x00027 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_28 (0x00028 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_29 (0x00029 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_2A (0x0002A + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_2B (0x0002B + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_2C (0x0002C + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_2D (0x0002D + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_2E (0x0002E + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_2F (0x0002F + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_30 (0x00030 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_31 (0x00031 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_32 (0x00032 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_33 (0x00033 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_34 (0x00034 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_35 (0x00035 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_36 (0x00036 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_37 (0x00037 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_38 (0x00038 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_39 (0x00039 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_3A (0x0003A + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_3B (0x0003B + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_3C (0x0003C + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_3D (0x0003D + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_3E (0x0003E + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_3F (0x0003F + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_40 (0x00040 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_41 (0x00041 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_42 (0x00042 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_43 (0x00043 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_44 (0x00044 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_45 (0x00045 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_46 (0x00046 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_47 (0x00047 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_48 (0x00048 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_49 (0x00049 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_4A (0x0004A + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_4B (0x0004B + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_4C (0x0004C + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_4D (0x0004D + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_4E (0x0004E + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_4F (0x0004F + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_50 (0x00050 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_51 (0x00051 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_52 (0x00052 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_53 (0x00053 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_54 (0x00054 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_55 (0x00055 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_56 (0x00056 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_57 (0x00057 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_58 (0x00058 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_59 (0x00059 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_5A (0x0005A + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_5B (0x0005B + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_5C (0x0005C + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_5D (0x0005D + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_5E (0x0005E + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_5F (0x0005F + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_60 (0x00060 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_61 (0x00061 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_62 (0x00062 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_63 (0x00063 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_64 (0x00064 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_65 (0x00065 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_66 (0x00066 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_67 (0x00067 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_68 (0x00068 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_69 (0x00069 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_6A (0x0006A + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_6B (0x0006B + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_6C (0x0006C + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_6D (0x0006D + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_6E (0x0006E + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_6F (0x0006F + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_70 (0x00070 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_71 (0x00071 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_72 (0x00072 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_73 (0x00073 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_74 (0x00074 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_75 (0x00075 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_76 (0x00076 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_77 (0x00077 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_78 (0x00078 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_79 (0x00079 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_7A (0x0007A + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_7B (0x0007B + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_7C (0x0007C + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_7D (0x0007D + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_7E (0x0007E + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_7F (0x0007F + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_80 (0x00080 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_81 (0x00081 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_82 (0x00082 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_83 (0x00083 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_84 (0x00084 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_85 (0x00085 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_86 (0x00086 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_87 (0x00087 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_88 (0x00088 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_89 (0x00089 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_8A (0x0008A + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_8B (0x0008B + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_8C (0x0008C + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_8D (0x0008D + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_8E (0x0008E + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_8F (0x0008F + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_90 (0x00090 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_91 (0x00091 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_92 (0x00092 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_93 (0x00093 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_94 (0x00094 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_95 (0x00095 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_96 (0x00096 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_97 (0x00097 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_98 (0x00098 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_99 (0x00099 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_9A (0x0009A + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_9B (0x0009B + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_9C (0x0009C + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_9D (0x0009D + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_9E (0x0009E + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_9F (0x0009F + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_A0 (0x000A0 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_A1 (0x000A1 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_A2 (0x000A2 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_A3 (0x000A3 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_A4 (0x000A4 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_A5 (0x000A5 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_A6 (0x000A6 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_A7 (0x000A7 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_A8 (0x000A8 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_A9 (0x000A9 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_AA (0x000AA + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_AB (0x000AB + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_AC (0x000AC + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_AD (0x000AD + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_AE (0x000AE + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_AF (0x000AF + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_B0 (0x000B0 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_B1 (0x000B1 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_B2 (0x000B2 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_B3 (0x000B3 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_B4 (0x000B4 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_B5 (0x000B5 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_B6 (0x000B6 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_B7 (0x000B7 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_B8 (0x000B8 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_B9 (0x000B9 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_BA (0x000BA + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_BB (0x000BB + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_BC (0x000BC + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_BD (0x000BD + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_BE (0x000BE + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_BF (0x000BF + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_C0 (0x000C0 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_C1 (0x000C1 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_C2 (0x000C2 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_C3 (0x000C3 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_C4 (0x000C4 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_C5 (0x000C5 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_C6 (0x000C6 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_C7 (0x000C7 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_C8 (0x000C8 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_C9 (0x000C9 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_CA (0x000CA + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_CB (0x000CB + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_CC (0x000CC + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_CD (0x000CD + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_CE (0x000CE + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_CF (0x000CF + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_D0 (0x000D0 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_D1 (0x000D1 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_D2 (0x000D2 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_D3 (0x000D3 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_D4 (0x000D4 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_D5 (0x000D5 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_D6 (0x000D6 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_D7 (0x000D7 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_D8 (0x000D8 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_D9 (0x000D9 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_DA (0x000DA + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_DB (0x000DB + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_DC (0x000DC + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_DD (0x000DD + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_DE (0x000DE + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_DF (0x000DF + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_E0 (0x000E0 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_E1 (0x000E1 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_E2 (0x000E2 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_E3 (0x000E3 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_E4 (0x000E4 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_E5 (0x000E5 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_E6 (0x000E6 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_E7 (0x000E7 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_E8 (0x000E8 + cOCT6100_FATAL_BASE)
+#define cOCT6100_ERR_FATAL_E9 (0x000E9 + cOCT6100_FATAL_BASE)
+
+#endif /* __OCT6100_ERRORS_H__ */
diff --git a/software/include/oct6100api/oct6100_events_inst.h b/software/include/oct6100api/oct6100_events_inst.h
new file mode 100644
index 0000000..8d0a049
--- /dev/null
+++ b/software/include/oct6100api/oct6100_events_inst.h
@@ -0,0 +1,69 @@
+#ifndef cOCT6100_REMOVE_EVENTS
+/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
+
+File: oct6100_events_inst.h
+
+ Copyright (c) 2001-2005 Octasic Inc.
+
+Description:
+
+ File containing all defines, macros, and structures pertaining to the file
+ oct6100_events.c. All elements defined in this file are for public
+ usage of the API. All private elements are defined in the
+ oct6100_events_priv.h file.
+
+This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API is
+free software; you can redistribute it and/or modify it under the terms of
+the GNU General Public License as published by the Free Software Foundation;
+either version 2 of the License, or (at your option) any later version.
+
+The OCT6100 GPL API is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with the OCT6100 GPL API; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+$Octasic_Release: OCT612xAPI-01.00-PR38 $
+
+$Octasic_Revision: 11 $
+
+\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
+
+#ifndef __OCT6100_EVENTS_INST_H__
+#define __OCT6100_EVENTS_INST_H__
+
+/***************************** INCLUDE FILES *******************************/
+
+
+/***************************** DEFINES *************************************/
+
+
+/***************************** TYPES ***************************************/
+
+typedef struct _OCT6100_API_TONE_EVENT_
+{
+ UINT32 ulChannelHandle;
+ UINT32 ulUserChanId;
+ UINT32 ulToneDetected; /* Tone number of the tone detected. */
+ UINT32 ulTimestamp;
+ UINT32 ulEventType;
+ UINT32 ulExtToneDetectionPort;
+
+} tOCT6100_API_TONE_EVENT, *tPOCT6100_API_TONE_EVENT;
+
+typedef struct _OCT6100_API_BUFFER_PLAYOUT_EVENT_
+{
+ UINT32 ulChannelHandle;
+ UINT32 ulUserChanId;
+ UINT32 ulChannelPort;
+ UINT32 ulTimestamp;
+ UINT32 ulUserEventId;
+ UINT32 ulEventType;
+
+} tOCT6100_API_BUFFER_PLAYOUT_EVENT, *tPOCT6100_API_BUFFER_PLAYOUT_EVENT;
+
+#endif /* __OCT6100_EVENTS_INST_H__ */
+#endif /* cOCT6100_REMOVE_EVENTS */
diff --git a/software/include/oct6100api/oct6100_events_pub.h b/software/include/oct6100api/oct6100_events_pub.h
new file mode 100644
index 0000000..837df71
--- /dev/null
+++ b/software/include/oct6100api/oct6100_events_pub.h
@@ -0,0 +1,112 @@
+#ifndef cOCT6100_REMOVE_EVENTS
+/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
+
+File: oct6100_events_pub.h
+
+ Copyright (c) 2001-2005 Octasic Inc.
+
+Description:
+
+ File containing all defines, macros, and structures pertaining to the file
+ oct6100_events.c. All elements defined in this file are for public
+ usage of the API. All private elements are defined in the
+ oct6100_events_priv.h file.
+
+This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API is
+free software; you can redistribute it and/or modify it under the terms of
+the GNU General Public License as published by the Free Software Foundation;
+either version 2 of the License, or (at your option) any later version.
+
+The OCT6100 GPL API is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with the OCT6100 GPL API; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+$Octasic_Release: OCT612xAPI-01.00-PR38 $
+
+$Octasic_Revision: 13 $
+
+\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
+
+#ifndef __OCT6100_EVENTS_PUB_H__
+#define __OCT6100_EVENTS_PUB_H__
+
+/***************************** INCLUDE FILES *******************************/
+
+
+/***************************** DEFINES *************************************/
+
+
+/***************************** TYPES ***************************************/
+
+typedef struct _OCT6100_TONE_EVENT_
+{
+ UINT32 ulChannelHndl;
+ UINT32 ulUserChanId;
+
+ UINT32 ulToneDetected;
+
+ UINT32 ulTimestamp;
+ UINT32 ulEventType;
+
+ UINT32 ulExtToneDetectionPort;
+
+} tOCT6100_TONE_EVENT, *tPOCT6100_TONE_EVENT;
+
+typedef struct _OCT6100_EVENT_GET_TONE_
+{
+ BOOL fMoreEvents;
+ BOOL fResetBufs;
+
+ UINT32 ulMaxToneEvent;
+ UINT32 ulNumValidToneEvent;
+
+ tPOCT6100_TONE_EVENT pToneEvent;
+
+} tOCT6100_EVENT_GET_TONE, *tPOCT6100_EVENT_GET_TONE;
+
+typedef struct _OCT6100_BUFFER_PLAYOUT_EVENT_
+{
+ UINT32 ulChannelHndl;
+ UINT32 ulUserChanId;
+ UINT32 ulChannelPort;
+
+ UINT32 ulTimestamp;
+
+ UINT32 ulUserEventId;
+ UINT32 ulEventType;
+
+} tOCT6100_BUFFER_PLAYOUT_EVENT, *tPOCT6100_BUFFER_PLAYOUT_EVENT;
+
+typedef struct _OCT6100_BUFFER_PLAYOUT_GET_EVENT_
+{
+ BOOL fMoreEvents;
+ BOOL fResetBufs;
+
+ UINT32 ulMaxEvent;
+ UINT32 ulNumValidEvent;
+
+ tPOCT6100_BUFFER_PLAYOUT_EVENT pBufferPlayoutEvent;
+
+} tOCT6100_BUFFER_PLAYOUT_GET_EVENT, *tPOCT6100_BUFFER_PLAYOUT_GET_EVENT;
+
+/************************** FUNCTION PROTOTYPES *****************************/
+
+UINT32 Oct6100EventGetToneDef(
+ OUT tPOCT6100_EVENT_GET_TONE f_pEventGetTone );
+UINT32 Oct6100EventGetTone(
+ IN OUT tPOCT6100_INSTANCE_API f_pApiInst,
+ IN OUT tPOCT6100_EVENT_GET_TONE f_pEventGetTone );
+
+UINT32 Oct6100BufferPlayoutGetEventDef(
+ OUT tPOCT6100_BUFFER_PLAYOUT_GET_EVENT f_pBufPlayoutGetEvent );
+UINT32 Oct6100BufferPlayoutGetEvent(
+ IN OUT tPOCT6100_INSTANCE_API f_pApiInst,
+ IN OUT tPOCT6100_BUFFER_PLAYOUT_GET_EVENT f_pBufPlayoutGetEvent );
+
+#endif /* __OCT6100_EVENTS_PUB_H__ */
+#endif /* cOCT6100_REMOVE_EVENTS */
diff --git a/software/include/oct6100api/oct6100_interrupts_inst.h b/software/include/oct6100api/oct6100_interrupts_inst.h
new file mode 100644
index 0000000..00bfd4c
--- /dev/null
+++ b/software/include/oct6100api/oct6100_interrupts_inst.h
@@ -0,0 +1,134 @@
+/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
+
+File: oct6100_interrupts_inst.h
+
+ Copyright (c) 2001-2005 Octasic Inc.
+
+Description:
+
+ File containing all defines, macros, and structures pertaining to the file
+ oct6100_interrupts.c. All elements defined in this file are for public
+ usage of the API. All private elements are defined in the
+ oct6100_interrupts_priv.h file.
+
+This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API is
+free software; you can redistribute it and/or modify it under the terms of
+the GNU General Public License as published by the Free Software Foundation;
+either version 2 of the License, or (at your option) any later version.
+
+The OCT6100 GPL API is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with the OCT6100 GPL API; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+$Octasic_Release: OCT612xAPI-01.00-PR38 $
+
+$Octasic_Revision: 16 $
+
+\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
+
+#ifndef __OCT6100_INTERRUPTS_INST_H__
+#define __OCT6100_INTERRUPTS_INST_H__
+
+/***************************** INCLUDE FILES *******************************/
+
+
+/***************************** DEFINES *************************************/
+
+
+/***************************** TYPES ***************************************/
+
+typedef struct _OCT6100_API_INTRPT_CONFIG_
+{
+ /* The configuration of each group of interrupts. Each can have one of the
+ following values:
+ cOCT6100_INTRPT_DISABLE,
+ cOCT6100_INTRPT_NO_TIMEOUT,
+ cOCT6100_INTRPT_TIMEOUT. */
+ UINT8 byFatalGeneralConfig;
+ UINT8 byFatalMemoryConfig;
+ UINT8 byErrorMemoryConfig;
+ UINT8 byErrorOverflowToneEventsConfig;
+ UINT8 byErrorH100Config;
+
+ /* The timeout value for each interrupt group, if the corresponding
+ configuration variable is set to cOCT6100_INTRPT_TIMEOUT. This
+ value is kept in mclk cycles. */
+ UINT32 ulFatalMemoryTimeoutMclk;
+ UINT32 ulErrorMemoryTimeoutMclk;
+ UINT32 ulErrorOverflowToneEventsTimeoutMclk;
+ UINT32 ulErrorH100TimeoutMclk;
+
+} tOCT6100_API_INTRPT_CONFIG, *tPOCT6100_API_INTRPT_CONFIG;
+
+typedef struct _OCT6100_API_INTRPT_MANAGE_
+{
+ /* Number of mclk cycles in 1ms. */
+ UINT32 ulNumMclkCyclesIn1Ms;
+
+ /* Whether the mclk interrupt is active. */
+ UINT8 fMclkIntrptActive;
+ UINT32 ulNextMclkIntrptTimeHigh;
+ UINT32 ulNextMclkIntrptTimeLow;
+
+ /* Mclk time read from registers. */
+ UINT32 ulRegMclkTimeHigh;
+ UINT32 ulRegMclkTimeLow;
+
+ /* Used by the interrupt service routine. */
+ UINT16 usRegister102h;
+ UINT16 usRegister202h;
+ UINT16 usRegister302h;
+ UINT16 usRegister502h;
+ UINT16 usRegister702h;
+
+ /* The state of each interrupt group. Can be one of the following:
+ cOCT6100_INTRPT_ACTIVE,
+ cOCT6100_INTRPT_WILL_TIMEOUT,
+ cOCT6100_INTRPT_IN_TIMEOUT,
+ cOCT6100_INTRPT_WILL_DISABLED. */
+ UINT16 byFatalGeneralState;
+ UINT16 byFatalMemoryState;
+ UINT16 byErrorMemoryState;
+ UINT16 byErrorOverflowToneEventsState;
+ UINT16 byErrorH100State;
+
+ /* The time at which each disabled interrupt was disabled, in mclk cycles. */
+ UINT32 ulFatalMemoryDisableMclkHigh;
+ UINT32 ulFatalMemoryDisableMclkLow;
+ UINT32 ulErrorMemoryDisableMclkHigh;
+ UINT32 ulErrorMemoryDisableMclkLow;
+ UINT32 ulErrorOverflowToneEventsDisableMclkHigh;
+ UINT32 ulErrorOverflowToneEventsDisableMclkLow;
+ UINT32 ulErrorH100DisableMclkHigh;
+ UINT32 ulErrorH100DisableMclkLow;
+
+ /* The time at which each disabled interrupt group is to be reenabled,
+ in number of mclk cycles. */
+ UINT32 ulFatalGeneralEnableMclkHigh;
+ UINT32 ulFatalGeneralEnableMclkLow;
+ UINT32 ulFatalMemoryEnableMclkHigh;
+ UINT32 ulFatalMemoryEnableMclkLow;
+ UINT32 ulErrorMemoryEnableMclkHigh;
+ UINT32 ulErrorMemoryEnableMclkLow;
+ UINT32 ulErrorOverflowToneEventsEnableMclkHigh;
+ UINT32 ulErrorOverflowToneEventsEnableMclkLow;
+ UINT32 ulErrorH100EnableMclkHigh;
+ UINT32 ulErrorH100EnableMclkLow;
+
+ /* If this is set, buffer playout events are pending. */
+ UINT8 fBufferPlayoutEventsPending;
+ /* If this is set, tone events are pending. */
+ UINT8 fToneEventsPending;
+
+
+
+ UINT8 fIsrCalled;
+
+} tOCT6100_API_INTRPT_MANAGE, *tPOCT6100_API_INTRPT_MANAGE;
+
+#endif /* __OCT6100_INTERRUPTS_INST_H__ */
diff --git a/software/include/oct6100api/oct6100_interrupts_pub.h b/software/include/oct6100api/oct6100_interrupts_pub.h
new file mode 100644
index 0000000..620d0fc
--- /dev/null
+++ b/software/include/oct6100api/oct6100_interrupts_pub.h
@@ -0,0 +1,102 @@
+/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
+
+File: oct6100_interrupts_pub.h
+
+ Copyright (c) 2001-2005 Octasic Inc.
+
+Description:
+
+ File containing all defines, macros, and structures pertaining to the file
+ oct6100_interrupts.c. All elements defined in this file are for public
+ usage of the API. All private elements are defined in the
+ oct6100_interrupts_priv.h file.
+
+This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API is
+free software; you can redistribute it and/or modify it under the terms of
+the GNU General Public License as published by the Free Software Foundation;
+either version 2 of the License, or (at your option) any later version.
+
+The OCT6100 GPL API is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with the OCT6100 GPL API; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+$Octasic_Release: OCT612xAPI-01.00-PR38 $
+
+$Octasic_Revision: 23 $
+
+\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
+
+#ifndef __OCT6100_INTERRUPTS_PUB_H__
+#define __OCT6100_INTERRUPTS_PUB_H__
+
+/***************************** INCLUDE FILES *******************************/
+
+
+/***************************** DEFINES *************************************/
+
+
+/***************************** TYPES ***************************************/
+
+typedef struct _OCT6100_INTERRUPT_CONFIGURE_
+{
+ UINT32 ulFatalGeneralConfig;
+ UINT32 ulFatalMemoryConfig;
+
+ UINT32 ulErrorMemoryConfig;
+ UINT32 ulErrorOverflowToneEventsConfig;
+ UINT32 ulErrorH100Config;
+
+ UINT32 ulFatalMemoryTimeout;
+ UINT32 ulErrorMemoryTimeout;
+ UINT32 ulErrorOverflowToneEventsTimeout;
+ UINT32 ulErrorH100Timeout;
+
+} tOCT6100_INTERRUPT_CONFIGURE, *tPOCT6100_INTERRUPT_CONFIGURE;
+
+typedef struct _OCT6100_INTERRUPT_FLAGS_
+{
+ BOOL fFatalGeneral;
+ UINT32 ulFatalGeneralFlags;
+
+ BOOL fFatalReadTimeout;
+
+ BOOL fErrorRefreshTooLate;
+ BOOL fErrorPllJitter;
+
+ BOOL fErrorOverflowToneEvents;
+
+ BOOL fErrorH100OutOfSync;
+ BOOL fErrorH100ClkA;
+ BOOL fErrorH100ClkB;
+ BOOL fErrorH100FrameA;
+
+ BOOL fToneEventsPending;
+ BOOL fBufferPlayoutEventsPending;
+
+ BOOL fApiSynch;
+
+
+
+} tOCT6100_INTERRUPT_FLAGS, *tPOCT6100_INTERRUPT_FLAGS;
+
+/************************** FUNCTION PROTOTYPES *****************************/
+
+UINT32 Oct6100InterruptConfigureDef(
+ OUT tPOCT6100_INTERRUPT_CONFIGURE f_pConfigInts );
+UINT32 Oct6100InterruptConfigure(
+ IN tPOCT6100_INSTANCE_API f_pApiInst,
+ IN OUT tPOCT6100_INTERRUPT_CONFIGURE f_pConfigInts );
+
+UINT32 Oct6100InterruptServiceRoutineDef(
+ OUT tPOCT6100_INTERRUPT_FLAGS f_pIntFlags );
+UINT32 Oct6100InterruptServiceRoutine(
+ IN tPOCT6100_INSTANCE_API f_pApiInst,
+ IN OUT tPOCT6100_INTERRUPT_FLAGS f_pIntFlags );
+
+#endif /* __OCT6100_INTERRUPTS_PUB_H__ */
+
diff --git a/software/include/oct6100api/oct6100_mixer_inst.h b/software/include/oct6100api/oct6100_mixer_inst.h
new file mode 100644
index 0000000..2c7707f
--- /dev/null
+++ b/software/include/oct6100api/oct6100_mixer_inst.h
@@ -0,0 +1,86 @@
+/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
+
+File: oct6100_mixer_inst.h
+
+ Copyright (c) 2001-2005 Octasic Inc.
+
+Description:
+
+ File containing all defines, macros, and structures pertaining to the file
+ oct6100_mixer.c. All elements defined in this file are for public
+ usage of the API. All private elements are defined in the
+ oct6100_mixer_priv.h file.
+
+This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API is
+free software; you can redistribute it and/or modify it under the terms of
+the GNU General Public License as published by the Free Software Foundation;
+either version 2 of the License, or (at your option) any later version.
+
+The OCT6100 GPL API is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with the OCT6100 GPL API; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+$Octasic_Release: OCT612xAPI-01.00-PR38 $
+
+$Octasic_Revision: 13 $
+
+\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
+
+#ifndef __OCT6100_MIXER_INST_H__
+#define __OCT6100_MIXER_INST_H__
+
+/***************************** INCLUDE FILES *******************************/
+
+
+/***************************** DEFINES *************************************/
+
+
+/***************************** TYPES ***************************************/
+
+typedef struct _OCT6100_API_MIXER_EVENT_
+{
+ /* Flag specifying whether the entry is used or not. */
+ UINT8 fReserved;
+
+ /* Type of the event.*/
+ UINT16 usEventType;
+
+ /* Source channel index */
+ UINT16 usSourceChanIndex;
+
+ /* Destination channel index */
+ UINT16 usDestinationChanIndex;
+
+ /* Pointer to the next entry.*/
+ UINT16 usNextEventPtr;
+
+} tOCT6100_API_MIXER_EVENT, *tPOCT6100_API_MIXER_EVENT;
+
+
+typedef struct _OCT6100_API_COPY_EVENT_
+{
+ /* Flag specifying whether the entry is used or not. */
+ UINT8 fReserved;
+
+ /* Count used to manage entry handles allocated to user. */
+ UINT8 byEntryOpenCnt;
+
+ /* Source + destination ports. */
+ UINT8 bySourcePort;
+ UINT8 byDestinationPort;
+
+ /* Index of the channels associated to this event.*/
+ UINT16 usSourceChanIndex;
+ UINT16 usDestinationChanIndex;
+
+ UINT16 usMixerEventIndex;
+
+} tOCT6100_API_COPY_EVENT, *tPOCT6100_API_COPY_EVENT;
+
+
+#endif /* __OCT6100_MIXER_INST_H__ */
diff --git a/software/include/oct6100api/oct6100_mixer_pub.h b/software/include/oct6100api/oct6100_mixer_pub.h
new file mode 100644
index 0000000..004d1e5
--- /dev/null
+++ b/software/include/oct6100api/oct6100_mixer_pub.h
@@ -0,0 +1,77 @@
+/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
+
+File: oct6100_mixer_pub.h
+
+ Copyright (c) 2001-2005 Octasic Inc.
+
+Description:
+
+ File containing all defines, macros, and structures pertaining to the file
+ oct6100_mixer.c. All elements defined in this file are for public
+ usage of the API. All private elements are defined in the
+ oct6100_mixer_priv.h file.
+
+This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API is
+free software; you can redistribute it and/or modify it under the terms of
+the GNU General Public License as published by the Free Software Foundation;
+either version 2 of the License, or (at your option) any later version.
+
+The OCT6100 GPL API is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with the OCT6100 GPL API; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+$Octasic_Release: OCT612xAPI-01.00-PR38 $
+
+$Octasic_Revision: 7 $
+
+\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
+
+#ifndef __OCT6100_MIXER_PUB_H__
+#define __OCT6100_MIXER_PUB_H__
+
+/***************************** INCLUDE FILES *******************************/
+
+
+/***************************** DEFINES *************************************/
+
+
+/***************************** TYPES ***************************************/
+
+typedef struct _OCT6100_COPY_EVENT_CREATE_
+{
+ PUINT32 pulCopyEventHndl;
+
+ UINT32 ulSourceChanHndl;
+ UINT32 ulSourcePort;
+
+ UINT32 ulDestinationChanHndl;
+ UINT32 ulDestinationPort;
+
+} tOCT6100_COPY_EVENT_CREATE, *tPOCT6100_COPY_EVENT_CREATE;
+
+typedef struct _OCT6100_COPY_EVENT_DESTROY_
+{
+ UINT32 ulCopyEventHndl;
+
+} tOCT6100_COPY_EVENT_DESTROY, *tPOCT6100_COPY_EVENT_DESTROY;
+
+/************************** FUNCTION PROTOTYPES *****************************/
+
+UINT32 Oct6100MixerCopyEventCreateDef(
+ OUT tPOCT6100_COPY_EVENT_CREATE f_pCopyEventCreate );
+UINT32 Oct6100MixerCopyEventCreate(
+ IN OUT tPOCT6100_INSTANCE_API f_pApiInst,
+ IN OUT tPOCT6100_COPY_EVENT_CREATE f_pCopyEventCreate );
+
+UINT32 Oct6100MixerCopyEventDestroyDef(
+ OUT tPOCT6100_COPY_EVENT_DESTROY f_pCopyEventDestroy );
+UINT32 Oct6100MixerCopyEventDestroy(
+ IN OUT tPOCT6100_INSTANCE_API f_pApiInst,
+ IN OUT tPOCT6100_COPY_EVENT_DESTROY f_pCopyEventDestroy );
+
+#endif /* __OCT6100_MIXER_PUB_H__ */
diff --git a/software/include/oct6100api/oct6100_phasing_tsst_inst.h b/software/include/oct6100api/oct6100_phasing_tsst_inst.h
new file mode 100644
index 0000000..5624238
--- /dev/null
+++ b/software/include/oct6100api/oct6100_phasing_tsst_inst.h
@@ -0,0 +1,68 @@
+/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
+
+File: oct6100_phasing_tsst_inst.h
+
+ Copyright (c) 2001-2005 Octasic Inc.
+
+Description:
+
+ File containing all defines, macros, and structures pertaining to the file
+ oct6100_phasing_tsst.c. All elements defined in this file are for public
+ usage of the API. All private elements are defined in the
+ oct6100_phasing_tsst_priv.h file.
+
+This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API is
+free software; you can redistribute it and/or modify it under the terms of
+the GNU General Public License as published by the Free Software Foundation;
+either version 2 of the License, or (at your option) any later version.
+
+The OCT6100 GPL API is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with the OCT6100 GPL API; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+$Octasic_Release: OCT612xAPI-01.00-PR38 $
+
+$Octasic_Revision: 9 $
+
+\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
+
+#ifndef __OCT6100_PHASING_TSST_INST_H__
+#define __OCT6100_PHASING_TSST_INST_H__
+
+/***************************** INCLUDE FILES *******************************/
+
+
+/***************************** DEFINES *************************************/
+
+
+/***************************** TYPES ***************************************/
+
+typedef struct _OCT6100_API_PHASING_TSST_
+{
+ /* Flag specifying whether the entry is used or not. */
+ UINT8 fReserved;
+
+ /* Count used to manage entry handles allocated to user. */
+ UINT8 byEntryOpenCnt;
+
+ /* Count of number of resources connected in some way to this buffer. */
+ UINT16 usDependencyCnt;
+
+ /* TDM timeslot and stream where the counter is read. */
+ UINT16 usStream;
+ UINT16 usTimeslot;
+
+ /* Length of the phasing TSST counter. */
+ UINT16 usPhasingLength;
+
+ /* TSST control index where the counter comes from. */
+ UINT16 usPhasingTsstIndex;
+
+} tOCT6100_API_PHASING_TSST, *tPOCT6100_API_PHASING_TSST;
+
+#endif /* __OCT6100_PHASING_TSST_INST_H__ */
diff --git a/software/include/oct6100api/oct6100_phasing_tsst_pub.h b/software/include/oct6100api/oct6100_phasing_tsst_pub.h
new file mode 100644
index 0000000..b5f5e8e
--- /dev/null
+++ b/software/include/oct6100api/oct6100_phasing_tsst_pub.h
@@ -0,0 +1,77 @@
+/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
+
+File: oct6100_phasing_tsst_pub.h
+
+ Copyright (c) 2001-2005 Octasic Inc.
+
+Description:
+
+ File containing all defines, macros, and structures pertaining to the file
+ oct6100_phasing_tsst.c. All elements defined in this file are for public
+ usage of the API. All private elements are defined in the
+ oct6100_phasing_tsst_priv.h file.
+
+This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API is
+free software; you can redistribute it and/or modify it under the terms of
+the GNU General Public License as published by the Free Software Foundation;
+either version 2 of the License, or (at your option) any later version.
+
+The OCT6100 GPL API is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with the OCT6100 GPL API; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+$Octasic_Release: OCT612xAPI-01.00-PR38 $
+
+$Octasic_Revision: 9 $
+
+\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
+
+#ifndef __OCT6100_PHASING_TSST_PUB_H__
+#define __OCT6100_PHASING_TSST_PUB_H__
+
+/***************************** INCLUDE FILES *******************************/
+
+
+/***************************** DEFINES *************************************/
+
+
+/***************************** TYPES ***************************************/
+
+typedef struct _OCT6100_PHASING_TSST_OPEN_
+{
+ PUINT32 pulPhasingTsstHndl;
+
+ UINT32 ulPhasingLength;
+ UINT32 ulTimeslot;
+ UINT32 ulStream;
+
+
+
+} tOCT6100_PHASING_TSST_OPEN, *tPOCT6100_PHASING_TSST_OPEN;
+
+typedef struct _OCT6100_PHASING_TSST_CLOSE_
+{
+ UINT32 ulPhasingTsstHndl;
+
+} tOCT6100_PHASING_TSST_CLOSE, *tPOCT6100_PHASING_TSST_CLOSE;
+
+/************************** FUNCTION PROTOTYPES *****************************/
+
+UINT32 Oct6100PhasingTsstOpenDef(
+ OUT tPOCT6100_PHASING_TSST_OPEN f_pPhasingTsstOpen );
+UINT32 Oct6100PhasingTsstOpen(
+ IN tPOCT6100_INSTANCE_API f_pApiInstance,
+ IN OUT tPOCT6100_PHASING_TSST_OPEN f_pPhasingTsstOpen );
+
+UINT32 Oct6100PhasingTsstCloseDef(
+ OUT tPOCT6100_PHASING_TSST_CLOSE f_pPhasingTsstClose );
+UINT32 Oct6100PhasingTsstClose(
+ IN tPOCT6100_INSTANCE_API f_pApiInstance,
+ IN OUT tPOCT6100_PHASING_TSST_CLOSE f_pPhasingTsstClose );
+
+#endif /* __OCT6100_PHASING_TSST_PUB_H__ */
diff --git a/software/include/oct6100api/oct6100_playout_buf_inst.h b/software/include/oct6100api/oct6100_playout_buf_inst.h
new file mode 100644
index 0000000..4dce9cb
--- /dev/null
+++ b/software/include/oct6100api/oct6100_playout_buf_inst.h
@@ -0,0 +1,88 @@
+/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
+
+File: oct6100_playout_buf_inst.h
+
+ Copyright (c) 2001-2005 Octasic Inc.
+
+Description:
+
+ File containing all defines, macros, and structures pertaining to the file
+ oct6100_playout_buf.c. All elements defined in this file are for public
+ usage of the API. All private elements are defined in the
+ oct6100_playout_buf_priv.h file.
+
+This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API is
+free software; you can redistribute it and/or modify it under the terms of
+the GNU General Public License as published by the Free Software Foundation;
+either version 2 of the License, or (at your option) any later version.
+
+The OCT6100 GPL API is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with the OCT6100 GPL API; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+$Octasic_Release: OCT612xAPI-01.00-PR38 $
+
+$Octasic_Revision: 9 $
+
+\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
+
+#ifndef __OCT6100_PLAYOUT_BUF_INST_H__
+#define __OCT6100_PLAYOUT_BUF_INST_H__
+
+/***************************** INCLUDE FILES *******************************/
+
+
+/***************************** DEFINES *************************************/
+
+#define mOCT6100_GET_BUFFER_MEMORY_NODE_LIST_PNT( pSharedInfo, pList ) \
+ pList = ( tPOCT6100_API_BUFFER_PLAYOUT_MALLOC_NODE )(( UINT32 )pSharedInfo + pSharedInfo->ulPlayoutBufMemoryNodeListOfst );
+
+#define mOCT6100_GET_BUFFER_MEMORY_NODE_ENTRY_PNT( pSharedInfo, pEntry, ulIndex ) \
+ pEntry = (( tPOCT6100_API_BUFFER_PLAYOUT_MALLOC_NODE )(( UINT32 )pSharedInfo + pSharedInfo->ulPlayoutBufMemoryNodeListOfst)) + ulIndex;
+
+/***************************** TYPES ***************************************/
+
+typedef struct _OCT6100_API_BUFFER_PLAYOUT_MALLOC_NODE_
+{
+ /* Next node. */
+ UINT32 ulNext;
+
+ /* Previous node. */
+ UINT32 ulPrevious;
+
+ /* Start address of this node. */
+ UINT32 ulStartAddress;
+
+ /* Size of this node. */
+ UINT32 ulSize;
+
+ /* Allocated node? Free node? */
+ UINT8 fAllocated;
+
+} tOCT6100_API_BUFFER_PLAYOUT_MALLOC_NODE, *tPOCT6100_API_BUFFER_PLAYOUT_MALLOC_NODE;
+
+typedef struct _OCT6100_API_BUFFER_
+{
+ /* Flag specifying whether the entry is used or not. */
+ UINT8 fReserved;
+
+ /* Pcm law of the buffer. */
+ UINT8 byBufferPcmLaw;
+
+ /* Number of channels currently playing this buffer.*/
+ UINT16 usDependencyCnt;
+
+ /* Length of the buffer ( in bytes ).*/
+ UINT32 ulBufferSize;
+
+ /* Address in external memory of the buffer. */
+ UINT32 ulBufferBase;
+
+} tOCT6100_API_BUFFER, *tPOCT6100_API_BUFFER;
+
+#endif /* __OCT6100_PLAYOUT_BUF_INST_H__ */
diff --git a/software/include/oct6100api/oct6100_playout_buf_pub.h b/software/include/oct6100api/oct6100_playout_buf_pub.h
new file mode 100644
index 0000000..88abaca
--- /dev/null
+++ b/software/include/oct6100api/oct6100_playout_buf_pub.h
@@ -0,0 +1,183 @@
+/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
+
+File: oct6100_playout_buf_pub.h
+
+ Copyright (c) 2001-2005 Octasic Inc.
+
+Description:
+
+ File containing all defines, macros, and structures pertaining to the file
+ oct6100_playout_buf.c. All elements defined in this file are for public
+ usage of the API. All private elements are defined in the
+ oct6100_playout_buf_priv.h file.
+
+This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API is
+free software; you can redistribute it and/or modify it under the terms of
+the GNU General Public License as published by the Free Software Foundation;
+either version 2 of the License, or (at your option) any later version.
+
+The OCT6100 GPL API is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with the OCT6100 GPL API; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+$Octasic_Release: OCT612xAPI-01.00-PR38 $
+
+$Octasic_Revision: 21 $
+
+\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
+
+#ifndef __OCT6100_PLAYOUT_BUF_PUB_H__
+#define __OCT6100_PLAYOUT_BUF_PUB_H__
+
+/***************************** INCLUDE FILES *******************************/
+
+
+/***************************** DEFINES *************************************/
+
+
+/***************************** TYPES ***************************************/
+
+typedef struct _OCT6100_BUFFER_LOAD_
+{
+ PUINT32 pulBufferIndex; /* Index identifying the buffer. */
+ PUINT32 pulPlayoutFreeMemSize; /* Amount of free memory available for other buffers. */
+
+ PUINT8 pbyBufferPattern; /* A byte pointer pointing to a valid buffer to be loaded into the chip's external memory. */
+ UINT32 ulBufferSize; /* Size of the buffer loaded into external memory. */
+
+ UINT32 ulBufferPcmLaw; /* Buffer PCM law. */
+
+} tOCT6100_BUFFER_LOAD, *tPOCT6100_BUFFER_LOAD;
+
+typedef struct _OCT6100_BUFFER_LOAD_BLOCK_INIT_
+{
+ PUINT32 pulBufferIndex; /* Index identifying the buffer. */
+ PUINT32 pulPlayoutFreeMemSize; /* Amount of free memory available for other buffers. */
+
+ UINT32 ulBufferSize; /* Size of the buffer to be loaded in memory. This space will be reserved. */
+
+ UINT32 ulBufferPcmLaw; /* Buffer PCM law. */
+
+} tOCT6100_BUFFER_LOAD_BLOCK_INIT, *tPOCT6100_BUFFER_LOAD_BLOCK_INIT;
+
+typedef struct _OCT6100_BUFFER_LOAD_BLOCK_
+{
+ UINT32 ulBufferIndex; /* Index identifying the buffer. */
+
+ /* Offset, in bytes, of the first byte in the block to be loaded. */
+ /* This offset is with respect to the beginning of the buffer. */
+ /* This value must be modulo 2 */
+ UINT32 ulBlockOffset;
+
+ /* Size of the block to be loaded into external memory. */
+ /* This value must be modulo 2. */
+ UINT32 ulBlockLength;
+
+ /* A pointer pointing to a valid buffer block to be loaded */
+ /* into the chip's external memory. This is a pointer to the entire */
+ /* buffer. The API uses the ulBlockOffset and ulBlockLength to index */
+ /* within this buffer and obtain the block to be loaded. */
+ PUINT8 pbyBufferPattern;
+
+} tOCT6100_BUFFER_LOAD_BLOCK, *tPOCT6100_BUFFER_LOAD_BLOCK;
+
+typedef struct _OCT6100_BUFFER_UNLOAD_
+{
+ UINT32 ulBufferIndex; /* Index identifying the buffer. */
+
+} tOCT6100_BUFFER_UNLOAD, *tPOCT6100_BUFFER_UNLOAD;
+
+typedef struct _OCT6100_BUFFER_PLAYOUT_ADD_
+{
+ UINT32 ulChannelHndl; /* Echo cancelling channel on which to play the buffer. */
+
+ UINT32 ulBufferIndex; /* Index identifying the buffer. */
+
+ UINT32 ulPlayoutPort; /* Selected channel port where to play to tone. */
+ UINT32 ulMixingMode; /* Weither or not the voice stream will be muted while playing the buffer. */
+
+ INT32 lGainDb; /* Gain applied to the buffer that will be played on the specified port. */
+
+ BOOL fRepeat; /* Use ulRepeatCount variable. */
+ UINT32 ulRepeatCount; /* Number of times to repeat playing the selected buffer. */
+
+ UINT32 ulDuration; /* Duration in millisecond that this buffer should play. Setting this overrides fRepeat. */
+
+ UINT32 ulBufferLength; /* Length of the buffer to play (starting at the beginning), AUTO_SELECT for all. */
+
+} tOCT6100_BUFFER_PLAYOUT_ADD, *tPOCT6100_BUFFER_PLAYOUT_ADD;
+
+typedef struct _OCT6100_BUFFER_PLAYOUT_START_
+{
+ UINT32 ulChannelHndl; /* Echo cancelling channel on which to play the buffer. */
+ UINT32 ulPlayoutPort; /* Selected channel port where to play to tone. */
+
+ BOOL fNotifyOnPlayoutStop; /* Check if the buffers have finished playing on this channel/port. */
+ /* The events are queued in a soft buffer that the user must empty regularly. */
+ UINT32 ulUserEventId; /* Returned to the user when the playout is finished and the user has set the fNotifyOnPlayoutStop flag. */
+
+ BOOL fAllowStartWhileActive; /* Use this to add buffers to something that is already playing on the channel/port. */
+
+} tOCT6100_BUFFER_PLAYOUT_START, *tPOCT6100_BUFFER_PLAYOUT_START;
+
+typedef struct _OCT6100_BUFFER_PLAYOUT_STOP_
+{
+ UINT32 ulChannelHndl; /* Echo cancelling channel on which to play the buffer. */
+ UINT32 ulPlayoutPort; /* Selected channel port where to play to tone. */
+ BOOL fStopCleanly; /* Whether or not the skip will be clean. */
+
+ PBOOL pfAlreadyStopped; /* Whether playout was already stopped or not. */
+ PBOOL pfNotifyOnPlayoutStop; /* Whether the user chosed to receive an event on playout stop. */
+
+} tOCT6100_BUFFER_PLAYOUT_STOP, *tPOCT6100_BUFFER_PLAYOUT_STOP;
+
+/************************** FUNCTION PROTOTYPES *****************************/
+
+UINT32 Oct6100BufferPlayoutLoadDef(
+ OUT tPOCT6100_BUFFER_LOAD f_pBufferLoad );
+UINT32 Oct6100BufferPlayoutLoad(
+ IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
+ IN OUT tPOCT6100_BUFFER_LOAD f_pBufferLoad );
+
+UINT32 Oct6100BufferPlayoutLoadBlockInitDef(
+ OUT tPOCT6100_BUFFER_LOAD_BLOCK_INIT f_pBufferLoadBlockInit );
+UINT32 Oct6100BufferPlayoutLoadBlockInit(
+ IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
+ IN OUT tPOCT6100_BUFFER_LOAD_BLOCK_INIT f_pBufferLoadBlockInit );
+
+UINT32 Oct6100BufferPlayoutLoadBlockDef(
+ OUT tPOCT6100_BUFFER_LOAD_BLOCK f_pBufferLoadBlock );
+UINT32 Oct6100BufferPlayoutLoadBlock(
+ IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
+ IN OUT tPOCT6100_BUFFER_LOAD_BLOCK f_pBufferLoadBlock );
+
+UINT32 Oct6100BufferPlayoutUnloadDef(
+ OUT tPOCT6100_BUFFER_UNLOAD f_pBufferUnload );
+UINT32 Oct6100BufferPlayoutUnload(
+ IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
+ IN OUT tPOCT6100_BUFFER_UNLOAD f_pBufferUnload );
+
+UINT32 Oct6100BufferPlayoutAddDef(
+ OUT tPOCT6100_BUFFER_PLAYOUT_ADD f_pBufferPlayoutAdd );
+UINT32 Oct6100BufferPlayoutAdd(
+ IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
+ IN OUT tPOCT6100_BUFFER_PLAYOUT_ADD f_pBufferPlayoutAdd );
+
+UINT32 Oct6100BufferPlayoutStartDef(
+ OUT tPOCT6100_BUFFER_PLAYOUT_START f_pBufferPlayoutStart );
+UINT32 Oct6100BufferPlayoutStart(
+ IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
+ IN OUT tPOCT6100_BUFFER_PLAYOUT_START f_pBufferPlayoutStart );
+
+UINT32 Oct6100BufferPlayoutStopDef(
+ OUT tPOCT6100_BUFFER_PLAYOUT_STOP f_pBufferPlayoutStop );
+UINT32 Oct6100BufferPlayoutStop(
+ IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
+ IN OUT tPOCT6100_BUFFER_PLAYOUT_STOP f_pBufferPlayoutStop );
+
+#endif /* __OCT6100_PLAYOUT_BUF_PUB_H__ */
diff --git a/software/include/oct6100api/oct6100_remote_debug_inst.h b/software/include/oct6100api/oct6100_remote_debug_inst.h
new file mode 100644
index 0000000..d12415a
--- /dev/null
+++ b/software/include/oct6100api/oct6100_remote_debug_inst.h
@@ -0,0 +1,73 @@
+/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
+
+File: oct6100_remote_debug_inst.h
+
+ Copyright (c) 2001-2005 Octasic Inc.
+
+Description:
+
+ File containing all defines, macros, and structures pertaining to the file
+ oct6100_remote_debug.c. All elements defined in this file are for public
+ usage of the API. All private elements are defined in the
+ oct6100_remote_debug_priv.h file.
+
+This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API is
+free software; you can redistribute it and/or modify it under the terms of
+the GNU General Public License as published by the Free Software Foundation;
+either version 2 of the License, or (at your option) any later version.
+
+The OCT6100 GPL API is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with the OCT6100 GPL API; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+$Octasic_Release: OCT612xAPI-01.00-PR38 $
+
+$Octasic_Revision: 6 $
+
+\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
+
+#ifndef __OCT6100_REMOTE_DEBUG_INST_H__
+#define __OCT6100_REMOTE_DEBUG_INST_H__
+
+/***************************** INCLUDE FILES *******************************/
+
+
+/***************************** DEFINES *************************************/
+
+
+/***************************** TYPES ***************************************/
+
+typedef struct _OCT6100_API_REMOTE_DEBUG_INFO_
+{
+ UINT32 ulSessionTreeOfst;
+ UINT32 ulSessionListOfst;
+ UINT32 ulSessionListHead;
+ UINT32 ulSessionListTail;
+
+ UINT32 ulPktCacheOfst;
+ UINT32 ulDataBufOfst;
+
+ UINT32 ulNumSessionsOpen;
+ UINT32 ulMaxSessionsOpen;
+
+} tOCT6100_API_REMOTE_DEBUG_INFO, *tPOCT6100_API_REMOTE_DEBUG_INFO;
+
+typedef struct _OCT6100_API_REMOTE_DEBUG_SESSION_
+{
+ UINT32 ulSessionNum;
+ UINT32 ulTransactionNum;
+ UINT32 ulPktRetryNum;
+ UINT32 ulPktByteSize;
+
+ UINT32 aulLastPktTime[ 2 ];
+ UINT32 ulForwardLink;
+ UINT32 ulBackwardLink;
+
+} tOCT6100_API_REMOTE_DEBUG_SESSION, *tPOCT6100_API_REMOTE_DEBUG_SESSION;
+
+#endif /* __OCT6100_REMOTE_DEBUG_INST_H__ */
diff --git a/software/include/oct6100api/oct6100_remote_debug_pub.h b/software/include/oct6100api/oct6100_remote_debug_pub.h
new file mode 100644
index 0000000..967011d
--- /dev/null
+++ b/software/include/oct6100api/oct6100_remote_debug_pub.h
@@ -0,0 +1,64 @@
+/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
+
+File: oct6100_remote_debug_pub.h
+
+ Copyright (c) 2001-2005 Octasic Inc.
+
+Description:
+
+ File containing all defines, macros, and structures pertaining to the file
+ oct6100_remote_debug.c. All elements defined in this file are for public
+ usage of the API. All private elements are defined in the
+ oct6100_remote_debug_priv.h file.
+
+This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API is
+free software; you can redistribute it and/or modify it under the terms of
+the GNU General Public License as published by the Free Software Foundation;
+either version 2 of the License, or (at your option) any later version.
+
+The OCT6100 GPL API is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with the OCT6100 GPL API; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+$Octasic_Release: OCT612xAPI-01.00-PR38 $
+
+$Octasic_Revision: 6 $
+
+\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
+
+#ifndef __OCT6100_REMOTE_DEBUG_PUB_H__
+#define __OCT6100_REMOTE_DEBUG_PUB_H__
+
+/***************************** INCLUDE FILES *******************************/
+
+
+/***************************** DEFINES *************************************/
+
+
+/***************************** TYPES ***************************************/
+
+typedef struct _OCT6100_REMOTE_DEBUG_
+{
+ PUINT32 pulReceivedPktPayload;
+ UINT32 ulReceivedPktLength;
+
+ PUINT32 pulResponsePktPayload;
+ UINT32 ulMaxResponsePktLength;
+ UINT32 ulResponsePktLength;
+
+} tOCT6100_REMOTE_DEBUG, *tPOCT6100_REMOTE_DEBUG;
+
+/************************** FUNCTION PROTOTYPES *****************************/
+
+UINT32 Oct6100RemoteDebugDef(
+ OUT tPOCT6100_REMOTE_DEBUG f_pRemoteDebug );
+UINT32 Oct6100RemoteDebug(
+ IN OUT tPOCT6100_INSTANCE_API f_pApiInst,
+ IN OUT tPOCT6100_REMOTE_DEBUG f_pRemoteDebug );
+
+#endif /* __OCT6100_REMOTE_DEBUG_PUB_H__ */
diff --git a/software/include/oct6100api/oct6100_tlv_inst.h b/software/include/oct6100api/oct6100_tlv_inst.h
new file mode 100644
index 0000000..d4d670b
--- /dev/null
+++ b/software/include/oct6100api/oct6100_tlv_inst.h
@@ -0,0 +1,72 @@
+/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
+
+File: oct6100_tlv_inst.h
+
+ Copyright (c) 2001-2005 Octasic Inc.
+
+Description:
+
+ File containing all defines, macros, and structures pertaining to the file
+ oct6100_tlv.c. All elements defined in this file are for public
+ usage of the API. All instate elements are defined in the
+ oct6100_tlv_inst.h file.
+
+This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API is
+free software; you can redistribute it and/or modify it under the terms of
+the GNU General Public License as published by the Free Software Foundation;
+either version 2 of the License, or (at your option) any later version.
+
+The OCT6100 GPL API is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with the OCT6100 GPL API; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+$Octasic_Release: OCT612xAPI-01.00-PR38 $
+
+$Octasic_Revision: 7 $
+
+\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
+
+#ifndef __OCT6100_TLV_INST_H__
+#define __OCT6100_TLV_INST_H__
+
+/***************************** INCLUDE FILES *******************************/
+
+/***************************** DEFINES *************************************/
+
+/***************************** TYPES ***************************************/
+
+typedef struct _OCT6100_TLV_OFFSET_
+{
+ /* The dword offset contain the number of dword from a base address to reach the desired dword.
+
+ i.e. usDwordOffset = (total bit offset) / 32; */
+
+ UINT16 usDwordOffset;
+
+ /* The bit offset will contain the bit offset required to right shift the DWORD read and obtain
+ the desired value. This field is depend on the field size.
+
+ i.e. byBitOffset = 31 - ((total bit offset) % 32) - byFieldSize; */
+
+ UINT8 byBitOffset;
+ UINT8 byFieldSize;
+
+} tOCT6100_TLV_OFFSET, *tPOCT6100_TLV_OFFSET;
+
+typedef struct _OCT6100_TLV_TONE_INFO_
+{
+ UINT32 ulToneID;
+ UINT32 ulDetectionPort;
+
+ UINT8 aszToneName[ cOCT6100_TLV_MAX_TONE_NAME_SIZE ];
+
+
+
+} tOCT6100_TLV_TONE_INFO, *tPOCT6100_TLV_TONE_INFO;
+
+#endif /* __OCT6100_TLV_INST_H__ */
diff --git a/software/include/oct6100api/oct6100_tone_detection_inst.h b/software/include/oct6100api/oct6100_tone_detection_inst.h
new file mode 100644
index 0000000..3e1b72e
--- /dev/null
+++ b/software/include/oct6100api/oct6100_tone_detection_inst.h
@@ -0,0 +1,46 @@
+/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
+
+File: oct6100_tone_detection_inst.h
+
+ Copyright (c) 2001-2005 Octasic Inc.
+
+Description:
+
+ File containing all defines, macros, and structures pertaining to the file
+ oct6100_tone_detection_buf.c. All elements defined in this file are for
+ public usage of the API. All private elements are defined in the
+ oct6100_tone_detection_priv.h file.
+
+This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API is
+free software; you can redistribute it and/or modify it under the terms of
+the GNU General Public License as published by the Free Software Foundation;
+either version 2 of the License, or (at your option) any later version.
+
+The OCT6100 GPL API is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with the OCT6100 GPL API; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+$Octasic_Release: OCT612xAPI-01.00-PR38 $
+
+$Octasic_Revision: 8 $
+
+\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
+
+#ifndef __OCT6100_TONE_DETECTION_INST_H__
+#define __OCT6100_TONE_DETECTION_INST_H__
+
+/***************************** INCLUDE FILES *******************************/
+
+
+/***************************** DEFINES *************************************/
+
+
+/***************************** TYPES ***************************************/
+
+
+#endif /* __OCT6100_TONE_DETECTION_INST_H__ */
diff --git a/software/include/oct6100api/oct6100_tone_detection_pub.h b/software/include/oct6100api/oct6100_tone_detection_pub.h
new file mode 100644
index 0000000..5d49579
--- /dev/null
+++ b/software/include/oct6100api/oct6100_tone_detection_pub.h
@@ -0,0 +1,74 @@
+/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
+
+File: oct6100_tone_detection_pub.h
+
+ Copyright (c) 2001-2005 Octasic Inc.
+
+Description:
+
+ File containing all defines, macros, and structures pertaining to the file
+ oct6100_tone_detection.c. All elements defined in this file are for public
+ usage of the API. All private elements are defined in the
+ oct6100_tone_detection_priv.h file.
+
+This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API is
+free software; you can redistribute it and/or modify it under the terms of
+the GNU General Public License as published by the Free Software Foundation;
+either version 2 of the License, or (at your option) any later version.
+
+The OCT6100 GPL API is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with the OCT6100 GPL API; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+$Octasic_Release: OCT612xAPI-01.00-PR38 $
+
+$Octasic_Revision: 10 $
+
+\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
+
+#ifndef __OCT6100_TONE_DETECTION_PUB_H__
+#define __OCT6100_TONE_DETECTION_PUB_H__
+
+/***************************** INCLUDE FILES *******************************/
+
+
+/***************************** DEFINES *************************************/
+
+
+/***************************** TYPES ***************************************/
+
+typedef struct _OCT6100_TONE_DETECTION_ENABLE_
+{
+ UINT32 ulChannelHndl;
+ UINT32 ulToneNumber;
+
+} tOCT6100_TONE_DETECTION_ENABLE, *tPOCT6100_TONE_DETECTION_ENABLE;
+
+typedef struct _OCT6100_TONE_DETECTION_DISABLE_
+{
+ UINT32 ulChannelHndl;
+ UINT32 ulToneNumber;
+ BOOL fDisableAll;
+
+} tOCT6100_TONE_DETECTION_DISABLE, *tPOCT6100_TONE_DETECTION_DISABLE;
+
+/************************** FUNCTION PROTOTYPES *****************************/
+
+UINT32 Oct6100ToneDetectionEnableDef(
+ OUT tPOCT6100_TONE_DETECTION_ENABLE f_pBufferLoad );
+UINT32 Oct6100ToneDetectionEnable(
+ IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
+ IN OUT tPOCT6100_TONE_DETECTION_ENABLE f_pBufferLoad );
+
+UINT32 Oct6100ToneDetectionDisableDef(
+ OUT tPOCT6100_TONE_DETECTION_DISABLE f_pBufferUnload );
+UINT32 Oct6100ToneDetectionDisable(
+ IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
+ IN OUT tPOCT6100_TONE_DETECTION_DISABLE f_pBufferUnload );
+
+#endif /* __OCT6100_TONE_DETECTION_PUB_H__ */
diff --git a/software/include/oct6100api/oct6100_tsi_cnct_inst.h b/software/include/oct6100api/oct6100_tsi_cnct_inst.h
new file mode 100644
index 0000000..31f9be3
--- /dev/null
+++ b/software/include/oct6100api/oct6100_tsi_cnct_inst.h
@@ -0,0 +1,70 @@
+/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
+
+File: oct6100_tsi_cnct_inst.h
+
+ Copyright (c) 2001-2005 Octasic Inc.
+
+Description:
+
+ File containing all defines, macros, and structures pertaining to the file
+ oct6100_tsi_cnct.c. All elements defined in this file are for public
+ usage of the API. All private elements are defined in the
+ oct6100_tsi_cnct_priv.h file.
+
+This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API is
+free software; you can redistribute it and/or modify it under the terms of
+the GNU General Public License as published by the Free Software Foundation;
+either version 2 of the License, or (at your option) any later version.
+
+The OCT6100 GPL API is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with the OCT6100 GPL API; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+$Octasic_Release: OCT612xAPI-01.00-PR38 $
+
+$Octasic_Revision: 8 $
+
+\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
+
+#ifndef __OCT6100_TSI_CNCT_INST_H__
+#define __OCT6100_TSI_CNCT_INST_H__
+
+/***************************** INCLUDE FILES *******************************/
+
+/***************************** DEFINES *************************************/
+
+/***************************** TYPES ***************************************/
+
+typedef struct _OCT6100_API_TSI_CNCT_
+{
+ /* Flag specifying whether the entry is used or not. */
+ UINT8 fReserved;
+
+ /* Count used to manage entry handles allocated to user. */
+ UINT8 byEntryOpenCnt;
+
+ /* Input PCM law. */
+ UINT8 byInputPcmLaw;
+
+ /* TSI chariot memory entry. */
+ UINT16 usTsiMemIndex;
+
+ /* Input and output timeslot information. */
+ UINT16 usInputTimeslot;
+ UINT16 usInputStream;
+
+ UINT16 usOutputTimeslot;
+ UINT16 usOutputStream;
+
+ /* Internal info for quick access to structures associated to this TSI cnct. */
+ UINT16 usInputTsstIndex;
+ UINT16 usOutputTsstIndex;
+
+} tOCT6100_API_TSI_CNCT, *tPOCT6100_API_TSI_CNCT;
+
+#endif /* __OCT6100_TSI_CNCT_INST_H__ */
diff --git a/software/include/oct6100api/oct6100_tsi_cnct_pub.h b/software/include/oct6100api/oct6100_tsi_cnct_pub.h
new file mode 100644
index 0000000..9a8ae50
--- /dev/null
+++ b/software/include/oct6100api/oct6100_tsi_cnct_pub.h
@@ -0,0 +1,77 @@
+/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
+
+File: oct6100_tsi_cnct_pub.h
+
+ Copyright (c) 2001-2005 Octasic Inc.
+
+Description:
+
+ File containing all defines, macros, and structures pertaining to the file
+ oct6100_tsi_cnct.c. All elements defined in this file are for public
+ usage of the API. All private elements are defined in the
+ oct6100_tsi_cnct_priv.h file.
+
+This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API is
+free software; you can redistribute it and/or modify it under the terms of
+the GNU General Public License as published by the Free Software Foundation;
+either version 2 of the License, or (at your option) any later version.
+
+The OCT6100 GPL API is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with the OCT6100 GPL API; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+$Octasic_Release: OCT612xAPI-01.00-PR38 $
+
+$Octasic_Revision: 10 $
+
+\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
+
+#ifndef __OCT6100_TSI_CNCT_PUB_H__
+#define __OCT6100_TSI_CNCT_PUB_H__
+
+/***************************** INCLUDE FILES *******************************/
+
+
+/***************************** DEFINES *************************************/
+
+
+/***************************** TYPES ***************************************/
+
+typedef struct _OCT6100_TSI_CNCT_OPEN_
+{
+ PUINT32 pulTsiCnctHndl;
+
+ UINT32 ulInputTimeslot;
+ UINT32 ulInputStream;
+ UINT32 ulOutputTimeslot;
+ UINT32 ulOutputStream;
+
+} tOCT6100_TSI_CNCT_OPEN, *tPOCT6100_TSI_CNCT_OPEN;
+
+typedef struct _OCT6100_TSI_CNCT_CLOSE_
+{
+ UINT32 ulTsiCnctHndl;
+
+} tOCT6100_TSI_CNCT_CLOSE, *tPOCT6100_TSI_CNCT_CLOSE;
+
+/************************** FUNCTION PROTOTYPES *****************************/
+
+UINT32 Oct6100TsiCnctOpenDef(
+ OUT tPOCT6100_TSI_CNCT_OPEN f_pTsiCnctOpen );
+UINT32 Oct6100TsiCnctOpen(
+ IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
+ IN OUT tPOCT6100_TSI_CNCT_OPEN f_pTsiCnctOpen );
+
+UINT32 Oct6100TsiCnctCloseDef(
+ OUT tPOCT6100_TSI_CNCT_CLOSE f_pTsiCnctClose );
+UINT32 Oct6100TsiCnctClose(
+ IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
+ IN OUT tPOCT6100_TSI_CNCT_CLOSE f_pTsiCnctClose );
+
+#endif /* __OCT6100_TSI_CNCT_PUB_H__ */
+
diff --git a/software/include/oct6100api/oct6100_tsst_inst.h b/software/include/oct6100api/oct6100_tsst_inst.h
new file mode 100644
index 0000000..34bb022
--- /dev/null
+++ b/software/include/oct6100api/oct6100_tsst_inst.h
@@ -0,0 +1,55 @@
+/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
+
+File: oct6100_tsst_inst.h
+
+ Copyright (c) 2001-2005 Octasic Inc.
+
+Description:
+
+ File containing all defines, macros, and structures pertaining to the file
+ oct6100_tsst.c. All elements defined in this file are for public
+ usage of the API. All private elements are defined in the
+ oct6100_tsst_priv.h file.
+
+This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API is
+free software; you can redistribute it and/or modify it under the terms of
+the GNU General Public License as published by the Free Software Foundation;
+either version 2 of the License, or (at your option) any later version.
+
+The OCT6100 GPL API is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with the OCT6100 GPL API; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+$Octasic_Release: OCT612xAPI-01.00-PR38 $
+
+$Octasic_Revision: 5 $
+
+\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
+
+#ifndef __OCT6100_TSST_INST_H__
+#define __OCT6100_TSST_INST_H__
+
+/***************************** INCLUDE FILES *******************************/
+
+
+/***************************** DEFINES *************************************/
+
+
+/***************************** TYPES ***************************************/
+
+typedef struct _OCT6100_API_TSST_ENTRY_
+{
+ UINT16 usTsstMemoryIndex; /* Index in the TSST memory of the TSST */
+ UINT16 usTsstValue; /* Tsst value given by the user. */
+ /* bit 5:0 = stream value, bit 13:6 = timeslot value. */
+
+ UINT16 usNextEntry; /* Pointer to the next entry in the list. */
+
+} tOCT6100_API_TSST_ENTRY, *tPOCT6100_API_TSST_ENTRY;
+
+#endif /* __OCT6100_TSST_INST_H__ */
diff --git a/software/include/octdef.h b/software/include/octdef.h
new file mode 100644
index 0000000..3330048
--- /dev/null
+++ b/software/include/octdef.h
@@ -0,0 +1,113 @@
+/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
+
+File: octdef.h
+
+ Copyright (c) 2001-2005 Octasic Inc.
+
+Description:
+
+ Common system definitions.
+
+This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API is
+free software; you can redistribute it and/or modify it under the terms of
+the GNU General Public License as published by the Free Software Foundation;
+either version 2 of the License, or (at your option) any later version.
+
+The OCT6100 GPL API is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with the OCT6100 GPL API; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+$Octasic_Release: OCT612xAPI-01.00-PR38 $
+
+$Octasic_Revision: 12 $
+
+\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
+
+#ifndef __OCTDEF_H__
+#define __OCTDEF_H__
+
+/*--------------------------------------------------------------------------
+ C language
+----------------------------------------------------------------------------*/
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/***************************** INCLUDE FILES *******************************/
+
+/*--------------------------------------------------------------------------
+ Get Platform Dependency headers
+----------------------------------------------------------------------------*/
+#include "octosdependant.h"
+
+
+/*--------------------------------------------------------------------------
+ Common Type definitions
+----------------------------------------------------------------------------*/
+#include "octtype.h"
+
+/***************************** DEFINES *************************************/
+
+
+
+/*--------------------------------------------------------------------------
+ Miscellaneous constants
+----------------------------------------------------------------------------*/
+
+#ifndef PROTO
+#define PROTO extern
+#endif
+
+/* Generic return codes. */
+#define cOCTDEF_RC_OK 0 /* Generic Ok */
+#define cOCTDEF_RC_ERROR 1 /* Generic Error */
+
+/* Default return values of all OCTAPI functions. */
+#ifndef GENERIC_OK
+#define GENERIC_OK 0x00000000
+#endif
+
+#ifndef GENERIC_ERROR
+#define GENERIC_ERROR 0x00000001
+#endif
+
+#ifndef GENERIC_BAD_PARAM
+#define GENERIC_BAD_PARAM 0x00000002
+#endif
+
+/* Defines of boolean expressions (TRUE/FALSE) */
+#ifndef FALSE
+#define FALSE (BOOL)0
+#endif
+
+#ifndef TRUE
+#define TRUE (BOOL)1
+#endif
+
+/*--------------------------------------------------------------------------
+ DLL Import-Export
+----------------------------------------------------------------------------*/
+
+#ifdef OCT_WINENV
+#define DLLIMP __declspec( dllimport )
+#define DLLEXP __declspec( dllexport )
+#else
+#define DLLIMP
+#define DLLEXP
+#endif
+
+/*--------------------------------------------------------------------------
+ C language
+----------------------------------------------------------------------------*/
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __OCTDEF_H__ */
diff --git a/software/include/octmac.h b/software/include/octmac.h
new file mode 100644
index 0000000..53804c7
--- /dev/null
+++ b/software/include/octmac.h
@@ -0,0 +1,98 @@
+/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
+
+File: octmac.h
+
+ Copyright (c) 2001-2005 Octasic Inc.
+
+Description:
+
+ Common macro definitions.
+
+This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API is
+free software; you can redistribute it and/or modify it under the terms of
+the GNU General Public License as published by the Free Software Foundation;
+either version 2 of the License, or (at your option) any later version.
+
+The OCT6100 GPL API is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with the OCT6100 GPL API; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+$Octasic_Release: OCT612xAPI-01.00-PR38 $
+
+$Octasic_Revision: 14 $
+
+\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
+#ifndef __OCTMAC_H__
+#define __OCTMAC_H__
+
+/*--------------------------------------------------------------------------
+ C language
+----------------------------------------------------------------------------*/
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/***************************** DEFINES *************************************/
+
+/* Combine l & h to form a 32 bit quantity. */
+#define mMAKEULONG(l, h) ((ULONG)(((USHORT)(l)) | (((ULONG)((USHORT)(h))) << 16)))
+
+#define mLOUCHAR(w) ((UCHAR)(w))
+#define mHIUCHAR(w) ((UCHAR)(((USHORT)(w) >> 8) & 0xff))
+#define mLOUSHORT(l) ((USHORT)((ULONG)l))
+#define mHIUSHORT(l) ((USHORT)(((ULONG)(l) >> 16) & 0xffff))
+#define mLOSHORT(l) ((SHORT)((ULONG)l))
+#define mHISHORT(l) ((SHORT)(((ULONG)(l) >> 16) & 0xffff))
+
+/* Combine l & h to form a 16 bit quantity. */
+#define mMAKEUSHORT(l, h) (((USHORT)(l)) | ((USHORT)(h)) << 8)
+#define mMAKESHORT(l, h) ((SHORT)mMAKEUSHORT(l, h))
+
+/* Extract high and low order parts of 16 and 32 bit quantity */
+#define mLOBYTE(w) mLOUCHAR(w)
+#define mHIBYTE(w) mHIUCHAR(w)
+#define mMAKELONG(l, h) ((LONG)mMAKEULONG(l, h))
+
+/*--------------------------------------------------------------------------
+ Bite conversion macro
+----------------------------------------------------------------------------*/
+#define mSWAP_INT16(x) mMAKEUSHORT( mHIBYTE(x), mLOBYTE(x) )
+#define mSWAP_INT32(x) mMAKEULONG( mSWAP_INT16(mHIUSHORT(x)), mSWAP_INT16(mLOUSHORT(x)) )
+
+
+/* Cast any variable to an instance of the specified type. */
+#define mMAKETYPE(v, type) (*((type *)&v))
+
+/* Calculate the byte offset of a field in a structure of type type. */
+#define mFIELDOFFSET(type, field) ((UINT32)&(((type *)0)->field))
+#define mCOUNTOF(array) (sizeof(array)/sizeof(array[0]))
+
+#define mMAX(a,b) (((a) > (b)) ? (a) : (b))
+#define mMIN(a,b) (((a) < (b)) ? (a) : (b))
+
+#define mDIM(x) (sizeof(x) / sizeof(x[0]))
+
+#define mFROMDIGIT(ch) ((ch) - 0x30) /* digit to char */
+#define mTODIGIT(ch) ((ch) + 0x30) /* int to char */
+
+#define mISLEAP(a) ( !( a % 400 ) || ( ( a % 100 ) && !( a % 4 ) ) )
+
+#define mFOREVER for( ;; )
+
+#define mROUND_TO_NEXT_4( a ) ( ((a) % 4) ? ( (a) + 4 - ((a)%4) ) : (a) )
+
+/*--------------------------------------------------------------------------
+ C language
+----------------------------------------------------------------------------*/
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __OCTMAC_H__ */
diff --git a/software/include/octosdependant.h b/software/include/octosdependant.h
new file mode 100644
index 0000000..c3982a8
--- /dev/null
+++ b/software/include/octosdependant.h
@@ -0,0 +1,155 @@
+/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
+
+File: octosdependant.h
+
+ Copyright (c) 2001-2005 Octasic Inc.
+
+Description:
+
+ This file is included to set target-specific constants.
+
+This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API is
+free software; you can redistribute it and/or modify it under the terms of
+the GNU General Public License as published by the Free Software Foundation;
+either version 2 of the License, or (at your option) any later version.
+
+The OCT6100 GPL API is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with the OCT6100 GPL API; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+$Octasic_Release: OCT612xAPI-01.00-PR38 $
+
+$Octasic_Revision: 16 $
+
+\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
+
+#ifndef __OCTOSDEPENDANT_H__
+#define __OCTOSDEPENDANT_H__
+
+
+/*--------------------------------------------------------------------------
+ C language
+----------------------------------------------------------------------------*/
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+
+/*****************************************************************************
+
+ Known define values
+
+ MSDEV:
+ WIN32 == WINDOWS 32 bit app
+ __WIN32__ == WINDOWS 32 bit app
+ _Windows == WINDOWS 16 bit app
+
+ _WINDOWS == Windows application .. not console
+ _DLL == Dll Application
+ _CONSOLE == Console Application .. no windows
+
+ BORLANDC
+ __TURBOC__ == Turbo Compiler
+ __BORLANDC__ == Borland compiler
+ __OS2__ == Borland OS2 compiler
+ _Windows == Windows 16 bit app
+
+ GCC Compiler
+ __GNUC__ == GCC Compiler
+ __unix__ == Unix system
+ __vax__ == Unix system
+ unix == Unix system
+ vax == vax system
+
+ TORNADO
+ _VXWORKS_ == VXWORK
+
+ ECOS/CYGWIN
+ _ECOS_ == eCos
+
+ SOLARIS
+ _SOLARIS_ == Solaris
+
+*****************************************************************************/
+
+/* Machine endian type */
+
+#define OCT_MACH_LITTLE_ENDIAN 1
+#define OCT_MACH_BIG_ENDIAN 2
+
+/* Try to find current OCT_MACH_ENDIAN from compiler define values */
+#if !defined( MACH_TYPE_BIG_ENDIAN ) && !defined( MACH_TYPE_LITTLE_ENDIAN )
+
+ /* Look for intel */
+ #if defined( _M_IX86 )
+ #define OCT_MACH_ENDIAN OCT_MACH_LITTLE_ENDIAN
+ /* Look for PowerPC */
+ #elif defined( _M_MPPC ) || defined( _M_PPC )
+ #define OCT_MACH_ENDIAN OCT_MACH_BIG_ENDIAN
+ #elif defined( CPU )
+ #if CPU==PPC860 || CPU==SIMNT
+ #define OCT_MACH_ENDIAN OCT_MACH_BIG_ENDIAN
+ #else
+ #define OCT_MACH_ENDIAN OCT_MACH_LITTLE_ENDIAN
+ #endif
+ /* Default is little endian */
+ #else
+ #define OCT_MACH_ENDIAN OCT_MACH_LITTLE_ENDIAN
+ #endif
+#else
+ #if defined( MACH_TYPE_BIG_ENDIAN )
+ #define OCT_MACH_ENDIAN OCT_MACH_BIG_ENDIAN
+ #else
+ #define OCT_MACH_ENDIAN OCT_MACH_LITTLE_ENDIAN
+ #endif
+#endif
+
+/* Find system type if not already defined */
+#if !defined( OCT_NTDRVENV ) && !defined( OCT_VXENV ) && !defined( OCT_WINENV )
+
+#if defined( WIN32 ) || defined( __WIN32__ ) || defined( _WIN32_ ) || defined( WIN32S )
+ /* Verif if building a win32 driver */
+ #if ( defined( WIN32 ) && WIN32==100 )
+ #define OCT_NTDRVENV
+ #else
+ #define OCT_WINENV
+ #endif
+#elif defined( _VXWORKS_ )
+ #define OCT_VXENV
+#elif defined( _ECOS_ )
+ #define OCT_ECOSENV
+#elif defined( _SOLARIS_ )
+ #define OCT_SOLARISENV
+#elif defined( _LINUX_ )
+ #define OCT_LINUXENV
+#else
+ /* Unknown environment */
+ #define OCT_UNKNOWNENV
+#endif /* WIN env */
+
+#endif /* Already defined */
+
+#if defined( __KERNEL__ ) && defined( OCT_LINUXENV )
+#define OCT_LINUXDRVENV
+#endif
+
+#ifdef _DEBUG
+#define OCT_OPT_USER_DEBUG
+#endif
+
+/*--------------------------------------------------------------------------
+ C language
+----------------------------------------------------------------------------*/
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __OCTOSDEPENDANT_H__ */
diff --git a/software/include/octrpc/oct6100_rpc_protocol.h b/software/include/octrpc/oct6100_rpc_protocol.h
new file mode 100644
index 0000000..d8f9ce9
--- /dev/null
+++ b/software/include/octrpc/oct6100_rpc_protocol.h
@@ -0,0 +1,348 @@
+/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
+
+File: oct6100_rpc_protocol.h
+
+ Copyright (c) 2001-2005 Octasic Inc.
+
+Description:
+
+ File containing all defines and prototypes related to the OCT6100 RPC
+ protocol for exchanging debug commands.
+
+This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API is
+free software; you can redistribute it and/or modify it under the terms of
+the GNU General Public License as published by the Free Software Foundation;
+either version 2 of the License, or (at your option) any later version.
+
+The OCT6100 GPL API is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with the OCT6100 GPL API; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+$Octasic_Release: OCT612xAPI-01.00-PR38 $
+
+$Octasic_Revision: 6 $
+
+\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
+
+#ifndef __OCT6100_RPC_PROTOCOL_H__
+#define __OCT6100_RPC_PROTOCOL_H__
+
+/***************************** DEFINES *************************************/
+
+#define cOCTRPC_INTERFACE_VERSION 0x00010002
+
+/* Octasic commands. */
+#define cOCT6100_RPC_CHIP_LIST 0xFF000000
+#define cOCT6100_RPC_CHIP_CHOICE 0xFF000001
+#define cOCT6100_RPC_ENV_DISCONNECT 0xFF000002
+
+/* Commands */
+/* Read commands */
+#define cOCT6100_RPC_READ_WORD 0x00000000
+#define cOCT6100_RPC_READ_BURST 0x00000001
+#define cOCT6100_RPC_READ_DEBUG 0x00000002
+#define cOCT6100_RPC_READ_ARRAY 0x00000003
+#define cOCT6100_RPC_API_DISCONNECT 0x00000004
+
+/* Write commands */
+#define cOCT6100_RPC_WRITE_WORD 0x00000010
+#define cOCT6100_RPC_WRITE_BURST 0x00000011
+#define cOCT6100_RPC_WRITE_SMEAR 0x00000012
+#define cOCT6100_RPC_WRITE_INC 0x00000013
+
+/* Debug commands.*/
+#define cOCT6100_RPC_SET_HOT_CHANNEL 0x00000014
+#define cOCT6100_RPC_GET_DEBUG_CHAN_INDEX 0x00000015
+
+#define cOCTRPC_UNKNOWN_COMMAND_NUM 0xFFFFFFFF
+
+/* Errors */
+#define cOCT6100_RPCERR_OK 0x00000000
+#define cOCT6100_RPCERR_INVALID_COMMAND_NUMBER 0x00000001
+#define cOCT6100_RPCERR_INVALID_COMMAND_PAYLOAD 0x00000002
+#define cOCT6100_RPCERR_INVALID_COMMAND_LENGTH 0x00000003
+
+
+/***************************** TYPES ***************************************/
+
+/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
+
+Structure: OCT6100_RPC_READ_WORD
+
+Description: Command structure for the read of one word.
+
+-------------------------------------------------------------------------------
+| Member | Description
+-------------------------------------------------------------------------------
+IN ulAddress Address at which to read.
+OUT ulReadData The word read, returned.
+
+\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
+typedef struct _OCT6100_RPC_READ_WORD_
+{
+ UINT32 IN ulAddress;
+ UINT32 OUT ulReadData;
+
+} tOCT6100_RPC_READ_WORD, *tPOCT6100_RPC_READ_WORD;
+
+
+/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
+
+Structure: OCT6100_RPC_READ_BURST
+
+Description: Command structure for a read burst. The burst starts at the
+ given address and reads the specified number of consecutive
+ words.
+
+ Whereas every command structure uses a complete dword for every
+ member, irrespective of the size of data unit needed, this
+ structure does not do so for the read data. To save bandwidth
+ the read data words are returned two per dword.
+
+Example packet: 31 16 15 0
+ -------------------------------------------
+ | ulAddress = 0x100 |
+ -------------------------------------------
+ | ulBurstLength = 0x3 |
+ -------------------------------------------
+ aulReadData -> | D0 | D1 |
+ -------------------------------------------
+ | D2 | xx |
+ -------------------------------------------
+
+ Dy is the read data at ulAddress + 2 * y.
+
+-------------------------------------------------------------------------------
+| Member | Description
+-------------------------------------------------------------------------------
+IN ulAddress Address at which to read.
+IN ulBurstLength The number of consecutive words to be read.
+OUT aulReadData The read data returned. The dwords of the structure
+ starting at this address are arranged as indicated in
+ the example packet above.
+
+\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
+typedef struct _OCT6100_RPC_READ_BURST_
+{
+ UINT32 IN ulAddress;
+ UINT32 IN ulBurstLength;
+ UINT32 OUT aulReadData[ 1 ];
+
+} tOCT6100_RPC_READ_BURST, *tPOCT6100_RPC_READ_BURST;
+
+
+
+/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
+
+Structure: OCT6100_RPC_READ_ARRAY
+
+Description: Command structure for a variable number of reads. The reads do
+ not have to be at contiguous addresses.
+
+ Whereas every command structure uses a complete dword for every
+ member, irrespective of the size of data unit needed, this
+ structure does not do so for the read data. To save bandwidth
+ the read data words are returned two per dword, and the
+ parity bits are returned 16 per dword (two parity bits per read
+ access).
+
+Example packet: 31 16 15 0
+ -------------------------------------------
+ | ulArrayLength = 0x3 |
+ -------------------------------------------
+ aulArrayData ->| A0 |
+ -------------------------------------------
+ | A1 |
+ -------------------------------------------
+ | A2 |
+ -------------------------------------------
+ | D0 | D1 |
+ -------------------------------------------
+ | D2 | xx |
+ -------------------------------------------
+
+ Ay is the address for access y.
+ Dy is the read data at Ay.
+
+-------------------------------------------------------------------------------
+| Member | Description
+-------------------------------------------------------------------------------
+IN ulArrayLength Number of reads to do.
+IN OUT aulArrayData The addresses at which to read (IN) and the read data
+ returned (OUT). The dwords of the command structure
+ starting at this address are arranged as indicated in
+ the example packet above.
+
+\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
+typedef struct _OCT6100_RPC_READ_ARRAY
+{
+ UINT32 IN ulArrayLength;
+ UINT32 IN OUT aulArrayData[ 1 ];
+
+} tOCT6100_RPC_READ_ARRAY, *tPOCT6100_RPC_READ_ARRAY;
+
+
+/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
+
+Structure: OCT6100_RPC_WRITE_WORD
+
+Description: Command structure for the write of one word.
+
+-------------------------------------------------------------------------------
+| Member | Description
+-------------------------------------------------------------------------------
+IN ulAddress Address at which to write.
+IN ulWriteData The word to write.
+
+\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
+typedef struct _OCT6100_RPC_WRITE_WORD_
+{
+ UINT32 IN ulAddress;
+ UINT32 IN ulParity;
+ UINT32 IN ulWriteData;
+
+} tOCT6100_RPC_WRITE_WORD, *tPOCT6100_RPC_WRITE_WORD;
+
+
+/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
+
+Structure: OCT6100_RPC_WRITE_SMEAR
+
+Description: Command structure for the write of one word at one or many
+ consecutive addresses.
+
+-------------------------------------------------------------------------------
+| Member | Description
+-------------------------------------------------------------------------------
+IN ulAddress Address of first write.
+IN ulSmearLength Number of consecutive addresses to write.
+IN ulWriteData The word to write at each address.
+
+\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
+typedef struct _OCT6100_RPC_WRITE_SMEAR_
+{
+ UINT32 IN ulAddress;
+ UINT32 IN ulSmearLength;
+ UINT32 IN ulParity;
+ UINT32 IN ulWriteData;
+
+} tOCT6100_RPC_WRITE_SMEAR, *tPOCT6100_RPC_WRITE_SMEAR;
+
+
+/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
+
+Structure: OCT6100_RPC_WRITE_INC
+
+Description: Command structure for the write of an incremental pattern at
+ one or many consecutive addresses.
+
+-------------------------------------------------------------------------------
+| Member | Description
+-------------------------------------------------------------------------------
+IN ulAddress Address of first write.
+IN ulIncLength Number of consecutive addresses to write.
+IN ulWriteData The first word of the incremental pattern. For each
+ consecutive write the word will be incremented by 1.
+
+\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
+typedef struct _OCT6100_RPC_WRITE_INC_
+{
+ UINT32 IN ulAddress;
+ UINT32 IN ulIncLength;
+ UINT32 IN ulParity;
+ UINT32 IN ulWriteData;
+
+} tOCT6100_RPC_WRITE_INC, *tPOCT6100_RPC_WRITE_INC;
+
+
+/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
+
+Structure: OCT6100_RPC_WRITE_BURST
+
+Description: Command structure for a write burst. The burst starts at the
+ given address and writes a given word for each address.
+
+ Whereas every command structure uses a complete dword for every
+ member, irrespective of the size of data unit needed, this
+ structure does not do so for the write data. To save bandwidth
+ the write data words are sent two per dword.
+
+Example packet: 31 16 15 0
+ -------------------------------------------
+ | ulAddress = 0x100 |
+ -------------------------------------------
+ | ulBurstLength = 0x3 |
+ -------------------------------------------
+ aulWriteData ->| D0 | D1 |
+ -------------------------------------------
+ | D2 | xx |
+ -------------------------------------------
+
+ Dy is the write data for ulAddress + 2 * y.
+
+-------------------------------------------------------------------------------
+| Member | Description
+-------------------------------------------------------------------------------
+IN ulAddress First address at which to write.
+IN ulBurstLength The number of consecutive addresses to be write.
+IN aulWriteData The write data words. The dwords of the structure
+ starting at this address are arranged as indicated in
+ the example packet above.
+
+\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
+typedef struct _OCT6100_RPC_WRITE_BURST_
+{
+ UINT32 IN ulAddress;
+ UINT32 IN ulBurstLength;
+ UINT32 IN ulParity;
+ UINT32 IN aulWriteData[ 1 ];
+
+} tOCT6100_RPC_WRITE_BURST, *tPOCT6100_RPC_WRITE_BURST;
+
+
+
+/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
+
+Structure: OCT6100_RPC_SET_HOT_CHANNEL
+
+Description: Command structure to set the hot channel.
+
+-------------------------------------------------------------------------------
+| Member | Description
+-------------------------------------------------------------------------------
+IN ulDebugChannel Index of the channel to debug.
+
+\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
+typedef struct _OCT6100_RPC_SET_HOT_CHANNEL_
+{
+ UINT32 IN ulHotChannel;
+ UINT32 IN ulPcmLaw;
+
+} tOCT6100_RPC_SET_HOT_CHANNEL, *tPOCT6100_RPC_SET_HOT_CHANNEL;
+
+
+
+/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
+
+Structure: OCT6100_RPC_GET_DEBUG_CHAN_INDEX
+
+Description: Command structure to get the debug channel index used by the API.
+
+-------------------------------------------------------------------------------
+| Member | Description
+-------------------------------------------------------------------------------
+IN ulDebugChannel Index of the channel to debug.
+
+\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
+typedef struct _OCT6100_RPC_GET_DEBUG_CHAN_INDEX_
+{
+ UINT32 OUT ulDebugChanIndex;
+
+} tOCT6100_RPC_GET_DEBUG_CHAN_INDEX, *tPOCT6100_RPC_GET_DEBUG_CHAN_INDEX;
+
+#endif /* __OCT6100_RPC_PROTOCOL_H__ */
diff --git a/software/include/octrpc/rpc_protocol.h b/software/include/octrpc/rpc_protocol.h
new file mode 100644
index 0000000..52a66f1
--- /dev/null
+++ b/software/include/octrpc/rpc_protocol.h
@@ -0,0 +1,115 @@
+/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
+
+File: rpc_protocol.h
+
+ Copyright (c) 2001-2005 Octasic Inc.
+
+Description:
+
+This file contains RPC related definitions and prototypes.
+
+This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API is
+free software; you can redistribute it and/or modify it under the terms of
+the GNU General Public License as published by the Free Software Foundation;
+either version 2 of the License, or (at your option) any later version.
+
+The OCT6100 GPL API is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with the OCT6100 GPL API; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+$Octasic_Release: OCT612xAPI-01.00-PR38 $
+
+$Octasic_Revision: 23 $
+
+\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
+
+#ifndef __RPC_PROTOCOL_H__
+#define __RPC_PROTOCOL_H__
+
+/***************************** INCLUDE FILES *******************************/
+
+
+/***************************** DEFINES *************************************/
+
+#define cOCTRPC_ENDIAN_DETECT 0x27182819
+#define cOCTRPC_ENDIAN_DETECT_BYTE_W 0x19
+#define cOCTRPC_ENDIAN_DETECT_BYTE_X 0x28
+#define cOCTRPC_ENDIAN_DETECT_BYTE_Y 0x18
+#define cOCTRPC_ENDIAN_DETECT_BYTE_Z 0x27
+#define cOCTRPC_ECHO_PROTOCOL 0x00000000
+
+#define cOCTRPC_MIN_PACKET_BYTE_LENGTH (sizeof( tOCTRPC_OGRDTP_HEADER ))
+#define cOCTRPC_FIRST_COMMAND_BYTE_OFFSET (sizeof( tOCTRPC_OGRDTP_HEADER ) + sizeof( tOCTRPC_INTERFACE_HEADER ))
+#define cOCTRPC_GENERIC_HEADERS_BYTE_SIZE (sizeof( tOCTRPC_OGRDTP_HEADER ) + sizeof( tOCTRPC_INTERFACE_HEADER ) + sizeof( tOCTRPC_COMMAND_HEADER ))
+#define cOCTRPC_MAX_PACKET_BYTE_LENGTH 32768
+
+/* Protocol versions */
+#define cOCTRPC_PROTOCOL_V1_0 0x00010000
+#define cOCTRPC_PROTOCOL_V1_1 0x00010001
+#define cOCTRPC_PROTOCOL_V1_2 0x00010002
+#define cOCTRPC_PROTOCOL_V1_3 0x00010003
+#define cOCTRPC_OCTASIC_PROTOCOL_V1_0 0xFF010000
+#define cOCTRPC_OCTASIC_PROTOCOL_V1_1 0xFF010001
+#define cOCTRPC_OCTASIC_PROTOCOL_V1_2 0xFF010002
+#define cOCTRPC_OCTASIC_PROTOCOL_V1_3 0xFF010003
+
+/* Chips */
+#define cOCTRPC_OCT8304_INTERFACE 0x00000000
+#define cOCTRPC_OCT6100_INTERFACE 0x00000001
+
+/* Timeout values. */
+#define cOCTRPC_SESSION_TIMEOUT 30
+
+/* Generic errors */
+#define cOCTRPC_RDBGERR_OK 0x00000000
+#define cOCTRPC_RDBGERR_NO_ANSWER 0xFFFF0000
+#define cOCTRPC_RDBGERR_ALL_SESSIONS_OPEN 0xFFFF0001
+#define cOCTRPC_RDBGERR_PROTOCOL_NUMBER 0xFFFF0002
+#define cOCTRPC_RDBGERR_NO_COMMAND_HEADER 0xFFFF0003
+#define cOCTRPC_RDBGERR_INTERFACE_TYPE 0xFFFF0004
+#define cOCTRPC_RDBGERR_INTERFACE_VERSION 0xFFFF0005
+#define cOCTRPC_RDBGERR_INVALID_PACKET_LENGTH 0xFFFF0006
+#define cOCTRPC_RDBGERR_INVALID_COMMAND_LENGTH 0xFFFF0007
+#define cOCTRPC_RDBGERR_INVALID_COMMAND_NUMBER 0xFFFF0008
+#define cOCTRPC_RDBGERR_PACKET_TOO_LARGE 0xFFFF0009
+#define cOCTRPC_RDBGERR_LIST_EMPTY 0xFFFF000A
+
+#define cOCTRPC_RDBGERR_FATAL 0xFFFFFFFF
+
+
+/***************************** TYPES ***************************************/
+
+typedef struct _OCTRPC_OGRDTP_HEADER_
+{
+ UINT32 IN ulEndianDetect;
+ UINT32 IN ulDebugSessionNum;
+ UINT32 IN ulTransactionNum;
+ UINT32 IN ulPktRetryNum;
+ UINT32 IN ulPktByteSize;
+ UINT32 IN ulChecksum;
+ UINT32 OUT ulParsingError;
+ UINT32 IN ulRpcProtocolNum;
+
+} tOCTRPC_OGRDTP_HEADER, *tPOCTRPC_OGRDTP_HEADER;
+
+typedef struct _OCTRPC_INTERFACE_HEADER_
+{
+ UINT32 IN ulInterfaceType;
+ UINT32 IN ulInterfaceVersion;
+
+} tOCTRPC_INTERFACE_HEADER, *tPOCTRPC_INTERFACE_HEADER;
+
+typedef struct _OCTRPC_COMMAND_HEADER_
+{
+ UINT32 IN ulCommandByteSize;
+ UINT32 IN OUT ulRpcCommandNum;
+ UINT32 OUT ulFunctionResult;
+
+} tOCTRPC_COMMAND_HEADER, *tPOCTRPC_COMMAND_HEADER;
+
+#endif /* __RPC_PROTOCOL_H__ */
diff --git a/software/include/octtype.h b/software/include/octtype.h
new file mode 100644
index 0000000..0d8f4c5
--- /dev/null
+++ b/software/include/octtype.h
@@ -0,0 +1,152 @@
+/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
+
+File: octtype.h
+
+ Copyright (c) 2001-2005 Octasic Inc.
+
+Description:
+
+ This file defines the base storage types.
+
+This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API is
+free software; you can redistribute it and/or modify it under the terms of
+the GNU General Public License as published by the Free Software Foundation;
+either version 2 of the License, or (at your option) any later version.
+
+The OCT6100 GPL API is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with the OCT6100 GPL API; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+$Octasic_Release: OCT612xAPI-01.00-PR38 $
+
+$Octasic_Revision: 16 $
+
+\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
+#ifndef __OCTTYPE_H__
+#define __OCTTYPE_H__
+
+/*--------------------------------------------------------------------------
+ C language
+----------------------------------------------------------------------------*/
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*--------------------------------------------------------------------------
+ Include target-specific header if available
+----------------------------------------------------------------------------*/
+#if defined( OCT_NTDRVENV )
+ #include "octtypentdrv.h" /* All NT driver typedef */
+#elif defined( OCT_WINENV )
+ #include "octtypewin.h" /* All Win32 typedef */
+#elif defined( OCT_VXENV )
+ #include "octtypevx.h" /* All VxWorks typedef */
+#else
+/*--------------------------------------------------------------------------
+ No target-specific header available
+----------------------------------------------------------------------------*/
+
+/***************************** DEFINES *************************************/
+/* 16-bit integer */
+typedef unsigned short UINT16;
+typedef signed short INT16;
+typedef unsigned short *PUINT16;
+typedef signed short *PINT16;
+
+/* 8-bit integer */
+typedef unsigned char UINT8;
+typedef signed char INT8;
+typedef unsigned char *PUINT8;
+typedef signed char *PINT8;
+
+
+/* 32 bit integer */
+typedef unsigned int UINT32;
+typedef signed int INT32;
+typedef INT32 * PINT32;
+typedef UINT32 * PUINT32;
+
+/* Long integer */
+typedef signed long LONG;
+typedef unsigned long ULONG;
+typedef long * PLONG;
+typedef unsigned long * PULONG;
+
+/* Short integer */
+typedef short SHORT;
+typedef unsigned short USHORT;
+typedef short * PSHORT;
+typedef unsigned short *PUSHORT;
+
+/* 8-bit integer*/
+typedef unsigned char BYTE;
+typedef BYTE * PBYTE;
+typedef unsigned char UCHAR;
+
+/* Character and strings */
+typedef char CHAR;
+typedef CHAR SZ;
+typedef CHAR * PSZ;
+typedef CHAR * PCHAR;
+
+/* Double integers */
+typedef double DOUBLE;
+typedef double * PDOUBLE;
+typedef float FLOAT;
+typedef float * PFLOAT;
+
+typedef void VOID;
+typedef void * PVOID;
+
+/* Booleans */
+typedef int BOOL;
+typedef BOOL * PBOOL;
+
+/* Integers */
+typedef int INT;
+typedef int * PINT;
+typedef unsigned int UINT;
+typedef unsigned int * PUINT;
+
+/* Define pseudo-keywords IN and OUT if not defined yet */
+#ifndef IN
+#define IN /* IN param */
+#endif
+
+#ifndef OUT
+#define OUT /* OUT param */
+#endif
+
+/* LONG LONG */
+#define LLONG signed long long
+#define PLLONG signed long long *
+#define ULLONG unsigned long long
+#define PULLONG unsigned long long *
+
+#ifndef OPT
+#define OPT /* OPT param */
+#endif
+
+typedef PSZ * PPSZ;
+
+#ifndef NULL
+#define NULL 0
+#endif
+
+#endif
+
+/*--------------------------------------------------------------------------
+ C language
+----------------------------------------------------------------------------*/
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __OCTTYPE_H__ */
diff --git a/software/include/octtypevx.h b/software/include/octtypevx.h
new file mode 100644
index 0000000..4efec81
--- /dev/null
+++ b/software/include/octtypevx.h
@@ -0,0 +1,129 @@
+/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
+
+File: octtypevx.h
+
+ Copyright (c) 2001-2005 Octasic Inc.
+
+Description:
+
+ This file defines the base storage types for the VxWorks environment.
+
+This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API is
+free software; you can redistribute it and/or modify it under the terms of
+the GNU General Public License as published by the Free Software Foundation;
+either version 2 of the License, or (at your option) any later version.
+
+The OCT6100 GPL API is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with the OCT6100 GPL API; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+$Octasic_Release: OCT612xAPI-01.00-PR38 $
+
+$Octasic_Revision: 6 $
+
+\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
+
+#ifndef __OCTTYPEVX_H__
+#define __OCTTYPEVX_H__
+
+/*--------------------------------------------------------------------------
+ C language
+----------------------------------------------------------------------------*/
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "vxWorks.h"
+
+/* 16-bit pointer integer */
+typedef unsigned short *PUINT16;
+typedef signed short *PINT16;
+
+/* 8-bit integer pointer */
+typedef unsigned char *PUINT8;
+typedef signed char *PINT8;
+
+/* 32-bit integer pointer */
+typedef INT32 * PINT32;
+typedef UINT32 * PUINT32;
+
+/* Long integer pointer */
+#ifndef DATATYPE_H /*Intel library for file system definition*/
+typedef long LONG;
+#endif
+typedef long * PLONG;
+typedef unsigned long * PULONG;
+
+/* Short integer pointer */
+typedef short SHORT;
+typedef short * PSHORT;
+typedef unsigned short *PUSHORT;
+
+/* 8-bit integer*/
+#if (CPU!=SIMNT) && !defined(DATATYPE_H)
+typedef char BYTE;
+#endif
+
+
+typedef BYTE * PBYTE;
+
+/* Character and strings */
+#ifndef DATATYPE_H /*Intel library for file system definition*/
+typedef char CHAR;
+#endif
+typedef char * PCHAR;
+typedef CHAR SZ;
+typedef CHAR * PSZ;
+
+/* Double integers */
+typedef double DOUBLE;
+typedef double * PDOUBLE;
+typedef float FLOAT;
+typedef float * PFLOAT;
+
+typedef void * PVOID;
+
+/* Booleans */
+typedef BOOL * PBOOL;
+
+/* Integers */
+typedef int INT;
+typedef int * PINT;
+typedef unsigned int PUINT;
+
+/* Define pseudo-keywords IN and OUT if not defined yet */
+#ifndef IN
+#define IN /* IN param */
+#endif
+
+#ifndef OUT
+#define OUT /* OUT param */
+#endif
+
+/* LONG LONG */
+#define LLONG signed long long
+#define PLLONG signed long long *
+#define ULLONG unsigned long long
+#define PULLONG unsigned long long *
+
+#ifndef OPT
+#define OPT /* OPT param */
+#endif
+
+typedef PSZ * PPSZ;
+
+
+/*--------------------------------------------------------------------------
+ C language
+----------------------------------------------------------------------------*/
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __OCTTYPEVX_H__ */
diff --git a/software/include/octtypewin.h b/software/include/octtypewin.h
new file mode 100644
index 0000000..afe3cd3
--- /dev/null
+++ b/software/include/octtypewin.h
@@ -0,0 +1,92 @@
+/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
+
+File: octtypewin.h
+
+ Copyright (c) 2001-2005 Octasic Inc.
+
+Description:
+
+ This file defines the base storage types for the Windows environment.
+ Includes the Windows definition file and add the missing ones here.
+
+This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API is
+free software; you can redistribute it and/or modify it under the terms of
+the GNU General Public License as published by the Free Software Foundation;
+either version 2 of the License, or (at your option) any later version.
+
+The OCT6100 GPL API is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with the OCT6100 GPL API; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+$Octasic_Release: OCT612xAPI-01.00-PR38 $
+
+$Octasic_Revision: 13 $
+
+\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
+
+#ifndef __OCTTYPEWIN_H__
+#define __OCTTYPEWIN_H__
+
+/*--------------------------------------------------------------------------
+ C language
+----------------------------------------------------------------------------*/
+#define WIN32_LEAN_AND_MEAN /* just get the base type definition from Windows */
+#include <windows.h>
+
+/* Disable argument not used warning */
+#pragma warning( disable : 4100 )
+/* Disable Level 4 warning: nonstandard extension used : translation unit is empty */
+#pragma warning( disable : 4206 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* 16-bit integer */
+typedef unsigned short UINT16;
+typedef signed short INT16;
+typedef unsigned short *PUINT16;
+typedef signed short *PINT16;
+
+/* 8-bit integer */
+typedef unsigned char UINT8;
+typedef signed char INT8;
+typedef unsigned char *PUINT8;
+typedef signed char *PINT8;
+
+typedef double DOUBLE;
+
+/* 32 bit integer */
+#if ( defined( _MSC_VER ) && _MSC_VER == 1100 )
+/* MFC5 compiler does not define UINT32 */
+typedef unsigned int UINT32;
+typedef signed int INT32;
+typedef INT32 * PINT32;
+typedef UINT32 * PUINT32;
+#endif /* _MSC_VER */
+
+/* LONG LONG */
+#define LLONG signed __int64
+#define PLLONG signed __int64 *
+#define ULLONG unsigned __int64
+#define PULLONG unsigned __int64 *
+
+#ifndef OPT
+#define OPT /* OPT param */
+#endif
+
+typedef PSZ * PPSZ;
+
+/*--------------------------------------------------------------------------
+ C language
+----------------------------------------------------------------------------*/
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __OCTTYPEWIN_H__ */