xpp: A copy of oct612x in dahdi-tools

Include a copy of the oct612x Octasic echo canceller interface to be used
by astribank_hexload to load the echo canceller firmware to a Xorcom
Astribank.


git-svn-id: http://svn.astersk.org/svn/dahdi/tools/trunk@10030 17933a7a-c749-41c5-a318-cba88f637d49
This commit is contained in:
Tzafrir Cohen 2011-07-10 16:10:32 +00:00
parent 52b37fa5f1
commit d3cadf5352
96 changed files with 65740 additions and 0 deletions

38
xpp/oct612x/Makefile Normal file
View File

@ -0,0 +1,38 @@
CFLAGS=-V3.4 -ffunction-sections -I/lib/modules/$(shell uname -r)/build/include -Iinclude -Ioctdeviceapi -Ioctdeviceapi/oct6100api -DGFP_ATOMIC=0 -Dkmalloc=calloc -Dkfree=free
LDFLAGS=-V3.4 -Wl,-Map -Wl,test.map -Wl,--gc-sections
APIDIR=octdeviceapi/oct6100api/oct6100_api
OCTASIC_OBJS=$(APIDIR)/oct6100_adpcm_chan.o \
$(APIDIR)/oct6100_channel.o \
$(APIDIR)/oct6100_chip_open.o \
$(APIDIR)/oct6100_chip_stats.o \
$(APIDIR)/oct6100_conf_bridge.o \
$(APIDIR)/oct6100_debug.o \
$(APIDIR)/oct6100_events.o \
$(APIDIR)/oct6100_interrupts.o \
$(APIDIR)/oct6100_memory.o \
$(APIDIR)/oct6100_miscellaneous.o \
$(APIDIR)/oct6100_mixer.o \
$(APIDIR)/oct6100_phasing_tsst.o \
$(APIDIR)/oct6100_playout_buf.o \
$(APIDIR)/oct6100_remote_debug.o \
$(APIDIR)/oct6100_tlv.o \
$(APIDIR)/oct6100_tone_detection.o \
$(APIDIR)/oct6100_tsi_cnct.o \
$(APIDIR)/oct6100_tsst.o \
$(APIDIR)/oct6100_user.o \
apilib/bt/octapi_bt0.o \
apilib/largmath/octapi_largmath.o \
apilib/llman/octapi_llman.o
all: test
test.o: test.c
test: test.o $(OCTASIC_OBJS)
clean:
rm -rf test test.o
rm -rf $(OCTASIC_OBJS)

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,93 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: octapi_bt0_private.h
Copyright (c) 2001 Octasic Inc. All rights reserved.
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-PR49 $
$Octasic_Revision: 11 $
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#ifndef __OCTAPI_BT0_PRIVATE_H__
#define __OCTAPI_BT0_PRIVATE_H__
#include "octdef.h"
#define OCTAPI_BT0_LKEY_LARGER 0x0
#define OCTAPI_BT0_LKEY_SMALLER 0x1
#define OCTAPI_BT0_LKEY_EQUAL 0x2
typedef struct __OCTAPI_BT0_LINK__
{
UINT32 node_number;
UINT32 depth;
} OCTAPI_BT0_LINK;
typedef struct __OCTAPI_BT0_NODE__
{
UINT32 next_free_node; /* Number of the next node in the free node link-list.*/
OCTAPI_BT0_LINK l[2]; /* 0 = left link; 1 = right link.*/
} OCTAPI_BT0_NODE;
typedef struct __OCTAPI_BT0__
{
UINT32 number_of_items; /* Number of items on total that can be allocated in the tree.*/
UINT32 key_size; /* Size is in UINT32s*/
UINT32 data_size; /* Size is in UINT32s*/
/* Empty node linked-list:*/
UINT32 next_free_node; /* 0xFFFFFFFF means that no nodes are free.*/
/* Tree as such:*/
OCTAPI_BT0_NODE * node; /* Array of nodes (number_of_items in size).*/
/* Tree root:*/
OCTAPI_BT0_LINK root_link;
/* Associated key structure*/
UINT32 * key; /* Array of keys associated to NODEs.*/
/* Associated data structure.*/
UINT32 * data; /* Array of data associated to NODEs.*/
UINT32 invalid_value;
UINT32 no_smaller_key;
} OCTAPI_BT0;
void OctApiBt0CorrectPointers( OCTAPI_BT0 * bb );
UINT32 OctApiBt0AddNode2( OCTAPI_BT0 * bb, OCTAPI_BT0_LINK * link, UINT32 * lkey, UINT32 new_node_number );
UINT32 OctApiBt0AddNode3( OCTAPI_BT0 * bb, OCTAPI_BT0_LINK * link, UINT32 * lkey, UINT32 *p_new_node_number );
UINT32 OctApiBt0AddNode4(OCTAPI_BT0 * bb,OCTAPI_BT0_LINK * link,UINT32 * lkey,UINT32 *p_new_node_number, UINT32 *p_prev_node_number, UINT32 state );
UINT32 OctApiBt0KeyCompare( OCTAPI_BT0 * bb, OCTAPI_BT0_LINK * link, UINT32 * lkey );
void OctApiBt0UpdateLinkDepth( OCTAPI_BT0 * bb, OCTAPI_BT0_LINK * link );
void OctApiBt0Rebalance( OCTAPI_BT0 * bb, OCTAPI_BT0_LINK * root_link );
void OctApiBt0ExternalHeavy( OCTAPI_BT0 * bb, OCTAPI_BT0_LINK * root_link );
UINT32 OctApiBt0RemoveNode2( OCTAPI_BT0 * bb, OCTAPI_BT0_LINK * link, UINT32 * lkey, OCTAPI_BT0_LINK * link_to_removed_node, UINT32 state, OCTAPI_BT0_LINK * volatile_grandparent_link );
#endif /*__OCTAPI_BT0_PRIVATE_H__*/

View File

@ -0,0 +1,628 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: octapi_largmath.h
Copyright (c) 2001-2007 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-PR49 $
$Octasic_Revision: 10 $
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#include "apilib/octapi_largmath.h"
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
| API UTILITIES
|
| Function: OctApiLmAdd.
|
| Description: This function adds 2 numbers, a and b. Number a is
| (alen + 1) * 32 bits long; b is (blen + 1) * 32 bits long. The
| result is (zlen + 1) * 32 bits long. It the function succeeds it returns
| GENERIC_OK, else GENERIC_ERROR.
|
| -----------------------------------------------------------------------
| | Variable | Type | Description
| -----------------------------------------------------------------------
| *a UINT32 The array containing the first number.
| alen USHORT The length of array a, minus 1 (0 - 99).
| *b UINT32 The array containing the second number.
| blen USHORT The length of array b, minus 1 (0 - 99).
| *z UINT32 The array containing the resulting number.
| zlen USHORT The length of array z, minus 1 (0 - 99).
|
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_OctApiLmAdd
UINT32 OctApiLmAdd(UINT32 * a,USHORT alen,UINT32 * b,USHORT blen,UINT32 * z, USHORT zlen)
{
USHORT i;
UINT32 temp;
UINT32 carry=0;
UINT32 aprim;
UINT32 bprim;
/* Check for array lengths.*/
if (alen > zlen || blen > zlen) return(OCTAPI_LM_ARRAY_SIZE_MISMATCH);
for(i=0;i<=zlen;i++)
{
if (i <= alen) aprim = *(a+i); else aprim = 0;
if (i <= blen) bprim = *(b+i); else bprim = 0;
temp = aprim + bprim + carry;
/* Calculate carry for next time.*/
if (carry == 0)
if (temp < aprim) carry = 1; else carry = 0;
else
if (temp <= aprim) carry = 1; else carry = 0;
/* Write new value.*/
*(z+i) = temp;
}
/* Check for overflow.*/
if (carry == 1) return(OCTAPI_LM_OVERFLOW);
/* All is well.*/
return(GENERIC_OK);
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
| API UTILITIES
|
| Function: OctApiLmSubtract.
|
| Description: This function subtracts 2 numbers, a and b. Number a is
| (alen + 1) * 32 bits long; b is (blen + 1) * 32 bits long. The result
| is (zlen + 1) * 32 bits long. It the function succeeds it returns
| GENERIC_OK, else GENERIC_ERROR.
|
| -----------------------------------------------------------------------
| | Variable | Type | Description
| -----------------------------------------------------------------------
| *a UINT32 The array containing the first number.
| alen USHORT The length of array a, minus 1 (0 - 99).
| *bneg UINT32 The array containing the second number.
| blen USHORT The length of array b, minus 1 (0 - 99).
| *z UINT32 The array containing the resulting number.
| zlen USHORT The length of array z, minus 1 (0 - 99).
| *neg USHORT Indicates if the result is negative
| (TRUE/FALSE).
|
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_OctApiLmSubtract
UINT32 OctApiLmSubtract(UINT32 * a,USHORT alen,UINT32 * bneg,USHORT blen,UINT32 * z,USHORT zlen,USHORT * neg)
{
USHORT i;
UINT32 temp;
UINT32 carry=1;
UINT32 aprim;
UINT32 bprim;
/* Check for array lengths.*/
if (alen > zlen || blen > zlen) return(OCTAPI_LM_ARRAY_SIZE_MISMATCH);
for(i=0;i<=zlen;i++)
{
if (i <= alen) aprim = *(a+i); else aprim = 0;
if (i <= blen) bprim = ~(*(bneg+i)); else bprim = 0xFFFFFFFF;
temp = aprim + bprim + carry;
/* Calculate carry for next time.*/
if (carry == 0)
if (temp < aprim) carry = 1; else carry = 0;
else
if (temp <= aprim) carry = 1; else carry = 0;
/* Write new value.*/
*(z+i) = temp;
}
/* Check for overflow, which means negative number!*/
if (carry == 0)
{
/* Number is not of right neg. Invert and add one to correct neg.*/
for(i=0;i<=zlen;i++)
*(z+i) = ~(*(z+i));
temp = 1;
OctApiLmAdd(&temp,0,z,zlen,z,zlen);
*neg = TRUE;
return(GENERIC_OK);
}
/* Result is positive.*/
*neg = FALSE;
return(GENERIC_OK);
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
| API UTILITIES
|
| Function: OctApiLmCompare.
|
| Description: This function compares two numbers (arrays) of equal lengths.
| Number a is (alen + 1) * 32 bits long; b is (blen + 1) * 32 bits long. The result
|
| -----------------------------------------------------------------------
| | Variable | Type | Description
| -----------------------------------------------------------------------
| *a UINT32 The array containing the first number.
| alen USHORT The length of array a, minus 1 (0 - 99).
| *b UINT32 The array containing the second number.
| blen USHORT The length of array b, minus 1 (0 - 99).
| *neg USHORT Result of compare.
|
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_OctApiLmCompare
UINT32 OctApiLmCompare(UINT32 * a,USHORT alen,UINT32 * bneg,USHORT blen,USHORT * neg)
{
USHORT i;
UINT32 temp;
UINT32 carry=1;
UINT32 aprim;
UINT32 bprim;
UINT32 zlen;
/* Set zlen to alen or blen (which ever is longer)*/
if (alen < blen)
zlen = blen;
else
zlen = alen;
for(i=0;i<=zlen;i++)
{
if (i <= alen) aprim = *(a+i); else aprim = 0;
if (i <= blen) bprim = ~(*(bneg+i)); else bprim = 0xFFFFFFFF;
temp = aprim + bprim + carry;
/* Calculate carry for next time.*/
if (carry == 0)
if (temp < aprim) carry = 1; else carry = 0;
else
if (temp <= aprim) carry = 1; else carry = 0;
}
/* Check for overflow, which means negative number!*/
if (carry == 0)
{
*neg = TRUE;
return(GENERIC_OK);
}
/* Result is positive.*/
*neg = FALSE;
return(GENERIC_OK);
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
| API UTILITIES
|
| Function: OctApiLmSubtract.
|
| Description: This function multiplies 2 numbers, a and b. Number a and
| b are both (ablen + 1) * 32 bits long. The result is twice as
| long. If the functions succeeds if returns GENERIC_OK,
| else GENERIC_ERROR.
|
| -----------------------------------------------------------------------
| | Variable | Type | Description
| -----------------------------------------------------------------------
| *a UINT32 The array containing the first number.
| *b UINT32 The array containing the second number.
| ablen USHORT The length of arrays a and b, minus 1 (0 - 99).
| *z UINT32 The array containing the resulting number.
|
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_OctApiLmMultiply
UINT32 OctApiLmMultiply(UINT32 * a,UINT32 * b,USHORT ablen,UINT32 * z)
{
USHORT i,j,k;
USHORT nos;
UINT32 lownum;
UINT32 highnum;
USHORT longnumi;
USHORT longnumj;
USHORT indentw,indentl;
/* Caculate number of shorts in a and b.*/
nos = (USHORT)((ablen+1) * 2);
/* Clear answer word.*/
for(i=0;i<nos;i++)
*(z+i) = 0;
{
USHORT optimizea, optimizeb;
USHORT l;
optimizea = TRUE;
optimizeb = TRUE;
for(l = 1; l < ablen+1; l++)
{
if(*(a+l) != 0)
optimizea = FALSE;
if(*(b+l) != 0)
optimizeb = FALSE;
}
if(*a > OCTAPI_LM_MAX_OPTIMIZE_MUL)
optimizea = FALSE;
if(*b > OCTAPI_LM_MAX_OPTIMIZE_MUL)
optimizeb = FALSE;
if(optimizea == TRUE)
{
for(l = 0; l < *a; l++)
OctApiLmAdd(z, (USHORT)(nos-1), b, ablen, z, (USHORT)(nos-1));
return(GENERIC_OK);
}
if(optimizeb == TRUE)
{
for(l = 0; l < *b; l++)
OctApiLmAdd(z, (USHORT)(nos-1), a, ablen, z, (USHORT)(nos-1));
return(GENERIC_OK);
}
}
for(i=0;i<nos;i++)
{
longnumi = (USHORT)( i/2 );
/* One iteration per short in a.*/
if ((i%2) == 0)
lownum = *(a+longnumi) & 0xFFFF; /* Even word. Lower part of long.*/
else
lownum = *(a+longnumi)>>16; /* Odd word. Upper part of long.*/
for(j=0;j<nos;j++)
{
UINT32 product;
longnumj = (USHORT)( j/2 );
/* One iteration per short in a.*/
if ((j%2) == 0)
highnum = *(b+longnumj) & 0xFFFF; /* Even word. Lower part of long.*/
else
highnum = *(b+longnumj)>>16; /* Odd word. Upper part of long.*/
/* Find the word indent of the answer. 0 = no indent. 1 = one word indent.*/
indentw = (USHORT)( j+i );
indentl = (USHORT)( indentw / 2 );
/* Multiply both numbers.*/
product = highnum * lownum;
/* After multiplying both numbers, add result to end result.*/
if ((indentw % 2) == 0) /* Even word boundary, addition in one shot!*/
{
UINT32 carry=0;
UINT32 temp;
UINT32 addme;
for(k=indentl;k<nos;k++)
{
if (k==indentl) addme = product; else addme = 0;
temp = *(z+k) + addme + carry;
/* Calculate carry for next time.*/
if (carry == 0)
if (temp < addme) carry = 1; else carry = 0;
else
if (temp <= addme) carry = 1; else carry = 0;
/* Set value.*/
*(z+k) = temp;
}
/* Carry should always be 0.*/
if (carry == 1) return(GENERIC_ERROR);
}
else /* Odd word boundary, addition in two shots.*/
{
UINT32 carry=0;
UINT32 temp;
UINT32 addme;
for(k=indentl;k<nos;k++)
{
if (k==indentl) addme = product<<16;
else if (k==(indentl+1)) addme = product>>16;
else addme = 0;
temp = *(z+k) + addme + carry;
/* Calculate carry for next time.*/
if (carry == 0)
if (temp < addme) carry = 1; else carry = 0;
else
if (temp <= addme) carry = 1; else carry = 0;
/* Set value.*/
*(z+k) = temp;
}
/* Carry should always be 0.*/
if (carry == 1) return(GENERIC_ERROR);
}
}
}
return(GENERIC_OK);
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
| API UTILITIES
|
| Function: OctApiLmDivide.
|
| Description: This function divides the number n by the number d. The
| quotient is placed in q and the remainder in r. The arrays
| n, d, q and r are all of the same length, namely (ndqrlen + 1).
| If the functions succeeds if returns GENERIC_OK, else
| GENERIC_ERROR.
|
| -----------------------------------------------------------------------
| | Variable | Type | Description
| -----------------------------------------------------------------------
| *a UINT32 The array containing the first number.
| *b UINT32 The array containing the second number.
| ablen USHORT The length of arrays a and b, minus 1 (0 - 99).
| *z UINT32 The array containing the resulting number.
|
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_OctApiLmDivide
UINT32 OctApiLmDivide(UINT32 * n,UINT32 * d,UINT32 * q,UINT32 * r,USHORT ndqrlen)
{
/* Proceedure for division:*/
/* r = n*/
/* q = 0*/
/* shift = initial_denominator_shift (for upper '1's to be in same bit position).*/
/* d <<= shift;*/
/* Start loop:*/
/* compare r and d*/
/* if r > d then*/
/* r -= d;*/
/* write a '1' to bit "shift" of array q.*/
/* end if;*/
/* if shift == 0 then*/
/* return;*/
/* else*/
/* shift--;*/
/* d>>=1;*/
/* goto "Start loop:"*/
/* end if;*/
UINT32 i;
UINT32 result;
USHORT shift,n_msb,d_msb;
USHORT neg;
USHORT ConditionFlag = TRUE;
/* r = n*/
for(i=0;i<=ndqrlen;i++)
*(r+i) = *(n+i);
/* q = 0*/
for(i=0;i<=ndqrlen;i++)
*(q+i) = 0;
/* shift = initial_denominator_shift (for upper '1's to be in same bit position).*/
result = OctApiLmGetMsb(d,ndqrlen,&d_msb);
if (result != GENERIC_OK) return(result);
result = OctApiLmGetMsb(n,ndqrlen,&n_msb);
if (result != GENERIC_OK) return(result);
if (d_msb == 0xFFFF) /* Division by 0.*/
return(OCTAPI_LM_DIVISION_BY_ZERO);
if (n_msb == 0xFFFF) /* 0/n, returns 0 R 0.*/
return(GENERIC_OK);
if (n_msb < d_msb) /* x/y, where x is smaller than y, returns 0 R x.*/
return(GENERIC_OK);
shift = (USHORT)( n_msb - d_msb );
/* Shift d to match n highest bit position.*/
result = OctApiLmShiftn(d,ndqrlen,TRUE,shift);
if (result != GENERIC_OK) return(result);
/* Start loop:*/
while( ConditionFlag == TRUE )
{
/* compare r and d*/
result = OctApiLmCompare(r,ndqrlen,d,ndqrlen,&neg);
if (result != GENERIC_OK) return(result);
if (neg == FALSE) /* Subtraction can be done(do it).*/
{
/* r -= d;*/
result = OctApiLmSubtract(r,ndqrlen,d,ndqrlen,r,ndqrlen,&neg);
if (result != GENERIC_OK) return(result);
/* write a '1' to bit "shift" of array q.*/
*(q+(shift/32)) |= (UINT32)0x1 << (shift%32);
}
/* if shift == 0 then*/
/* return;*/
if (shift == 0) return(GENERIC_OK);
/* shift--;*/
/* d>>=1;*/
/* goto "Start loop:"*/
shift--;
OctApiLmShiftRight1(d,ndqrlen);
}
return(GENERIC_OK);
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
| API UTILITIES
|
| Function: octapi_lm_shifright1.
|
| Description: The function is for internal use only.
|
| -----------------------------------------------------------------------
| | Variable | Type | Description
| -----------------------------------------------------------------------
| N/A.
|
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_OctApiLmShiftRight1
UINT32 OctApiLmShiftRight1(UINT32 * a,USHORT alen)
{
UINT32 i;
/* Start with lower long and move up by one long each time,*/
/* shifting each long to the right by one bit. The upper bit*/
/* of the next long will have to be concatenated each time a*/
/* loop is executed. For the last long, leave the highest bit*/
/* intact.*/
for(i=0;i<alen;i++)
{
*(a+i)>>=1; /* Shift long by one to the right.*/
*(a+i)|=*(a+i+1)<<31;
}
*(a+alen)>>=1; /* Shift last long, leaving it's highest bit at 0.*/
return(GENERIC_OK);
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
| API UTILITIES
|
| Function: OctApiLmShiftn.
|
| Description: The function is for internal use only.
|
| -----------------------------------------------------------------------
| | Variable | Type | Description
| -----------------------------------------------------------------------
| N/A.
|
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_OctApiLmShiftn
UINT32 OctApiLmShiftn(UINT32 * a,USHORT alen,USHORT shiftleft,USHORT shiftn)
{
UINT32 i;
USHORT long_offset;
USHORT bit_offset;
long_offset = (USHORT)( shiftn / 32 );
bit_offset = (USHORT)( shiftn % 32 );
if (shiftleft == TRUE) /* Shift left.*/
{
for(i=alen;i<=alen;i--)
{
/* Fill upper bits of long.*/
if (i >= long_offset)
*(a+i) = *(a+i-long_offset) << bit_offset;
else
*(a+i) = 0;
/* Fill lower bits of long.*/
if (i > long_offset && bit_offset != 0)
*(a+i) |= *(a+i-long_offset-1) >> (32-bit_offset);
}
}
else /* Shift right.*/
{
for(i=0;i<=alen;i++)
{
/* Fill lower bits of long.*/
if ((alen-i) >= long_offset)
*(a+i) = *(a+i+long_offset) >> bit_offset;
else
*(a+i) = 0;
/* Fill upper bits of long.*/
if ((alen-i) > long_offset && bit_offset != 0)
*(a+i) |= *(a+i+long_offset+1) << (32-bit_offset);
}
}
return(GENERIC_OK);
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
| API UTILITIES
|
| Function: OctApiLmGetMsb.
|
| Description: The function is for internal use only.
|
| -----------------------------------------------------------------------
| | Variable | Type | Description
| -----------------------------------------------------------------------
| N/A.
|
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_OctApiLmGetMsb
UINT32 OctApiLmGetMsb(UINT32 * a,USHORT alen,USHORT * msb_pos)
{
UINT32 i,j;
UINT32 x;
for(i=alen;i<=alen;i--)
{
if (*(a+i) == 0) continue;
x = *(a+i);
for(j=31;j<=31;j--)
{
/* Test for bit being '1'.*/
if ((x & 0x80000000) != 0)
{
*msb_pos=(USHORT)(j+(32*i));
return(GENERIC_OK);
}
/* Shift bit one bit position, and try again.*/
x<<=1;
}
}
/* MSB not found.*/
*msb_pos = 0xFFFF;
return(GENERIC_OK);
}
#endif

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,206 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: octapi_llman_private.h
Copyright (c) 2001 Octasic Inc. All rights reserved.
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-PR49 $
$Octasic_Revision: 13 $
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#ifndef __OCTAPI_LLMAN_PRIVATE_H__
#define __OCTAPI_LLMAN_PRIVATE_H__
#include "octdef.h"
/**************************************** llm_alloc section **********************************************/
/* Most basic linked list model.
LLM_STR contains a list of "number_of_items" that
are each "unassigned" or "assigned". When requesting
a new element, llm_alloc must choose an "unassigned"
element. An element that is deallocated will be last
to be allocated.
*/
typedef struct _LLM_ALLOC
{
UINT32 *linked_list; /* Each item is either used (0xFFFFFFFE)*/
/* or unused (pointer to next unused item, 0xFFFFFFFF means last item reached).*/
UINT32 next_avail_num; /* Points to the next available item in linked list. (0xFFFFFFFF means none available)*/
UINT32 number_of_items; /* Total number of items in linked list.*/
UINT32 allocated_items; /* Allocated items in linked list.*/
} LLM_ALLOC;
typedef struct _TLLM_ALLOC_NODE_
{
UINT32 value; /* Each item is either used (0xFFFFFFFE)*/
/* or unused (pointer to next unused item, 0xFFFFFFFF means last item reached).*/
UINT32 timeout[2]; /* Timeout value that must be exceeded for the node to be considered free again.*/
} TLLM_ALLOC_NODE;
typedef struct _TLLM_ALLOC_
{
TLLM_ALLOC_NODE *linked_list; /* List of nodes used by the link list.*/
UINT32 next_avail_num; /* Points to the next available item in linked list. (0xFFFFFFFF means none available)*/
UINT32 number_of_items; /* Total number of items in linked list.*/
UINT32 allocated_items; /* Allocated items in linked list.*/
UINT32 number_of_timeout; /* Number of block currently in timeout.*/
UINT32 next_timeout_num; /* Points to the next block currently in timeout.*/
UINT32 last_timeout_num; /* Last node of the timeout list.*/
UINT32 last_known_time[2]; /* last known time.*/
} TLLM_ALLOC;
/*
void octapi_llm_alloc_build_structure(void *l, LLM_ALLOC ** ls);
*/
/**************************************** llm_alloc section **********************************************/
/**************************************** llm_list section **********************************************/
/* This section contains memory structures and functions used
to maintain a variable number of lists (FIFOs) that each
have a variable amount of items. A total amount of items
can be assigned through-out all the lists. Each item in
each list contains a UINT32 specified by the software using
the lists. Each used item in the list is accessible through
it's position in the list. */
typedef struct _LLM_LIST_HEAD
{
UINT32 list_length; /* Current number of items in the list.*/
/* 0xFFFFFFFF means that the list is not used.*/
UINT32 head_pointer; /* Number of the item in the item pool that is the first of this list.*/
/* 0xFFFFFFFF indicates end-of-list link.*/
UINT32 tail_pointer; /* Number of the item in the item pool that is the last of this list.*/
/* Item cache (pointer within the list of the last accessed item):*/
UINT32 cache_item_number; /* Number of the last accessed item in the list. 0xFFFFFFFF indicates invalid cache.*/
UINT32 cache_item_pointer; /* Number of the last accessed item in the item pool.*/
} LLM_LIST_HEAD;
typedef struct _LLM_LIST_ITEM
{
UINT32 forward_link; /* Number of the item in the item pool that is next in this list.*/
/* 0xFFFFFFFF indicates end-of-list link.*/
/* User item info (variable size)*/
UINT32 user_info[1];
} LLM_LIST_ITEM;
typedef struct _LLM_LIST
{
UINT32 user_info_bytes; /* In bytes, size of the user info in a single item.*/
UINT32 user_info_size; /* In bytes, size of the user info in a single item.*/
UINT32 item_size;
UINT32 head_alloc_size;
UINT32 total_items;
UINT32 assigned_items;
UINT32 total_lists;
UINT32 assigned_lists;
UINT32 next_empty_item; /* Contains a pointer to the next empty item in the*/
/* item pool.*/
/* Table of all the possible list heads:*/
LLM_LIST_HEAD * lh;
void * list_head_alloc; /* LLM_ALLOC structure used for list head allocation!*/
/* Table of the list items:*/
LLM_LIST_ITEM * li;
} LLM_LIST;
/**********************************************************************************/
/* These structures are are used by the Llm2 functions to creates lists of ordered
items based on a key given by the user when a new node is inserted in a list. */
typedef struct _LLM2_LIST_HEAD
{
UINT32 list_length; /* Current number of items in the list.*/
/* 0xFFFFFFFF means that the list is not used.*/
UINT32 head_pointer; /* Number of the item in the item pool that is the first of this list.*/
/* 0xFFFFFFFF indicates end-of-list link.*/
UINT32 tail_pointer; /* Number of the item in the item pool that is the last of this list.*/
} LLM2_LIST_HEAD;
typedef struct _LLM2_LIST_ITEM
{
UINT32 forward_link; /* Number of the item in the item pool that is next in this list.*/
/* 0xFFFFFFFF indicates end-of-list link.*/
UINT32 key; /* Key used to order the entries.*/
/* User item info (variable size)*/
UINT32 user_info[1];
} LLM2_LIST_ITEM;
typedef struct _LLM2_LIST
{
UINT32 user_info_bytes; /* In bytes, size of the user info in a single item.*/
UINT32 user_info_size; /* In bytes, size of the user info in a single item.*/
UINT32 item_size;
UINT32 head_alloc_size;
UINT32 total_items;
UINT32 assigned_items;
UINT32 total_lists;
UINT32 assigned_lists;
UINT32 next_empty_item; /* Contains a pointer to the next empty item in the*/
/* item pool.*/
/* Table of all the possible list heads:*/
LLM2_LIST_HEAD * lh;
void * list_head_alloc; /* LLM_ALLOC structure used for list head allocation!*/
/* Table of the list items:*/
LLM2_LIST_ITEM * li;
} LLM2_LIST;
/*void octapi_llm_list_build_structure(void *l, LLM_LIST ** ls);*/
LLM_LIST_ITEM * OctApiLlmListGetItemPointer( LLM_LIST * ls, UINT32 item_number );
LLM2_LIST_ITEM * OctApiLlm2ListGetItemPointer( LLM2_LIST * ls, UINT32 item_number );
UINT32 OctApiTllmCheckTimeoutList( TLLM_ALLOC *ls, UINT32 current_time[2] );
VOID * OctApiLlmMemCpy( VOID *f_pvDestination, const VOID * f_pvSource, UINT32 f_ulSize );
/**************************************** llm_list section **********************************************/
#endif /*__OCTAPI_LLMAN_PRIVATE_H__*/

51
xpp/oct612x/get_discards Executable file
View File

@ -0,0 +1,51 @@
#!/usr/bin/php
<?php
/*
* Written by Jared Smith and Kevin P. Fleming
*
* Copyright (C) 2006, Jared Smith and Digium, Inc.
*
*/
# create an array of all the different prefixes you want to match on,
# as Perl-compatible regular expressions
# (yes, this is a stupid example, as the second one is just a simplified
# version of the first, but it's just an example)
$prefixes = array('\.text\.Oct');
$fp = fopen('test.map','r');
while (!feof($fp))
{
# Loop until we find the top of section we want
while ($line = fgets($fp))
{
if (preg_match('/Discarded input sections/i',$line))
{
break;
}
}
# Now loop until we find the next section
while ($line = fgets($fp))
{
if (preg_match('/Memory Configuration/i',$line))
{
# we found it!
break;
}
foreach ($prefixes as $prefix)
{
if (preg_match("/$prefix/i",$line))
{
preg_match("/Oct.*/", $line, $matches);
$line2 = fgets($fp);
echo "#define SKIP_".$matches[0]." 1\n";
break;
}
}
}
}
fclose($fp);
?>

View File

@ -0,0 +1,75 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: octapi_bt0.h
Copyright (c) 2001-2007 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-PR49 $
$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__*/

View File

@ -0,0 +1,69 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: octapi_largmath.h
Copyright (c) 2001-2007 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-PR49 $
$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__ */

View File

@ -0,0 +1,142 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: octapi_llman.h
Copyright (c) 2001-2007 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-PR49 $
$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__ */

View File

@ -0,0 +1,297 @@
/* Define macros here to suppress functions from the API being built */
#if 1
#define SKIP_Oct6100AdpcmChanOpenDef 1
#define SKIP_Oct6100AdpcmChanOpen 1
#define SKIP_Oct6100AdpcmChanCloseDef 1
#define SKIP_Oct6100AdpcmChanClose 1
#define SKIP_Oct6100AdpcmChanOpenSer 1
#define SKIP_Oct6100ApiCheckAdpcmChanParams 1
#define SKIP_Oct6100ApiReserveAdpcmChanResources 1
#define SKIP_Oct6100ApiWriteAdpcmChanStructs 1
#define SKIP_Oct6100ApiUpdateAdpcmChanEntry 1
#define SKIP_Oct6100AdpcmChanCloseSer 1
#define SKIP_Oct6100ApiAssertAdpcmChanParams 1
#define SKIP_Oct6100ApiInvalidateAdpcmChanStructs 1
#define SKIP_Oct6100ApiReleaseAdpcmChanResources 1
#define SKIP_Oct6100ApiReserveAdpcmChanEntry 1
#define SKIP_Oct6100ApiReleaseAdpcmChanEntry 1
#define SKIP_Oct6100ChannelCloseDef 1
#define SKIP_Oct6100ChannelClose 1
#define SKIP_Oct6100ChannelCreateBiDirDef 1
#define SKIP_Oct6100ChannelCreateBiDir 1
#define SKIP_Oct6100ChannelDestroyBiDirDef 1
#define SKIP_Oct6100ChannelDestroyBiDir 1
#define SKIP_Oct6100ChannelBroadcastTsstAddDef 1
#define SKIP_Oct6100ChannelBroadcastTsstAdd 1
#define SKIP_Oct6100ChannelBroadcastTsstRemove 1
#define SKIP_Oct6100ChannelGetStatsDef 1
#define SKIP_Oct6100ChannelGetStats 1
#define SKIP_Oct6100ChannelMuteDef 1
#define SKIP_Oct6100ChannelMute 1
#define SKIP_Oct6100ChannelUnMuteDef 1
#define SKIP_Oct6100ChannelUnMute 1
#define SKIP_Oct6100ChannelCloseSer 1
#define SKIP_Oct6100ApiAssertChannelParams 1
#define SKIP_Oct6100ApiInvalidateChannelStructs 1
#define SKIP_Oct6100ApiReleaseChannelResources 1
#define SKIP_Oct6100ChannelBroadcastTsstAddSer 1
#define SKIP_Oct6100ApiCheckChanTsstAddParams 1
#define SKIP_Oct6100ApiReserveTsstAddResources 1
#define SKIP_Oct6100ApiWriteTsstAddStructs 1
#define SKIP_Oct6100ApiUpdateTsstAddChanEntry 1
#define SKIP_Oct6100ApiChannelGetStatsSer 1
#define SKIP_Oct6100ApiReserveBiDirChanEntry 1
#define SKIP_Oct6100ApiReleaseBiDirChanEntry 1
#define SKIP_Oct6100ApiRetrieveNlpConfDword 1
#define SKIP_Oct6100ApiSaveNlpConfDword 1
#define SKIP_Oct6100ChannelCreateBiDirSer 1
#define SKIP_Oct6100ApiCheckChannelCreateBiDirParams 1
#define SKIP_Oct6100ApiReserveChannelCreateBiDirResources 1
#define SKIP_Oct6100ApiWriteChannelCreateBiDirStructs 1
#define SKIP_Oct6100ApiUpdateBiDirChannelEntry 1
#define SKIP_Oct6100ChannelDestroyBiDirSer 1
#define SKIP_Oct6100ApiAssertDestroyBiDirChanParams 1
#define SKIP_Oct6100ApiInvalidateBiDirChannelStructs 1
#define SKIP_Oct6100ApiReleaseBiDirChannelResources 1
#define SKIP_Oct6100ApiOctFloatToDbEnergyByte 1
#define SKIP_Oct6100ApiOctFloatToDbEnergyHalf 1
#define SKIP_Oct6100ChannelMuteSer 1
#define SKIP_Oct6100ApiAssertChannelMuteParams 1
#define SKIP_Oct6100ChannelUnMuteSer 1
#define SKIP_Oct6100ApiAssertChannelUnMuteParams 1
#define SKIP_Oct6100ApiMuteSinWithFeatures 1
#define SKIP_Oct6100ApiMuteChannelPorts 1
#define SKIP_Oct6100CreateLocalInstanceDef 1
#define SKIP_Oct6100CreateLocalInstance 1
#define SKIP_Oct6100DestroyLocalInstanceDef 1
#define SKIP_Oct6100DestroyLocalInstance 1
#define SKIP_Oct6100GetHwRevisionDef 1
#define SKIP_Oct6100GetHwRevision 1
#define SKIP_Oct6100FreeResourcesDef 1
#define SKIP_Oct6100FreeResources 1
#define SKIP_Oct6100ProductionBistDef 1
#define SKIP_Oct6100ProductionBist 1
#define SKIP_Oct6100ApiGetVersionDef 1
#define SKIP_Oct6100ApiGetVersion 1
#define SKIP_Oct6100FreeResourcesSer 1
#define SKIP_Oct6100ProductionBistSer 1
#define SKIP_Oct6100ChipGetStatsDef 1
#define SKIP_Oct6100ChipGetStats 1
#define SKIP_Oct6100ChipGetImageInfoDef 1
#define SKIP_Oct6100ChipGetImageInfo 1
#define SKIP_Oct6100ChipGetStatsSer 1
#define SKIP_Oct6100ConfBridgeOpenDef 1
#define SKIP_Oct6100ConfBridgeOpen 1
#define SKIP_Oct6100ConfBridgeClose 1
#define SKIP_Oct6100ConfBridgeChanAddDef 1
#define SKIP_Oct6100ConfBridgeChanAdd 1
#define SKIP_Oct6100ConfBridgeChanRemove 1
#define SKIP_Oct6100ConfBridgeChanMuteDef 1
#define SKIP_Oct6100ConfBridgeChanMute 1
#define SKIP_Oct6100ConfBridgeChanUnMuteDef 1
#define SKIP_Oct6100ConfBridgeChanUnMute 1
#define SKIP_Oct6100ConfBridgeDominantSpeakerSetDef 1
#define SKIP_Oct6100ConfBridgeDominantSpeakerSet 1
#define SKIP_Oct6100ConfBridgeMaskChangeDef 1
#define SKIP_Oct6100ConfBridgeMaskChange 1
#define SKIP_Oct6100ConfBridgeGetStatsDef 1
#define SKIP_Oct6100ConfBridgeGetStats 1
#define SKIP_Oct6100ConfBridgeOpenSer 1
#define SKIP_Oct6100ApiCheckBridgeParams 1
#define SKIP_Oct6100ApiReserveBridgeResources 1
#define SKIP_Oct6100ApiUpdateBridgeEntry 1
#define SKIP_Oct6100ConfBridgeChanAddSer 1
#define SKIP_Oct6100ApiCheckBridgeAddParams 1
#define SKIP_Oct6100ApiReserveBridgeAddResources 1
#define SKIP_Oct6100ApiBridgeEventAdd 1
#define SKIP_Oct6100ApiBridgeAddParticipantToChannel 1
#define SKIP_Oct6100ConfBridgeChanMuteSer 1
#define SKIP_Oct6100ApiCheckBridgeMuteParams 1
#define SKIP_Oct6100ApiUpdateBridgeMuteResources 1
#define SKIP_Oct6100ConfBridgeChanUnMuteSer 1
#define SKIP_Oct6100ApiCheckBridgeUnMuteParams 1
#define SKIP_Oct6100ApiUpdateBridgeUnMuteResources 1
#define SKIP_Oct6100ConfBridgeDominantSpeakerSetSer 1
#define SKIP_Oct6100ApiCheckBridgeDominantSpeakerParams 1
#define SKIP_Oct6100ApiUpdateBridgeDominantSpeakerResources 1
#define SKIP_Oct6100ConfBridgeMaskChangeSer 1
#define SKIP_Oct6100ApiCheckBridgeMaskChangeParams 1
#define SKIP_Oct6100ApiUpdateMaskModifyResources 1
#define SKIP_Oct6100ApiBridgeUpdateMask 1
#define SKIP_Oct6100ConfBridgeGetStatsSer 1
#define SKIP_Oct6100ApiReserveBridgeEntry 1
#define SKIP_Oct6100ApiReserveFlexConfParticipantEntry 1
#define SKIP_Oct6100DebugSelectChannelDef 1
#define SKIP_Oct6100DebugSelectChannel 1
#define SKIP_Oct6100DebugGetDataDef 1
#define SKIP_Oct6100DebugGetData 1
#define SKIP_Oct6100DebugSelectChannelSer 1
#define SKIP_Oct6100DebugGetDataSer 1
#define SKIP_Oct6100BufferPlayoutGetEventDef 1
#define SKIP_Oct6100BufferPlayoutGetEvent 1
#define SKIP_Oct6100BufferPlayoutGetEventSer 1
#define SKIP_Oct6100InterruptConfigureDef 1
#define SKIP_Oct6100InterruptConfigure 1
#define SKIP_Oct6100ApiReserveBufferPlayoutMemoryNode 1
#define SKIP_Oct6100ApiReleaseBufferPlayoutMemoryNode 1
#define SKIP_Oct6100ApiReserveBufferPlayoutMemory 1
#define SKIP_Oct6100ApiReleaseBufferPlayoutMemory 1
#define SKIP_Oct6100ApiCreateFeatureMask 1
#define SKIP_Oct6100MixerCopyEventCreateDef 1
#define SKIP_Oct6100MixerCopyEventCreate 1
#define SKIP_Oct6100MixerCopyEventDestroyDef 1
#define SKIP_Oct6100MixerCopyEventDestroy 1
#define SKIP_Oct6100MixerCopyEventCreateSer 1
#define SKIP_Oct6100ApiCheckCopyEventCreateParams 1
#define SKIP_Oct6100ApiReserveCopyEventCreateResources 1
#define SKIP_Oct6100ApiWriteCopyEventCreateStructs 1
#define SKIP_Oct6100ApiUpdateCopyEventCreateEntry 1
#define SKIP_Oct6100MixerCopyEventDestroySer 1
#define SKIP_Oct6100ApiAssertCopyEventDestroyParams 1
#define SKIP_Oct6100ApiInvalidateCopyEventStructs 1
#define SKIP_Oct6100ApiReleaseCopyEventResources 1
#define SKIP_Oct6100ApiReserveCopyEventEntry 1
#define SKIP_Oct6100ApiReleaseCopyEventEntry 1
#define SKIP_Oct6100PhasingTsstOpenDef 1
#define SKIP_Oct6100PhasingTsstOpen 1
#define SKIP_Oct6100PhasingTsstCloseDef 1
#define SKIP_Oct6100PhasingTsstClose 1
#define SKIP_Oct6100PhasingTsstOpenSer 1
#define SKIP_Oct6100ApiCheckPhasingParams 1
#define SKIP_Oct6100ApiReservePhasingResources 1
#define SKIP_Oct6100ApiWritePhasingStructs 1
#define SKIP_Oct6100ApiUpdatePhasingEntry 1
#define SKIP_Oct6100PhasingTsstCloseSer 1
#define SKIP_Oct6100ApiAssertPhasingParams 1
#define SKIP_Oct6100ApiInvalidatePhasingStructs 1
#define SKIP_Oct6100ApiReleasePhasingResources 1
#define SKIP_Oct6100ApiReservePhasingEntry 1
#define SKIP_Oct6100ApiReleasePhasingEntry 1
#define SKIP_Oct6100BufferPlayoutLoadDef 1
#define SKIP_Oct6100BufferPlayoutLoad 1
#define SKIP_Oct6100BufferPlayoutLoadBlockInitDef 1
#define SKIP_Oct6100BufferPlayoutLoadBlockInit 1
#define SKIP_Oct6100BufferPlayoutLoadBlockDef 1
#define SKIP_Oct6100BufferPlayoutLoadBlock 1
#define SKIP_Oct6100BufferPlayoutUnloadDef 1
#define SKIP_Oct6100BufferPlayoutUnload 1
#define SKIP_Oct6100BufferPlayoutAddDef 1
#define SKIP_Oct6100BufferPlayoutAdd 1
#define SKIP_Oct6100BufferPlayoutStartDef 1
#define SKIP_Oct6100BufferPlayoutStart 1
#define SKIP_Oct6100BufferPlayoutStop 1
#define SKIP_Oct6100BufferLoadSer 1
#define SKIP_Oct6100BufferLoadBlockInitSer 1
#define SKIP_Oct6100BufferLoadBlockSer 1
#define SKIP_Oct6100ApiCheckBufferParams 1
#define SKIP_Oct6100ApiCheckBufferLoadBlockParams 1
#define SKIP_Oct6100ApiReserveBufferResources 1
#define SKIP_Oct6100ApiWriteBufferInMemory 1
#define SKIP_Oct6100ApiUpdateBufferEntry 1
#define SKIP_Oct6100BufferUnloadSer 1
#define SKIP_Oct6100ApiAssertBufferParams 1
#define SKIP_Oct6100ApiReleaseBufferResources 1
#define SKIP_Oct6100BufferPlayoutAddSer 1
#define SKIP_Oct6100ApiCheckPlayoutAddParams 1
#define SKIP_Oct6100ApiWriteBufferAddStructs 1
#define SKIP_Oct6100BufferPlayoutStartSer 1
#define SKIP_Oct6100ApiCheckPlayoutStartParams 1
#define SKIP_Oct6100ApiWriteChanPlayoutStructs 1
#define SKIP_Oct6100ApiReserveBufPlayoutListEntry 1
#define SKIP_Oct6100ApiReleaseBufPlayoutListEntry 1
#define SKIP_Oct6100RemoteDebugDef 1
#define SKIP_Oct6100RemoteDebug 1
#define SKIP_Oct6100ApiCheckEndianDetectField 1
#define SKIP_Oct6100ApiCalculateChecksum 1
#define SKIP_Oct6100ApiFormResponsePkt 1
#define SKIP_Oct6100ApiCheckPktCommands 1
#define SKIP_Oct6100ApiExecutePktCommands 1
#define SKIP_Oct6100ApiCheckSessionNum 1
#define SKIP_Oct6100ApiRpcReadWord 1
#define SKIP_Oct6100ApiRpcReadBurst 1
#define SKIP_Oct6100ApiRpcReadArray 1
#define SKIP_Oct6100ApiRpcWriteWord 1
#define SKIP_Oct6100ApiRpcWriteSmear 1
#define SKIP_Oct6100ApiRpcWriteBurst 1
#define SKIP_Oct6100ApiRpcSetHotChannel 1
#define SKIP_Oct6100ApiRpcGetDebugChanIndex 1
#define SKIP_Oct6100ApiRpcDisconnect 1
#define SKIP_Oct6100ToneDetectionDisable 1
#define SKIP_Oct6100TsiCnctOpenDef 1
#define SKIP_Oct6100TsiCnctOpen 1
#define SKIP_Oct6100TsiCnctCloseDef 1
#define SKIP_Oct6100TsiCnctClose 1
#define SKIP_Oct6100TsiCnctOpenSer 1
#define SKIP_Oct6100ApiCheckTsiParams 1
#define SKIP_Oct6100ApiReserveTsiResources 1
#define SKIP_Oct6100ApiWriteTsiStructs 1
#define SKIP_Oct6100ApiUpdateTsiEntry 1
#define SKIP_Oct6100TsiCnctCloseSer 1
#define SKIP_Oct6100ApiAssertTsiParams 1
#define SKIP_Oct6100ApiInvalidateTsiStructs 1
#define SKIP_Oct6100ApiReleaseTsiResources 1
#define SKIP_Oct6100ApiReserveTsiCnctEntry 1
#define SKIP_Oct6100ApiReleaseTsiCnctEntry 1
#define SKIP_Oct6100UserDriverWriteOs 1
#define SKIP_Oct6100UserDriverWriteSmearOs 1
#define SKIP_Oct6100UserDriverWriteBurstOs 1
#define SKIP_Oct6100UserDriverReadOs 1
#define SKIP_Oct6100UserDriverReadBurstOs 1
#define SKIP_OctApiBt0AddNode 1
#define SKIP_OctApiBt0AddNode2 1
#define SKIP_OctApiBt0AddNode3 1
#define SKIP_OctApiBt0AddNode4 1
#define SKIP_OctApiBt0KeyCompare 1
#define SKIP_OctApiBt0UpdateLinkDepth 1
#define SKIP_OctApiBt0Rebalance 1
#define SKIP_OctApiBt0ExternalHeavy 1
#define SKIP_OctApiBt0RemoveNode2 1
#define SKIP_OctApiBt0RemoveNode3 1
#define SKIP_OctApiBt0RemoveNode 1
#define SKIP_OctApiBt0QueryNode2 1
#define SKIP_OctApiBt0QueryNode 1
#define SKIP_OctApiBt0GetFirstNode 1
#define SKIP_OctApiBt0FindOrAddNode 1
#define SKIP_OctApiBt0AddNodeReportPrevNodeData 1
#define SKIP_OctApiLmCompare 1
#define SKIP_OctApiLmMultiply 1
#define SKIP_OctApiLmDivide 1
#define SKIP_OctApiLmShiftRight1 1
#define SKIP_OctApiLmShiftn 1
#define SKIP_OctApiLmGetMsb 1
#define SKIP_OctApiTllmAllocGetSize 1
#define SKIP_OctApiTllmAllocInit 1
#define SKIP_OctApiTllmAllocInfo 1
#define SKIP_OctApiTllmAllocAlloc 1
#define SKIP_OctApiTllmAllocDealloc 1
#define SKIP_OctApiTllmCheckTimeoutList 1
#define SKIP_OctApiLlmListGetSize 1
#define SKIP_OctApiLlmListGetItemPointer 1
#define SKIP_OctApiLlmListInit 1
#define SKIP_OctApiLlmListInfo 1
#define SKIP_OctApiLlmListCreate 1
#define SKIP_OctApiLlmListDelete 1
#define SKIP_OctApiLlmListLength 1
#define SKIP_OctApiLlmListItemData 1
#define SKIP_OctApiLlmListInsertItem 1
#define SKIP_OctApiLlmListCreateFull 1
#define SKIP_OctApiLlmListAppendItems 1
#define SKIP_OctApiLlmListAppendAndSetItems 1
#define SKIP_OctApiLlmListSetItems 1
#define SKIP_OctApiLlmListCopyData 1
#define SKIP_OctApiLlmListRemoveItem 1
#define SKIP_OctApiLlm2ListGetSize 1
#define SKIP_OctApiLlm2ListGetItemPointer 1
#define SKIP_OctApiLlm2ListInit 1
#define SKIP_OctApiLlm2ListCreate 1
#define SKIP_OctApiLlm2ListDelete 1
#define SKIP_OctApiLlm2ListLength 1
#define SKIP_OctApiLlm2ListItemData 1
#define SKIP_OctApiLlm2ListInsertItem 1
#define SKIP_OctApiLlm2ListRemoveItem 1
#define SKIP_OctApiLlmMemCpy 1
#endif

View File

@ -0,0 +1,74 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_adpcm_chan_inst.h
Copyright (c) 2001-2007 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-PR49 $
$Octasic_Revision: 6 $
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#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__ */

View File

@ -0,0 +1,90 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_adpcm_chan_pub.h
Copyright (c) 2001-2007 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-PR49 $
$Octasic_Revision: 5 $
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#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__ */

View File

@ -0,0 +1,84 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_api.h
Copyright (c) 2001-2007 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-PR49 $
$Octasic_Revision: 23 $
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#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__ */

View File

@ -0,0 +1,138 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_api_inst.h
Copyright (c) 2001-2007 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-PR49 $
$Octasic_Revision: 40 $
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#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. */
tOCT6100_USER_SERIAL_OBJECT ulApiSerObj;
} tOCT6100_INSTANCE_API, *tPOCT6100_INSTANCE_API;
#endif /* __OCT6100_API_INST_H__ */

View File

@ -0,0 +1,69 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_apimi.h
Copyright (c) 2001-2007 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-PR49 $
$Octasic_Revision: 6 $
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#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__ */

View File

@ -0,0 +1,312 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_apiud.h
Copyright (c) 2001-2007 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-PR49 $
$Octasic_Revision: 16 $
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#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 ***************************************/
/*Change this type if your platform uses 64bits semaphores/locks */
typedef UINT32 tOCT6100_USER_SERIAL_OBJECT;
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;
tOCT6100_USER_SERIAL_OBJECT ulSerialObjHndl;
} tOCT6100_CREATE_SERIALIZE_OBJECT, *tPOCT6100_CREATE_SERIALIZE_OBJECT;
typedef struct _OCT6100_DESTROY_SERIALIZE_OBJECT_
{
PVOID pProcessContext;
tOCT6100_USER_SERIAL_OBJECT ulSerialObjHndl;
} tOCT6100_DESTROY_SERIALIZE_OBJECT, *tPOCT6100_DESTROY_SERIALIZE_OBJECT;
typedef struct _OCT6100_SEIZE_SERIALIZE_OBJECT_
{
PVOID pProcessContext;
tOCT6100_USER_SERIAL_OBJECT ulSerialObjHndl;
UINT32 ulTryTimeMs;
} tOCT6100_SEIZE_SERIALIZE_OBJECT, *tPOCT6100_SEIZE_SERIALIZE_OBJECT;
typedef struct _OCT6100_RELEASE_SERIALIZE_OBJECT_
{
PVOID pProcessContext;
tOCT6100_USER_SERIAL_OBJECT 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 const void *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__ */

View File

@ -0,0 +1,374 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_channel_inst.h
Copyright (c) 2001-2007 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-PR49 $
$Octasic_Revision: 90 $
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#ifndef __OCT6100_CHANNEL_INST_H__
#define __OCT6100_CHANNEL_INST_H__
/***************************** INCLUDE FILES *******************************/
/***************************** DEFINES *************************************/
/***************************** TYPES ***************************************/
#ifndef __KERNEL__
#include <stdint.h>
#endif
#ifndef PTR_TYPE
#define PTR_TYPE UINT16
#endif
typedef struct _OCT6100_API_CHANNEL_TDM_
{
/* Laws. */
UINT8 byRinPcmLaw : 1;
UINT8 bySinPcmLaw : 1;
UINT8 byRoutPcmLaw : 1;
UINT8 bySoutPcmLaw : 1;
UINT8 byRinNumTssts : 1;
UINT8 bySinNumTssts : 1;
UINT8 byRoutNumTssts : 1;
UINT8 bySoutNumTssts : 1;
/* 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;
} tOCT6100_API_CHANNEL_TDM, *tPOCT6100_API_CHANNEL_TDM;
typedef struct _OCT6100_API_CHANNEL_VQE_
{
UINT8 fEnableNlp : 1;
UINT8 fEnableTailDisplacement : 1;
UINT8 fSinDcOffsetRemoval : 1;
UINT8 fRinDcOffsetRemoval : 1;
UINT8 fRinLevelControl : 1;
UINT8 fSoutLevelControl : 1;
UINT8 fRinAutomaticLevelControl : 1;
UINT8 fSoutAutomaticLevelControl : 1;
UINT8 fRinHighLevelCompensation : 1;
UINT8 fSoutAdaptiveNoiseReduction : 1;
UINT8 fDtmfToneRemoval : 1;
UINT8 fAcousticEcho : 1;
UINT8 byComfortNoiseMode : 1;
UINT8 fSoutNaturalListenerEnhancement : 1;
UINT8 fRoutNoiseReduction : 1;
UINT8 fEnableMusicProtection : 1;
UINT8 fIdleCodeDetection : 1;
UINT8 byAnrVoiceNoiseSegregation : 1;
UINT8 byDoubleTalkBehavior : 1;
UINT8 fSoutNoiseBleaching : 1;
UINT8 fSoutConferencingNoiseReduction : 1;
UINT8 bySoutAutomaticListenerEnhancementGainDb : 1;
UINT8 byNonLinearityBehaviorA : 1;
UINT8 byNonLinearityBehaviorB : 1;
UINT8 bySoutNaturalListenerEnhancementGainDb : 1;
OCT_INT8 chRinAutomaticLevelControlTargetDb;
OCT_INT8 chSoutAutomaticLevelControlTargetDb;
OCT_INT8 chRinHighLevelCompensationThresholdDb;
OCT_INT8 chRinLevelControlGainDb;
OCT_INT8 chSoutLevelControlGainDb;
OCT_INT8 chDefaultErlDb;
OCT_INT8 chAecDefaultErlDb;
OCT_INT8 chRoutNoiseReductionLevelGainDb;
OCT_INT8 chAnrSnrEnhancementDb;
UINT16 usToneDisablerVqeActivationDelay;
UINT16 usAecTailLength;
UINT16 usTailDisplacement;
UINT16 usTailLength;
} tOCT6100_API_CHANNEL_VQE, *tPOCT6100_API_CHANNEL_VQE;
typedef struct _OCT6100_API_CHANNEL_CODEC_
{
UINT8 byAdpcmNibblePosition : 1;
UINT8 fEnableSilenceSuppression : 1;
UINT8 byEncoderPort : 1;
UINT8 byEncodingRate : 1;
UINT8 byDecoderPort : 1;
UINT8 byDecodingRate : 1;
UINT8 byPhase : 1;
UINT8 byPhasingType : 1;
} 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 : 1;
/* Count used to manage entry handles allocated to user. */
UINT8 byEntryOpenCnt : 1;
/* Is this a bidirectionnal channel? */
UINT8 fBiDirChannel : 1;
/* Enable tone disabler? */
UINT8 fEnableToneDisabler : 1;
/* Current echo operation mode. */
UINT8 byEchoOperationMode : 1;
UINT8 byToneDisablerStatus : 1;
UINT8 fMute : 1;
UINT8 fTap : 1;
UINT8 fBeingTapped : 1;
UINT8 fCopyEventCreated : 1;
UINT8 fSoutBufPlaying : 1;
UINT8 fRinBufPlaying : 1;
UINT8 fRinBufPlayoutNotifyOnStop : 1;
UINT8 fRinBufPlayoutRepeatUsed : 1;
UINT8 fSoutBufPlayoutNotifyOnStop : 1;
UINT8 fSoutBufPlayoutRepeatUsed : 1;
UINT8 fRinHardStop : 1;
UINT8 fSoutHardStop : 1;
UINT8 byRinPlayoutStopEventType : 1;
UINT8 bySoutPlayoutStopEventType : 1;
UINT8 fRinBufAdded : 1;
UINT8 fSoutBufAdded : 1;
UINT8 fBufPlayoutActive : 1;
/* Enable extended tone detection. */
UINT8 fEnableExtToneDetection : 1;
/* State of the codec structure associated to this channel. */
UINT8 fSinSoutCodecActive : 1;
UINT8 fRinRoutCodecActive : 1;
/* 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;
/* 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;
/* 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;
/*=======================================================================*/
/*=======================================================================*/
/* Bridge information. */
UINT16 usBridgeIndex;
UINT16 usLoadEventIndex;
UINT16 usSubStoreEventIndex;
UINT16 usFlexConfParticipantIndex;
UINT16 usTapBridgeIndex;
UINT16 usTapChanIndex;
/*=======================================================================*/
/*=======================================================================*/
/* Buffer playout information. */
PTR_TYPE ulRinBufWritePtr;
PTR_TYPE ulRinBufSkipPtr;
PTR_TYPE ulSoutBufWritePtr;
PTR_TYPE ulSoutBufSkipPtr;
/* User channel ID, transparently passed to the user. */
/*=======================================================================*/
/*=======================================================================*/
/* Copy events information. */
/* Number of copy events created. */
UINT16 usCopyEventCnt;
/*=======================================================================*/
/*=======================================================================*/
/* Extended tone detection info. */
UINT16 usExtToneChanIndex;
UINT16 usExtToneMixerIndex;
UINT16 usExtToneTsiIndex;
/* Index of the phasing TSST */
UINT16 usPhasingTsstIndex;
/* Mode of operation of the channel based on the extended tone detection configuration. */
PTR_TYPE ulExtToneChanMode;
/*=======================================================================*/
/* Tone detection state. */
/* This array is configured as follow. */
/* Index 0 contain event 0 to 31 and Index 1 contains event 32 - 55 */
PTR_TYPE ulLastSSToneDetected;
PTR_TYPE ulLastSSToneTimestamp;
PTR_TYPE ulRinUserBufPlayoutEventId;
PTR_TYPE ulSoutUserBufPlayoutEventId;
UINT32 aulToneConf[2];
UINT32 ulUserChanId;
/*=======================================================================*/
/*=======================================================================*/
/* Codec configuration. */
tOCT6100_API_CHANNEL_CODEC CodecConfig;
} 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 : 1;
/* Count used to manage entry handles allocated to user. */
UINT8 byEntryOpenCnt : 1;
} tOCT6100_API_BIDIR_CHANNEL, *tPOCT6100_API_BIDIR_CHANNEL;
#endif /* __OCT6100_CHANNEL_INST_H__ */

View File

@ -0,0 +1,547 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_channel_pub.h
Copyright (c) 2001-2007 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-PR49 $
$Octasic_Revision: 84 $
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#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 lRoutNoiseReductionLevelGainDb;
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 lRoutNoiseReductionLevelGainDb;
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 lRoutNoiseReductionLevelGainDb;
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__ */

View File

@ -0,0 +1,515 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_chip_open_inst.h
Copyright (c) 2001-2007 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-PR49 $
$Octasic_Revision: 122 $
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#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;
unsigned char const *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;
UINT8 fEnable2100StopEvent;
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 ulProductionBistMode;
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 ];
/* 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;
/* Rin NR value field offset. */
tOCT6100_TLV_OFFSET RinAnrValOfst;
/* 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 fRoutNoiseReductionLevel;
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__ */

View File

@ -0,0 +1,241 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_chip_open_pub.h
Copyright (c) 2001-2007 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-PR49 $
$Octasic_Revision: 54 $
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#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;
unsigned char const *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;
BOOL fEnable2100StopEvent;
UINT32 ulSoftBufferPlayoutEventsBufSize; /* In events. */
UINT32 ulMaxRemoteDebugSessions;
BOOL fEnableChannelRecording;
BOOL fEnableProductionBist;
UINT32 ulProductionBistMode;
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;
typedef struct _OCT6100_API_GET_CAPACITY_PINS_
{
UINT32 ulUserChipId;
PVOID pProcessContext;
UINT32 ulMemoryType; /* SDRAM or DDR type external memory. */
BOOL fEnableMemClkOut;
UINT32 ulMemClkFreq;
UINT32 ulCapacityValue;
} tOCT6100_API_GET_CAPACITY_PINS, *tPOCT6100_API_GET_CAPACITY_PINS;
/************************** 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 );
UINT32 Oct6100ApiGetCapacityPinsDef(
tPOCT6100_API_GET_CAPACITY_PINS f_pGetCapacityPins);
UINT32 Oct6100ApiGetCapacityPins(
tPOCT6100_API_GET_CAPACITY_PINS f_pGetCapacityPins );
#endif /* __OCT6100_CHIP_OPEN_PUB_H__ */

View File

@ -0,0 +1,84 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_chip_stats_inst.h
Copyright (c) 2001-2007 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-PR49 $
$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__ */

View File

@ -0,0 +1,150 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_chip_stats_pub.h
Copyright (c) 2001-2007 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-PR49 $
$Octasic_Revision: 59 $
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#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 fRoutNoiseReductionLevel;
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__ */

View File

@ -0,0 +1,104 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_conf_bridge_inst.h
Copyright (c) 2001-2007 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-PR49 $
$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__ */

View File

@ -0,0 +1,169 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_conf_bridge_pub.h
Copyright (c) 2001-2007 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-PR49 $
$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__ */

View File

@ -0,0 +1,124 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_debug_inst.h
Copyright (c) 2001-2007 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-PR49 $
$Octasic_Revision: 10 $
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#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;
/* Current user selected data mode. Must be kept constant throughout a debug session. */
UINT32 ulCurrentGetDataMode;
} tOCT6100_API_DEBUG, *tPOCT6100_API_DEBUG;
#endif /* __OCT6100_DEBUG_INST_H__ */

View File

@ -0,0 +1,76 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_debug_pub.h
Copyright (c) 2001-2007 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-PR49 $
$Octasic_Revision: 14 $
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#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 ulGetDataContent;
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__ */

View File

@ -0,0 +1,679 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_defines.h
Copyright (c) 2001-2007 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-PR49 $
$Octasic_Revision: 171 $
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#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_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.*/
#ifndef cOCT6100_INTERNAL_SUPER_ARRAY_SIZE
#define cOCT6100_INTERNAL_SUPER_ARRAY_SIZE 128 /* in words.*/
#endif
/* 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 /* CPTAG: Must not be modified, represents number of events stored in hardware. */
#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.*/
#ifndef cOCT6100_MAX_ECHO_CHANNELS
#define cOCT6100_MAX_ECHO_CHANNELS 128
#endif
#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 (cOCT6100_MAX_ECHO_CHANNELS*4) /* cOCT6100_MAX_ECHO_CHANNELS channels, 4 TSSTs per channel. */
#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.*/
/* CPTAG: No application needs for mixer events. */
/* 2 needed for head and tail nodes. 2 more needed to get through channel modify function. */
/* Careful. This value cannot be zero. */
#ifndef cOCT6100_MAX_MIXER_EVENTS
#define cOCT6100_MAX_MIXER_EVENTS 4
#endif
#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 (cOCT6100_MAX_ECHO_CHANNELS*2) /* CPTAG: Max this out to the expected max number of channels * 2, was 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 Signaling tone IDs. */
#define cOCT6100_TONE_SIN_SYSTEM7_2000 0x20000023
#define cOCT6100_TONE_SIN_SYSTEM7_1780 0x20000024
#define cOCT6100_TONE_ROUT_G168_2100GB_ON 0x10000000
#define cOCT6100_TONE_ROUT_G168_2100GB_WSPR 0x10000002
#define cOCT6100_TONE_ROUT_G168_1100GB_ON 0x10000004
#define cOCT6100_TONE_ROUT_G168_2100GB_ON_WIDE_A 0x10000005
#define cOCT6100_TONE_ROUT_G168_2100GB_ON_WIDE_B 0x10000006
#define cOCT6100_TONE_ROUT_G168_2100GB_WSPR_WIDE 0x10000008
#define cOCT6100_TONE_SOUT_G168_2100GB_ON 0x40000000
#define cOCT6100_TONE_SOUT_G168_2100GB_WSPR 0x40000002
#define cOCT6100_TONE_SOUT_G168_1100GB_ON 0x40000004
#define cOCT6100_TONE_SOUT_G168_2100GB_ON_WIDE_A 0x40000005
#define cOCT6100_TONE_SOUT_G168_2100GB_ON_WIDE_B 0x40000006
#define cOCT6100_TONE_SOUT_G168_2100GB_WSPR_WIDE 0x40000008
#define cOCT6100_TONE_SIN_SYSTEM5_2400 0x20000020
#define cOCT6100_TONE_SIN_SYSTEM5_2600 0x20000021
#define cOCT6100_TONE_SIN_SYSTEM5_2400_2600 0x20000022
#define cOCT6100_CHIP_ID_REVISION_REG 0x17E
/* BOOT type. */
#define cOCT6100_AF_BOOT_TYPE 0x5
#define cOCT6100_PRODUCTION_BOOT_TYPE 0x7
#define cOCT6100_PRODUCTION_SHORT_BOOT_TYPE 0x8
/*Production Bist Modes*/
#define cOCT6100_PRODUCTION_BIST_STANDARD 0x0
#define cOCT6100_PRODUCTION_BIST_SHORT 0x1
/* 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
/* Image start string define */
#define cOCT6100_IMAGE_START_STRING "EDS3_IMAGE_NAME"
/* 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
/* Debug get data dump content. */
#define cOCT6100_DEBUG_GET_DATA_CONTENT_COMPLETE 0x0 /* Full binary dump to be sent for support. */
#define cOCT6100_DEBUG_GET_DATA_CONTENT_RIN_PCM 0x1 /* Only Rin PCM stream data. */
#define cOCT6100_DEBUG_GET_DATA_CONTENT_SIN_PCM 0x2 /* Only Sin PCM stream data. */
#define cOCT6100_DEBUG_GET_DATA_CONTENT_SOUT_PCM 0x3 /* Only Sout PCM stream data. */
#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
#define cOCT6100_FATAL_GENERAL_ERROR_TYPE_9 0x0100
#endif /* __OCT6100_DEFINES_H__ */

View File

@ -0,0 +1,838 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_errors.h
Copyright (c) 2001-2007 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-PR49 $
$Octasic_Revision: 205 $
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#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_CHANNEL_ROUT_NOISE_REDUCTION_GAIN (0x0002B + 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_OPEN_PRODUCTION_BIST_MODE (0x0305C + cOCT6100_ERR_BASE)
#define cOCT6100_ERR_OPEN_ENABLE_2100_STOP_EVENT (0x03060 + cOCT6100_ERR_BASE)
#define cOCT6100_ERR_CAP_PINS_INVALID_CHIP_STATE (0x03081 + cOCT6100_ERR_BASE)
#define cOCT6100_ERR_CAP_PINS_INVALID_CAPACITY_VALUE (0x03082 + 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_CHANNEL_RIN_AUTO_LEVEL_CONTROL_REQUIRED (0x070C5 + cOCT6100_ERR_BASE)
#define cOCT6100_ERR_CHANNEL_SOUT_AUTO_LEVEL_CONTROL_REQUIRED (0x070C6 + cOCT6100_ERR_BASE)
#define cOCT6100_ERR_CHANNEL_AUTO_LEVEL_CONTROL_REQUIRED (0x070C8 + cOCT6100_ERR_BASE)
#define cOCT6100_ERR_CHANNEL_COMFORT_NOISE_REQUIRED (0x070CB + cOCT6100_ERR_BASE)
#define cOCT6100_ERR_CHANNEL_ROUT_NOISE_REDUCTION_GAIN (0x070CC + 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_DEBUG_CHANNEL_IN_POWER_DOWN (0x11014 + cOCT6100_ERR_BASE)
#define cOCT6100_ERR_DEBUG_GET_DATA_CONTENT (0x11015 + cOCT6100_ERR_BASE)
#define cOCT6100_ERR_DEBUG_GET_DATA_MODE_CANNOT_CHANGE (0x11016 + 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)
#define cOCT6100_ERR_FATAL_EA (0x000EA + cOCT6100_FATAL_BASE)
#endif /* __OCT6100_ERRORS_H__ */

View File

@ -0,0 +1,69 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_events_inst.h
Copyright (c) 2001-2007 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-PR49 $
$Octasic_Revision: 12 $
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#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__ */

View File

@ -0,0 +1,111 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_events_pub.h
Copyright (c) 2001-2007 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-PR49 $
$Octasic_Revision: 14 $
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#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__ */

View File

@ -0,0 +1,134 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_interrupts_inst.h
Copyright (c) 2001-2007 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-PR49 $
$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__ */

View File

@ -0,0 +1,102 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_interrupts_pub.h
Copyright (c) 2001-2007 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-PR49 $
$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__ */

View File

@ -0,0 +1,86 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_mixer_inst.h
Copyright (c) 2001-2007 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-PR49 $
$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__ */

View File

@ -0,0 +1,77 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_mixer_pub.h
Copyright (c) 2001-2007 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-PR49 $
$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__ */

View File

@ -0,0 +1,68 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_phasing_tsst_inst.h
Copyright (c) 2001-2007 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-PR49 $
$Octasic_Revision: 11 $
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#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__ */

View File

@ -0,0 +1,78 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_phasing_tsst_pub.h
Copyright (c) 2001-2007 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-PR49 $
$Octasic_Revision: 10 $
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#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__ */

View File

@ -0,0 +1,88 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_playout_buf_inst.h
Copyright (c) 2001-2007 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-PR49 $
$Octasic_Revision: 10 $
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#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 )(( PUINT8 )pSharedInfo + pSharedInfo->ulPlayoutBufMemoryNodeListOfst );
#define mOCT6100_GET_BUFFER_MEMORY_NODE_ENTRY_PNT( pSharedInfo, pEntry, ulIndex ) \
pEntry = (( tPOCT6100_API_BUFFER_PLAYOUT_MALLOC_NODE )(( PUINT8 )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__ */

View File

@ -0,0 +1,183 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_playout_buf_pub.h
Copyright (c) 2001-2007 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-PR49 $
$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__ */

View File

@ -0,0 +1,73 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_remote_debug_inst.h
Copyright (c) 2001-2007 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-PR49 $
$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__ */

View File

@ -0,0 +1,64 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_remote_debug_pub.h
Copyright (c) 2001-2007 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-PR49 $
$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__ */

View File

@ -0,0 +1,72 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_tlv_inst.h
Copyright (c) 2001-2007 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-PR49 $
$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__ */

View File

@ -0,0 +1,46 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_tone_detection_inst.h
Copyright (c) 2001-2007 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-PR49 $
$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__ */

View File

@ -0,0 +1,74 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_tone_detection_pub.h
Copyright (c) 2001-2007 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-PR49 $
$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__ */

View File

@ -0,0 +1,70 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_tsi_cnct_inst.h
Copyright (c) 2001-2007 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-PR49 $
$Octasic_Revision: 9 $
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#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__ */

View File

@ -0,0 +1,76 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_tsi_cnct_pub.h
Copyright (c) 2001-2007 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-PR49 $
$Octasic_Revision: 11 $
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#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__ */

View File

@ -0,0 +1,55 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_tsst_inst.h
Copyright (c) 2001-2007 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-PR49 $
$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__ */

View File

@ -0,0 +1,116 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: octdef.h
Copyright (c) 2001-2007 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-PR49 $
$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 *************************************/
/* List of functions to skip compiling since we don't use them */
#include "digium_unused.h"
/*--------------------------------------------------------------------------
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__ */

View File

@ -0,0 +1,98 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: octmac.h
Copyright (c) 2001-2007 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-PR49 $
$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__ */

View File

@ -0,0 +1,170 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: octosdependant.h
Copyright (c) 2001-2007 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-PR49 $
$Octasic_Revision: 18 $
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#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 )
/* Does GNU defines the endian ? */
#if defined(__GNU_C__)
#if defined(_BIG_ENDIAN) || defined(__BIG_ENDIAN__)
#define OCT_MACH_ENDIAN OCT_MACH_BIG_ENDIAN
#elif defined(_LITTLE_ENDIAN) || defined(__LITTLE_ENDIAN__)
#define OCT_MACH_ENDIAN OCT_MACH_LITTLE_ENDIAN
#endif
#endif
/* Try with cpu type */
#if !defined(OCT_MACH_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 ) || defined(PPC) || defined(__PPC) || defined(_ARCH_PPC)
#define OCT_MACH_ENDIAN OCT_MACH_BIG_ENDIAN
/* Look for Blackfin */
#elif defined( __bfin__ )
#define OCT_MACH_ENDIAN OCT_MACH_LITTLE_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
#else
#define OCT_MACH_ENDIAN OCT_MACH_LITTLE_ENDIAN
#endif
#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_ )
#ifndef OCT_ECOSENV
#define OCT_ECOSENV
#endif /* 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__ */

View File

@ -0,0 +1,348 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_rpc_protocol.h
Copyright (c) 2001-2007 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-PR49 $
$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__ */

View File

@ -0,0 +1,115 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: rpc_protocol.h
Copyright (c) 2001-2007 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-PR49 $
$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__ */

View File

@ -0,0 +1,159 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: octtype.h
Copyright (c) 2001-2007 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-PR49 $
$Octasic_Revision: 18 $
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#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
----------------------------------------------------------------------------*/
#ifdef SZ
#undef SZ
#endif
/***************************** 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 signed char OCT_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;
#if defined(__FreeBSD__)
#include <sys/stddef.h>
#else
#include <linux/stddef.h>
#endif
#endif
/*--------------------------------------------------------------------------
C language
----------------------------------------------------------------------------*/
#ifdef __cplusplus
}
#endif
#endif /* __OCTTYPE_H__ */

View File

@ -0,0 +1,132 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: octtypevx.h
Copyright (c) 2001-2007 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-PR49 $
$Octasic_Revision: 9 $
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#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 */
/*Intel library for file system definition*/
#ifndef DATATYPE_H
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 */
/*Intel library for file system definition*/
#ifndef DATATYPE_H
typedef char CHAR;
#endif
typedef char * PCHAR;
typedef CHAR SZ;
typedef CHAR * PSZ;
typedef signed char OCT_INT8;
/* 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__ */

View File

@ -0,0 +1,100 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: octtypewin.h
Copyright (c) 2001-2007 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-PR49 $
$Octasic_Revision: 16 $
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#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 signed char OCT_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 *
/* Double integers */
typedef double DOUBLE;
typedef double * PDOUBLE;
typedef float FLOAT;
typedef float * PFLOAT;
#ifndef OPT
#define OPT /* OPT param */
#endif
typedef PSZ * PPSZ;
/*--------------------------------------------------------------------------
C language
----------------------------------------------------------------------------*/
#ifdef __cplusplus
}
#endif
#endif /* __OCTTYPEWIN_H__ */

39
xpp/oct612x/octasic-helper Executable file
View File

@ -0,0 +1,39 @@
#!/bin/sh
#
# Jeffrey C. Ollie <jeff@ocjtech.us>
#
# $1 == information requested
# $2 == path to octasic directory
#
APIDIR=$2/octdeviceapi/oct6100api/oct6100_api
case $1 in
objects)
echo $APIDIR/oct6100_adpcm_chan.o \
$APIDIR/oct6100_channel.o \
$APIDIR/oct6100_chip_open.o \
$APIDIR/oct6100_chip_stats.o \
$APIDIR/oct6100_conf_bridge.o \
$APIDIR/oct6100_debug.o \
$APIDIR/oct6100_events.o \
$APIDIR/oct6100_interrupts.o \
$APIDIR/oct6100_memory.o \
$APIDIR/oct6100_miscellaneous.o \
$APIDIR/oct6100_mixer.o \
$APIDIR/oct6100_phasing_tsst.o \
$APIDIR/oct6100_playout_buf.o \
$APIDIR/oct6100_remote_debug.o \
$APIDIR/oct6100_tlv.o \
$APIDIR/oct6100_tone_detection.o \
$APIDIR/oct6100_tsi_cnct.o \
$APIDIR/oct6100_tsst.o \
$2/apilib/bt/octapi_bt0.o \
$2/apilib/largmath/octapi_largmath.o \
$2/apilib/llman/octapi_llman.o
;;
cflags)
echo -I$2/include -I$2/octdeviceapi -I$2/octdeviceapi/oct6100api
;;
esac

View File

@ -0,0 +1,131 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_adpcm_chan_priv.h
Copyright (c) 2001-2007 Octasic Inc.
Description:
File containing all private defines, macros, structures and prototypes
pertaining to the file oct6100_adpcm_chan.c. All elements defined in this
file are for private usage of the API. All public elements are defined
in the oct6100_adpcm_chan_pub.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-PR49 $
$Octasic_Revision: 7 $
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#ifndef __OCT6100_ADPCM_CHAN_PRIV_H__
#define __OCT6100_ADPCM_CHAN_PRIV_H__
/***************************** INCLUDE FILES *******************************/
/***************************** DEFINES *************************************/
/* ADPCM channel list pointer macros. */
#define mOCT6100_GET_ADPCM_CHAN_LIST_PNT( pSharedInfo, pList ) \
pList = ( tPOCT6100_API_ADPCM_CHAN )(( PUINT8 )pSharedInfo + pSharedInfo->ulAdpcmChanListOfst );
#define mOCT6100_GET_ADPCM_CHAN_ENTRY_PNT( pSharedInfo, pEntry, ulIndex ) \
pEntry = (( tPOCT6100_API_ADPCM_CHAN )(( PUINT8 )pSharedInfo + pSharedInfo->ulAdpcmChanListOfst)) + ulIndex;
#define mOCT6100_GET_ADPCM_CHAN_ALLOC_PNT( pSharedInfo, pAlloc ) \
pAlloc = ( PVOID )(( PUINT8 )pSharedInfo + pSharedInfo->ulAdpcmChanAllocOfst);
/***************************** TYPES ***************************************/
/************************** FUNCTION PROTOTYPES *****************************/
UINT32 Oct6100ApiGetAdpcmChanSwSizes(
IN tPOCT6100_CHIP_OPEN f_pOpenChip,
OUT tPOCT6100_API_INSTANCE_SIZES f_pInstSizes );
UINT32 Oct6100ApiAdpcmChanSwInit(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance );
UINT32 Oct6100AdpcmChanOpenSer(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN OUT tPOCT6100_ADPCM_CHAN_OPEN f_pAdpcmChanOpen );
UINT32 Oct6100ApiCheckAdpcmChanParams(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN OUT tPOCT6100_ADPCM_CHAN_OPEN f_pAdpcmChanOpen );
UINT32 Oct6100ApiReserveAdpcmChanResources(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN OUT tPOCT6100_ADPCM_CHAN_OPEN f_pAdpcmChanOpen,
OUT PUINT16 f_pusTsiChanIndex,
OUT PUINT16 f_pusAdpcmMemIndex,
OUT PUINT16 f_pusTsiMemIndex,
OUT PUINT16 f_pusInputTsstIndex,
OUT PUINT16 f_pusOutputTsstIndex );
UINT32 Oct6100ApiWriteAdpcmChanStructs(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN OUT tPOCT6100_ADPCM_CHAN_OPEN f_pAdpcmChanOpen,
IN UINT16 f_usAdpcmMemIndex,
IN UINT16 f_usTsiMemIndex,
IN UINT16 f_usInputTsstIndex,
IN UINT16 f_usOutputTsstIndex );
UINT32 Oct6100ApiUpdateAdpcmChanEntry(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN OUT tPOCT6100_ADPCM_CHAN_OPEN f_pAdpcmChanOpen,
IN UINT16 f_usTsiChanIndex,
IN UINT16 f_usAdpcmMemIndex,
IN UINT16 f_usTsiMemIndex,
IN UINT16 f_usInputTsstIndex,
IN UINT16 f_usOutputTsstIndex );
UINT32 Oct6100AdpcmChanCloseSer(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_ADPCM_CHAN_CLOSE f_pAdpcmChanClose );
UINT32 Oct6100ApiAssertAdpcmChanParams(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_ADPCM_CHAN_CLOSE f_pAdpcmChanClose,
OUT PUINT16 f_pusTsiChanIndex,
OUT PUINT16 f_pusAdpcmMemIndex,
OUT PUINT16 f_pusTsiMemIndex,
OUT PUINT16 f_pusInputTsstIndex,
OUT PUINT16 f_pusOutputTsstIndex );
UINT32 Oct6100ApiInvalidateAdpcmChanStructs(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT16 f_usAdpcmChanIndex,
IN UINT16 f_usInputTsstIndex,
IN UINT16 f_usOutputTsstIndex );
UINT32 Oct6100ApiReleaseAdpcmChanResources(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT16 f_usTsiChanIndex,
IN UINT16 f_usAdpcmMemIndex,
IN UINT16 f_usTsiMemIndex );
UINT32 Oct6100ApiReserveAdpcmChanEntry(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
OUT PUINT16 f_pusAdpcmChanIndex );
UINT32 Oct6100ApiReleaseAdpcmChanEntry(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT16 f_usAdpcmChanIndex );
#endif /* __OCT6100_ADPCM_CHAN_PRIV_H__ */

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,441 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_chip_stats.c
Copyright (c) 2001-2007 Octasic Inc.
Description:
This file contains functions used to retreive the OCT6100 chip stats.
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-PR49 $
$Octasic_Revision: 89 $
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
/***************************** INCLUDE FILES *******************************/
#include "octdef.h"
#include "oct6100api/oct6100_defines.h"
#include "oct6100api/oct6100_errors.h"
#include "oct6100api/oct6100_apiud.h"
#include "apilib/octapi_llman.h"
#include "oct6100api/oct6100_tlv_inst.h"
#include "oct6100api/oct6100_chip_open_inst.h"
#include "oct6100api/oct6100_chip_stats_inst.h"
#include "oct6100api/oct6100_interrupts_inst.h"
#include "oct6100api/oct6100_remote_debug_inst.h"
#include "oct6100api/oct6100_debug_inst.h"
#include "oct6100api/oct6100_api_inst.h"
#include "oct6100api/oct6100_channel_inst.h"
#include "oct6100api/oct6100_interrupts_pub.h"
#include "oct6100api/oct6100_chip_open_pub.h"
#include "oct6100api/oct6100_channel_pub.h"
#include "oct6100api/oct6100_chip_stats_pub.h"
#include "oct6100_chip_open_priv.h"
#include "oct6100_chip_stats_priv.h"
#include "oct6100_miscellaneous_priv.h"
#include "oct6100_chip_stats_priv.h"
/**************************** PUBLIC FUNCTIONS *****************************/
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100ChipGetStats
Description: Retreives the chip statistics and configuration.
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_pApiInstance Pointer to API instance. This memory is used to keep the
present state of the chip and all its resources.
f_pChipStats Pointer to a tOCT6100_CHIP_STATS structure.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100ChipGetStatsDef
UINT32 Oct6100ChipGetStatsDef(
tPOCT6100_CHIP_STATS f_pChipStats )
{
f_pChipStats->fResetChipStats = FALSE;
f_pChipStats->ulNumberChannels = cOCT6100_INVALID_STAT;
f_pChipStats->ulNumberTsiCncts = cOCT6100_INVALID_STAT;
f_pChipStats->ulNumberConfBridges = cOCT6100_INVALID_STAT;
f_pChipStats->ulNumberPlayoutBuffers = cOCT6100_INVALID_STAT;
f_pChipStats->ulPlayoutFreeMemSize = cOCT6100_INVALID_STAT;
f_pChipStats->ulNumberPhasingTssts = cOCT6100_INVALID_STAT;
f_pChipStats->ulNumberAdpcmChannels = cOCT6100_INVALID_STAT;
f_pChipStats->ulH100OutOfSynchCount = cOCT6100_INVALID_STAT;
f_pChipStats->ulH100ClockABadCount = cOCT6100_INVALID_STAT;
f_pChipStats->ulH100FrameABadCount = cOCT6100_INVALID_STAT;
f_pChipStats->ulH100ClockBBadCount = cOCT6100_INVALID_STAT;
f_pChipStats->ulInternalReadTimeoutCount = cOCT6100_INVALID_STAT;
f_pChipStats->ulSdramRefreshTooLateCount = cOCT6100_INVALID_STAT;
f_pChipStats->ulPllJitterErrorCount = cOCT6100_INVALID_STAT;
f_pChipStats->ulOverflowToneEventsCount = cOCT6100_INVALID_STAT;
f_pChipStats->ulSoftOverflowToneEventsCount = cOCT6100_INVALID_STAT;
f_pChipStats->ulSoftOverflowBufferPlayoutEventsCount = cOCT6100_INVALID_STAT;
return cOCT6100_ERR_OK;
}
#endif
#if !SKIP_Oct6100ChipGetStats
UINT32 Oct6100ChipGetStats(
tPOCT6100_INSTANCE_API f_pApiInstance,
tPOCT6100_CHIP_STATS f_pChipStats )
{
tOCT6100_SEIZE_SERIALIZE_OBJECT SeizeSerObj;
tOCT6100_RELEASE_SERIALIZE_OBJECT ReleaseSerObj;
UINT32 ulSerRes = cOCT6100_ERR_OK;
UINT32 ulFncRes = cOCT6100_ERR_OK;
/* Set the process context of the serialize structure. */
SeizeSerObj.pProcessContext = f_pApiInstance->pProcessContext;
ReleaseSerObj.pProcessContext = f_pApiInstance->pProcessContext;
/* Seize all list semaphores needed by this function. */
SeizeSerObj.ulSerialObjHndl = f_pApiInstance->ulApiSerObj;
SeizeSerObj.ulTryTimeMs = cOCT6100_WAIT_INFINITELY;
ulSerRes = Oct6100UserSeizeSerializeObject( &SeizeSerObj );
if ( ulSerRes == cOCT6100_ERR_OK )
{
/* Call the serialized function. */
ulFncRes = Oct6100ChipGetStatsSer( f_pApiInstance, f_pChipStats );
}
else
{
return ulSerRes;
}
/* Release the seized semaphores. */
ReleaseSerObj.ulSerialObjHndl = f_pApiInstance->ulApiSerObj;
ulSerRes = Oct6100UserReleaseSerializeObject( &ReleaseSerObj );
/* If an error occured then return the error code. */
if ( ulSerRes != cOCT6100_ERR_OK )
return ulSerRes;
if ( ulFncRes != cOCT6100_ERR_OK )
return ulFncRes;
return cOCT6100_ERR_OK;
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100ChipGetImageInfo
Description: Retrieves the chip image information indicating the supported
features and tones.
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_pApiInstance Pointer to API instance. This memory is used to keep the
present state of the chip and all its resources.
f_pChipImageInfo Pointer to a tPOCT6100_CHIP_IMAGE_INFO structure.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100ChipGetImageInfoDef
UINT32 Oct6100ChipGetImageInfoDef(
tPOCT6100_CHIP_IMAGE_INFO f_pChipImageInfo )
{
UINT32 i;
Oct6100UserMemSet( f_pChipImageInfo->szVersionNumber, 0x0, cOCT6100_VERSION_NUMBER_MAX_SIZE );
f_pChipImageInfo->fBufferPlayout = FALSE;
f_pChipImageInfo->fAdaptiveNoiseReduction = FALSE;
f_pChipImageInfo->fSoutNoiseBleaching = FALSE;
f_pChipImageInfo->fConferencingNoiseReduction = FALSE;
f_pChipImageInfo->fAutoLevelControl = FALSE;
f_pChipImageInfo->fHighLevelCompensation = FALSE;
f_pChipImageInfo->fSilenceSuppression = FALSE;
f_pChipImageInfo->fAdpcm = FALSE;
f_pChipImageInfo->fConferencing = FALSE;
f_pChipImageInfo->fDominantSpeaker = FALSE;
f_pChipImageInfo->ulMaxChannels = cOCT6100_INVALID_VALUE;
f_pChipImageInfo->ulNumTonesAvailable = cOCT6100_INVALID_VALUE;
f_pChipImageInfo->ulToneProfileNumber = cOCT6100_INVALID_VALUE;
f_pChipImageInfo->ulMaxTailDisplacement = cOCT6100_INVALID_VALUE;
f_pChipImageInfo->ulBuildId = cOCT6100_INVALID_VALUE;
f_pChipImageInfo->ulMaxTailLength = cOCT6100_INVALID_VALUE;
f_pChipImageInfo->ulDebugEventSize = cOCT6100_INVALID_VALUE;
f_pChipImageInfo->ulMaxPlayoutEvents = cOCT6100_INVALID_VALUE;
f_pChipImageInfo->ulImageType = cOCT6100_INVALID_VALUE;
f_pChipImageInfo->fAcousticEcho = FALSE;
f_pChipImageInfo->fAecTailLength = FALSE;
f_pChipImageInfo->fToneRemoval = FALSE;
f_pChipImageInfo->fDefaultErl = FALSE;
f_pChipImageInfo->fNonLinearityBehaviorA = FALSE;
f_pChipImageInfo->fNonLinearityBehaviorB = FALSE;
f_pChipImageInfo->fPerChannelTailDisplacement = FALSE;
f_pChipImageInfo->fPerChannelTailLength = FALSE;
f_pChipImageInfo->fListenerEnhancement = FALSE;
f_pChipImageInfo->fRoutNoiseReduction = FALSE;
f_pChipImageInfo->fRoutNoiseReductionLevel = FALSE;
f_pChipImageInfo->fAnrSnrEnhancement = FALSE;
f_pChipImageInfo->fAnrVoiceNoiseSegregation = FALSE;
f_pChipImageInfo->fToneDisablerVqeActivationDelay = FALSE;
f_pChipImageInfo->fMusicProtection = FALSE;
f_pChipImageInfo->fDoubleTalkBehavior = FALSE;
f_pChipImageInfo->fIdleCodeDetection = TRUE;
f_pChipImageInfo->fSinLevel = TRUE;
for ( i = 0; i < cOCT6100_MAX_TONE_EVENT; i++ )
{
Oct6100UserMemSet( f_pChipImageInfo->aToneInfo[ i ].aszToneName, 0x00, cOCT6100_TLV_MAX_TONE_NAME_SIZE );
f_pChipImageInfo->aToneInfo[ i ].ulDetectionPort = cOCT6100_INVALID_PORT;
f_pChipImageInfo->aToneInfo[ i ].ulToneID = cOCT6100_INVALID_VALUE;
}
return cOCT6100_ERR_OK;
}
#endif
#if !SKIP_Oct6100ChipGetImageInfo
UINT32 Oct6100ChipGetImageInfo(
tPOCT6100_INSTANCE_API f_pApiInstance,
tPOCT6100_CHIP_IMAGE_INFO f_pChipImageInfo )
{
tPOCT6100_API_IMAGE_INFO pImageInfo;
UINT32 i;
/* Get local pointer(s). */
pImageInfo = &f_pApiInstance->pSharedInfo->ImageInfo;
Oct6100UserMemCopy( f_pChipImageInfo->szVersionNumber, pImageInfo->szVersionNumber, cOCT6100_VERSION_NUMBER_MAX_SIZE );
/* Copy the customer info. */
f_pChipImageInfo->ulBuildId = pImageInfo->ulBuildId;
/* Copy the features list. */
f_pChipImageInfo->fBufferPlayout = pImageInfo->fBufferPlayout;
f_pChipImageInfo->fAdaptiveNoiseReduction = pImageInfo->fAdaptiveNoiseReduction;
f_pChipImageInfo->fSoutNoiseBleaching = pImageInfo->fSoutNoiseBleaching;
f_pChipImageInfo->fSilenceSuppression = pImageInfo->fSilenceSuppression;
f_pChipImageInfo->fAdpcm = pImageInfo->fAdpcm;
f_pChipImageInfo->fConferencing = pImageInfo->fConferencing;
f_pChipImageInfo->fDominantSpeaker = pImageInfo->fDominantSpeakerEnabled;
f_pChipImageInfo->fConferencingNoiseReduction = pImageInfo->fConferencingNoiseReduction;
f_pChipImageInfo->fAcousticEcho = pImageInfo->fAcousticEcho;
f_pChipImageInfo->fAecTailLength = pImageInfo->fAecTailLength;
f_pChipImageInfo->fDefaultErl = pImageInfo->fDefaultErl;
f_pChipImageInfo->fToneRemoval = pImageInfo->fToneRemoval;
f_pChipImageInfo->fNonLinearityBehaviorA = pImageInfo->fNonLinearityBehaviorA;
f_pChipImageInfo->fNonLinearityBehaviorB = pImageInfo->fNonLinearityBehaviorB;
f_pChipImageInfo->fPerChannelTailDisplacement = pImageInfo->fPerChannelTailDisplacement;
f_pChipImageInfo->fListenerEnhancement = pImageInfo->fListenerEnhancement;
f_pChipImageInfo->fRoutNoiseReduction = pImageInfo->fRoutNoiseReduction;
f_pChipImageInfo->fRoutNoiseReductionLevel = pImageInfo->fRoutNoiseReductionLevel;
f_pChipImageInfo->fAnrSnrEnhancement = pImageInfo->fAnrSnrEnhancement;
f_pChipImageInfo->fAnrVoiceNoiseSegregation = pImageInfo->fAnrVoiceNoiseSegregation;
f_pChipImageInfo->fMusicProtection = pImageInfo->fMusicProtection;
f_pChipImageInfo->fIdleCodeDetection = pImageInfo->fIdleCodeDetection;
f_pChipImageInfo->fSinLevel = pImageInfo->fSinLevel;
f_pChipImageInfo->fDoubleTalkBehavior = pImageInfo->fDoubleTalkBehavior;
f_pChipImageInfo->fHighLevelCompensation = pImageInfo->fRinHighLevelCompensation;
if ( ( pImageInfo->fRinAutoLevelControl == TRUE ) && ( pImageInfo->fSoutAutoLevelControl == TRUE ) )
f_pChipImageInfo->fAutoLevelControl = TRUE;
else
f_pChipImageInfo->fAutoLevelControl = FALSE;
f_pChipImageInfo->ulMaxChannels = pImageInfo->usMaxNumberOfChannels;
f_pChipImageInfo->ulNumTonesAvailable = pImageInfo->byNumToneDetectors;
f_pChipImageInfo->ulToneProfileNumber = pImageInfo->ulToneProfileNumber;
f_pChipImageInfo->ulMaxTailDisplacement = pImageInfo->usMaxTailDisplacement;
f_pChipImageInfo->ulMaxTailLength = pImageInfo->usMaxTailLength;
f_pChipImageInfo->fPerChannelTailLength = pImageInfo->fPerChannelTailLength;
f_pChipImageInfo->ulDebugEventSize = f_pApiInstance->pSharedInfo->DebugInfo.ulDebugEventSize;
f_pChipImageInfo->fToneDisablerVqeActivationDelay = pImageInfo->fToneDisablerVqeActivationDelay;
f_pChipImageInfo->ulMaxPlayoutEvents = pImageInfo->byMaxNumberPlayoutEvents - 1; /* 127 or 31 */
f_pChipImageInfo->ulImageType = pImageInfo->byImageType;
for ( i = 0; i < cOCT6100_MAX_TONE_EVENT; i++ )
{
Oct6100UserMemCopy( f_pChipImageInfo->aToneInfo[ i ].aszToneName, pImageInfo->aToneInfo[ i ].aszToneName, cOCT6100_TLV_MAX_TONE_NAME_SIZE );
f_pChipImageInfo->aToneInfo[ i ].ulDetectionPort = pImageInfo->aToneInfo[ i ].ulDetectionPort;
f_pChipImageInfo->aToneInfo[ i ].ulToneID = pImageInfo->aToneInfo[ i ].ulToneID;
}
return cOCT6100_ERR_OK;
}
#endif
/**************************** PRIVATE FUNCTIONS ****************************/
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100ApiChipStatsSwInit
Description: Initializes portions of API instance associated to chip stats.
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_pApiInstance Pointer to API instance. This memory is used to keep
the present state of the chip and all its resources.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100ApiChipStatsSwInit
UINT32 Oct6100ApiChipStatsSwInit(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance )
{
tPOCT6100_SHARED_INFO pSharedInfo;
/* Get local pointer to shared portion of API instance. */
pSharedInfo = f_pApiInstance->pSharedInfo;
/* Initialize chip stats. */
pSharedInfo->ErrorStats.fFatalChipError = FALSE;
pSharedInfo->ErrorStats.ulH100ClkABadCnt = 0;
pSharedInfo->ErrorStats.ulH100ClkBBadCnt = 0;
pSharedInfo->ErrorStats.ulH100FrameABadCnt = 0;
pSharedInfo->ErrorStats.ulH100OutOfSyncCnt = 0;
pSharedInfo->ErrorStats.ulInternalReadTimeoutCnt = 0;
pSharedInfo->ErrorStats.ulSdramRefreshTooLateCnt = 0;
pSharedInfo->ErrorStats.ulPllJitterErrorCnt = 0;
pSharedInfo->ErrorStats.ulOverflowToneEventsCnt = 0;
pSharedInfo->ErrorStats.ulToneDetectorErrorCnt = 0;
/* Init the chip stats. */
pSharedInfo->ChipStats.usNumberChannels = 0;
pSharedInfo->ChipStats.usNumberBiDirChannels = 0;
pSharedInfo->ChipStats.usNumberTsiCncts = 0;
pSharedInfo->ChipStats.usNumberConfBridges = 0;
pSharedInfo->ChipStats.usNumberPlayoutBuffers = 0;
pSharedInfo->ChipStats.usNumberActiveBufPlayoutPorts = 0;
pSharedInfo->ChipStats.ulPlayoutMemUsed = 0;
pSharedInfo->ChipStats.usNumEcChanUsingMixer = 0;
pSharedInfo->ChipStats.usNumberPhasingTssts = 0;
pSharedInfo->ChipStats.usNumberAdpcmChans = 0;
return cOCT6100_ERR_OK;
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100ChipGetStatsSer
Description: Serialized function retreiving the chip statistics.
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_pApiInstance Pointer to API instance. This memory is used to keep the
present state of the chip and all its resources.
f_pChipStats Pointer to master mode configuration structure.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100ChipGetStatsSer
UINT32 Oct6100ChipGetStatsSer(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
OUT tPOCT6100_CHIP_STATS f_pChipStats )
{
tPOCT6100_SHARED_INFO pSharedInfo;
/* Get local pointer(s). */
pSharedInfo = f_pApiInstance->pSharedInfo;
f_pChipStats->ulNumberChannels = pSharedInfo->ChipStats.usNumberChannels;
f_pChipStats->ulNumberTsiCncts = pSharedInfo->ChipStats.usNumberTsiCncts;
f_pChipStats->ulNumberConfBridges = pSharedInfo->ChipStats.usNumberConfBridges;
f_pChipStats->ulNumberPlayoutBuffers = pSharedInfo->ChipStats.usNumberPlayoutBuffers;
f_pChipStats->ulPlayoutFreeMemSize = ( f_pApiInstance->pSharedInfo->MiscVars.ulTotalMemSize - ( f_pApiInstance->pSharedInfo->MemoryMap.ulFreeMemBaseAddress - cOCT6100_EXTERNAL_MEM_BASE_ADDRESS ) ) - ( pSharedInfo->ChipStats.ulPlayoutMemUsed );
f_pChipStats->ulNumberPhasingTssts = pSharedInfo->ChipStats.usNumberPhasingTssts;
f_pChipStats->ulNumberAdpcmChannels = pSharedInfo->ChipStats.usNumberAdpcmChans;
/* Check the input parameters. */
if ( f_pChipStats->fResetChipStats != TRUE &&
f_pChipStats->fResetChipStats != FALSE )
return cOCT6100_ERR_CHIP_STATS_RESET;
if ( f_pChipStats->fResetChipStats == TRUE )
{
pSharedInfo->ErrorStats.ulH100OutOfSyncCnt = 0;
pSharedInfo->ErrorStats.ulH100ClkABadCnt = 0;
pSharedInfo->ErrorStats.ulH100FrameABadCnt = 0;
pSharedInfo->ErrorStats.ulH100ClkBBadCnt = 0;
pSharedInfo->ErrorStats.ulInternalReadTimeoutCnt = 0;
pSharedInfo->ErrorStats.ulPllJitterErrorCnt = 0;
pSharedInfo->ErrorStats.ulSdramRefreshTooLateCnt = 0;
pSharedInfo->ErrorStats.ulOverflowToneEventsCnt = 0;
pSharedInfo->SoftBufs.ulToneEventBufferOverflowCnt = 0;
pSharedInfo->SoftBufs.ulBufPlayoutEventBufferOverflowCnt = 0;
}
f_pChipStats->ulH100OutOfSynchCount = pSharedInfo->ErrorStats.ulH100OutOfSyncCnt;
f_pChipStats->ulH100ClockABadCount = pSharedInfo->ErrorStats.ulH100ClkABadCnt;
f_pChipStats->ulH100FrameABadCount = pSharedInfo->ErrorStats.ulH100FrameABadCnt;
f_pChipStats->ulH100ClockBBadCount = pSharedInfo->ErrorStats.ulH100ClkBBadCnt;
f_pChipStats->ulInternalReadTimeoutCount = pSharedInfo->ErrorStats.ulInternalReadTimeoutCnt;
f_pChipStats->ulPllJitterErrorCount = pSharedInfo->ErrorStats.ulPllJitterErrorCnt;
f_pChipStats->ulSdramRefreshTooLateCount = pSharedInfo->ErrorStats.ulSdramRefreshTooLateCnt;
f_pChipStats->ulOverflowToneEventsCount = pSharedInfo->ErrorStats.ulOverflowToneEventsCnt;
f_pChipStats->ulSoftOverflowToneEventsCount = pSharedInfo->SoftBufs.ulToneEventBufferOverflowCnt;
f_pChipStats->ulSoftOverflowBufferPlayoutEventsCount = pSharedInfo->SoftBufs.ulBufPlayoutEventBufferOverflowCnt;
return cOCT6100_ERR_OK;
}
#endif

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,831 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_memory.c
Copyright (c) 2001-2007 Octasic Inc.
Description:
This file contains the functions used to manage the allocation of memory
blocks in external memory.
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-PR49 $
$Octasic_Revision: 42 $
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
/***************************** INCLUDE FILES *******************************/
#include "octdef.h"
#include "oct6100api/oct6100_defines.h"
#include "oct6100api/oct6100_errors.h"
#include "apilib/octapi_llman.h"
#include "oct6100api/oct6100_apiud.h"
#include "oct6100api/oct6100_tlv_inst.h"
#include "oct6100api/oct6100_chip_open_inst.h"
#include "oct6100api/oct6100_chip_stats_inst.h"
#include "oct6100api/oct6100_interrupts_inst.h"
#include "oct6100api/oct6100_remote_debug_inst.h"
#include "oct6100api/oct6100_debug_inst.h"
#include "oct6100api/oct6100_playout_buf_inst.h"
#include "oct6100api/oct6100_api_inst.h"
#include "oct6100api/oct6100_interrupts_pub.h"
#include "oct6100api/oct6100_channel_pub.h"
#include "oct6100api/oct6100_chip_open_pub.h"
#include "oct6100_chip_open_priv.h"
#include "oct6100_memory_priv.h"
/**************************** PRIVATE FUNCTIONS ****************************/
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100ApiGetMemorySwSizes
Description: Gets the sizes of all portions of the API instance pertinent
to the management of the memories.
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_pOpenChip Pointer to chip configuration struct.
f_pInstSizes Pointer to struct containing instance sizes.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100ApiGetMemorySwSizes
UINT32 Oct6100ApiGetMemorySwSizes(
IN tPOCT6100_CHIP_OPEN f_pOpenChip,
OUT tPOCT6100_API_INSTANCE_SIZES f_pInstSizes )
{
UINT32 ulTempVar;
UINT32 ulResult;
UINT32 ulNumTsiChariots;
/*=========================================================================*/
/* Internal memory */
/* Evaluate the number of available TSI memory after reserving the ones used by channels. */
ulNumTsiChariots = cOCT6100_TOTAL_TSI_CONTROL_MEM_ENTRY - f_pOpenChip->ulMaxPhasingTssts - cOCT6100_TSI_MEM_FOR_TIMESTAMP;
if ( f_pOpenChip->fEnableExtToneDetection == TRUE )
ulNumTsiChariots--;
/* Calculate memory needed for TSI memory allocation. */
ulResult = OctapiLlmAllocGetSize( ulNumTsiChariots, &f_pInstSizes->ulTsiMemoryAlloc );
if ( ulResult != cOCT6100_ERR_OK )
return cOCT6100_ERR_FATAL_94;
/* Calculate memory needed for conversion memory allocation. */
ulResult = OctapiLlmAllocGetSize( cOCT6100_MAX_CONVERSION_MEMORY_BLOCKS, &f_pInstSizes->ulConversionMemoryAlloc );
if ( ulResult != cOCT6100_ERR_OK )
return cOCT6100_ERR_FATAL_B5;
mOCT6100_ROUND_MEMORY_SIZE( f_pInstSizes->ulTsiMemoryAlloc, ulTempVar );
mOCT6100_ROUND_MEMORY_SIZE( f_pInstSizes->ulConversionMemoryAlloc, ulTempVar );
return cOCT6100_ERR_OK;
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100ApiMemorySwInit
Description: Initializes all elements of the instance structure associated
to memories.
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_pApiInstance Pointer to API instance. This memory is used to keep
the present state of the chip and all its resources.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100ApiMemorySwInit
UINT32 Oct6100ApiMemorySwInit(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance )
{
tPOCT6100_SHARED_INFO pSharedInfo;
PVOID pTsiMemAlloc;
PVOID pAllocPnt;
UINT32 ulResult;
/* Get local pointer(s). */
pSharedInfo = f_pApiInstance->pSharedInfo;
/*=========================================================================*/
/* Internal memory */
/* Initialize the TSI memory allocation structure. */
pSharedInfo->MemoryMap.ulNumTsiEntries = cOCT6100_TOTAL_TSI_CONTROL_MEM_ENTRY - pSharedInfo->ChipConfig.usMaxPhasingTssts - cOCT6100_TSI_MEM_FOR_TIMESTAMP;
if ( pSharedInfo->ChipConfig.fEnableExtToneDetection == TRUE )
pSharedInfo->MemoryMap.ulNumTsiEntries--;
mOCT6100_GET_TSI_MEMORY_ALLOC_PNT( pSharedInfo, pTsiMemAlloc );
ulResult = OctapiLlmAllocInit( &pTsiMemAlloc, pSharedInfo->MemoryMap.ulNumTsiEntries );
if ( ulResult != cOCT6100_ERR_OK )
return cOCT6100_ERR_FATAL_95;
/* Initialize the conversion memory allocation structure. */
mOCT6100_GET_CONVERSION_MEMORY_ALLOC_PNT( pSharedInfo, pAllocPnt );
ulResult = OctapiLlmAllocInit( &pAllocPnt, cOCT6100_MAX_CONVERSION_MEMORY_BLOCKS );
if ( ulResult != cOCT6100_ERR_OK )
return cOCT6100_ERR_FATAL_B6;
return cOCT6100_ERR_OK;
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100ApiBufferPlayoutMemorySwInit
Description: Initialize the buffer playout memory allocation working
structures.
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_pApiInstance Pointer to API instance. This memory is used to keep
the present state of the chip and all its resources.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100ApiBufferPlayoutMemorySwInit
UINT32 Oct6100ApiBufferPlayoutMemorySwInit(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance )
{
tPOCT6100_SHARED_INFO pSharedInfo;
tPOCT6100_API_BUFFER_PLAYOUT_MALLOC_NODE pNode;
UINT32 i;
/* Get local pointer to shared portion of instance. */
pSharedInfo = f_pApiInstance->pSharedInfo;
/* Only if buffer playout will be used. */
if ( pSharedInfo->ChipConfig.usMaxPlayoutBuffers > 0 )
{
mOCT6100_GET_BUFFER_MEMORY_NODE_LIST_PNT( pSharedInfo, pNode );
/* First node contains all free memory at beginning. This node is not used, but represents the memory. */
pNode->ulSize = ( pSharedInfo->MiscVars.ulTotalMemSize + cOCT6100_EXTERNAL_MEM_BASE_ADDRESS ) - pSharedInfo->MemoryMap.ulFreeMemBaseAddress;
pNode->ulNext = 0;
pNode->ulPrevious = 0;
pNode->fAllocated = FALSE;
pNode->ulStartAddress = pSharedInfo->MemoryMap.ulFreeMemBaseAddress;
pNode++;
/* Now create the first node of the free list, i.e. nodes that can be used later for modeling the memory. */
pNode->ulSize = 0;
/* Next free. */
pNode->ulNext = 2;
/* Last. */
pNode->ulPrevious = ( pSharedInfo->ChipConfig.usMaxPlayoutBuffers * 2 ) - 1;
pNode->fAllocated = FALSE;
pNode->ulStartAddress = 0;
pNode++;
/* Link all the unused nodes. */
for( i = 2; i < (UINT32)( ( pSharedInfo->ChipConfig.usMaxPlayoutBuffers * 2 ) - 1 ); i ++ )
{
pNode->ulNext = i + 1;
pNode->ulPrevious = i - 1;
pNode->ulStartAddress = 0;
pNode->ulSize = 0;
pNode->fAllocated = FALSE;
pNode++;
}
/* Last node of the unused list. */
pNode->fAllocated = FALSE;
pNode->ulPrevious = ( pSharedInfo->ChipConfig.usMaxPlayoutBuffers * 2 ) - 2;
/* Free list head. */
pNode->ulNext = 1;
pNode->ulSize = 0;
pNode->ulStartAddress = 0;
/* Set roving pointer to first node ( which can be used! ) */
pSharedInfo->PlayoutInfo.ulRovingNode = 0;
/* First unused node. */
pSharedInfo->PlayoutInfo.ulFirstUnusedNode = 1;
/* Last unused node. */
pSharedInfo->PlayoutInfo.ulLastUnusedNode = ( pSharedInfo->ChipConfig.usMaxPlayoutBuffers * 2 ) - 1;
/* Number of unused nodes. */
pSharedInfo->PlayoutInfo.ulUnusedNodeCnt = ( pSharedInfo->ChipConfig.usMaxPlayoutBuffers * 2 ) - 1;
}
else
{
pSharedInfo->PlayoutInfo.ulUnusedNodeCnt = 0;
}
return cOCT6100_ERR_OK;
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100ApiReserveBufferPlayoutMemoryNode
Description: Get a free node from the unused buffer playout node list.
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_pApiInstance Pointer to API instance. This memory is used to keep
the present state of the chip and all its resources.
f_pulNewNode The index of the node.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100ApiReserveBufferPlayoutMemoryNode
UINT32 Oct6100ApiReserveBufferPlayoutMemoryNode(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
OUT PUINT32 f_pulNewNode )
{
tPOCT6100_SHARED_INFO pSharedInfo;
tPOCT6100_API_BUFFER_PLAYOUT_MALLOC_NODE pNode;
/* Get local pointer to shared portion of instance. */
pSharedInfo = f_pApiInstance->pSharedInfo;
/* Check if a free block is left. */
if ( pSharedInfo->PlayoutInfo.ulUnusedNodeCnt == 0 )
{
/* This should not happen according to the allocated list from the beginning. */
return cOCT6100_ERR_FATAL_CC;
}
/* The new node is the first in the unused list. */
*f_pulNewNode = pSharedInfo->PlayoutInfo.ulFirstUnusedNode;
/* Unlink this new node from the unused list. */
mOCT6100_GET_BUFFER_MEMORY_NODE_ENTRY_PNT( pSharedInfo, pNode, *f_pulNewNode );
pSharedInfo->PlayoutInfo.ulFirstUnusedNode = pNode->ulNext;
pNode->ulPrevious = pSharedInfo->PlayoutInfo.ulLastUnusedNode;
mOCT6100_GET_BUFFER_MEMORY_NODE_ENTRY_PNT( pSharedInfo, pNode, pSharedInfo->PlayoutInfo.ulLastUnusedNode );
pNode->ulNext = pSharedInfo->PlayoutInfo.ulFirstUnusedNode;
/* Update unused node count. */
pSharedInfo->PlayoutInfo.ulUnusedNodeCnt--;
return cOCT6100_ERR_OK;
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100ApiReleaseBufferPlayoutMemoryNode
Description: Release a node that is not used anymore. Insert this node
into the unused list.
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_pApiInstance Pointer to API instance. This memory is used to keep
the present state of the chip and all its resources.
f_ulOldNode The index of the node.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100ApiReleaseBufferPlayoutMemoryNode
UINT32 Oct6100ApiReleaseBufferPlayoutMemoryNode(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT32 f_ulOldNode )
{
tPOCT6100_SHARED_INFO pSharedInfo;
tPOCT6100_API_BUFFER_PLAYOUT_MALLOC_NODE pNode;
/* Get local pointer to shared portion of instance. */
pSharedInfo = f_pApiInstance->pSharedInfo;
/* Get the last unused node. Insert this old node at the end of the unused list. */
mOCT6100_GET_BUFFER_MEMORY_NODE_ENTRY_PNT( pSharedInfo, pNode, pSharedInfo->PlayoutInfo.ulLastUnusedNode );
/* Last node points to old node. */
pNode->ulNext = f_ulOldNode;
/* Update old node. */
mOCT6100_GET_BUFFER_MEMORY_NODE_ENTRY_PNT( pSharedInfo, pNode, f_ulOldNode );
pNode->ulPrevious = pSharedInfo->PlayoutInfo.ulLastUnusedNode;
pNode->ulNext = pSharedInfo->PlayoutInfo.ulFirstUnusedNode;
pSharedInfo->PlayoutInfo.ulLastUnusedNode = f_ulOldNode;
/* Keep unused node count. */
pSharedInfo->PlayoutInfo.ulUnusedNodeCnt++;
return cOCT6100_ERR_OK;
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100ApiReserveBufferPlayoutMemory
Description: Try to allocate requested size.
Returns an error if malloc point could not be found.
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_pApiInstance Pointer to API instance. This memory is used to keep
the present state of the chip and all its resources.
f_ulSize Needed size.
f_pulMallocAddress Alloc point. This memory can now be used.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100ApiReserveBufferPlayoutMemory
UINT32 Oct6100ApiReserveBufferPlayoutMemory(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT32 f_ulSize,
OUT PUINT32 f_pulMallocAddress )
{
tPOCT6100_SHARED_INFO pSharedInfo;
tPOCT6100_API_BUFFER_PLAYOUT_MALLOC_NODE pCurrentNode;
tPOCT6100_API_BUFFER_PLAYOUT_MALLOC_NODE pTempNode;
tPOCT6100_API_BUFFER_PLAYOUT_MALLOC_NODE pNewNode;
UINT32 ulCurrentBufferPlayoutMallocNode;
UINT32 ulNewNode;
BOOL fFoundMemory = FALSE;
UINT32 ulResult;
/* Get local pointer to shared portion of instance. */
pSharedInfo = f_pApiInstance->pSharedInfo;
/* Requested size must be divisible by 64. */
if ( f_ulSize % 64 )
{
f_ulSize = f_ulSize + ( 64 - ( f_ulSize % 64 ) );
}
/* Start with roving pointer. */
ulCurrentBufferPlayoutMallocNode = pSharedInfo->PlayoutInfo.ulRovingNode;
*f_pulMallocAddress = 0;
/* Return an error if size requested is zero. */
if ( f_ulSize == 0 )
{
return cOCT6100_ERR_BUFFER_PLAYOUT_MALLOC_ZERO;
}
do
{
mOCT6100_GET_BUFFER_MEMORY_NODE_ENTRY_PNT( pSharedInfo, pCurrentNode, ulCurrentBufferPlayoutMallocNode );
/* Look for a free node big enough to fulfill user requested size. */
if ( ( pCurrentNode->fAllocated == FALSE ) && ( pCurrentNode->ulSize >= f_ulSize ) )
{
/* Use this node! */
pCurrentNode->fAllocated = TRUE;
if ( pCurrentNode->ulNext != 0 )
{
mOCT6100_GET_BUFFER_MEMORY_NODE_ENTRY_PNT( pSharedInfo, pTempNode, pCurrentNode->ulNext );
if( ( pTempNode->fAllocated == TRUE ) && ( pCurrentNode->ulSize > f_ulSize ) )
{
/* Fragmentation NOW! */
/* Allocate new node that will contain free size. */
ulResult = Oct6100ApiReserveBufferPlayoutMemoryNode( f_pApiInstance, &ulNewNode );
if ( ulResult != cOCT6100_ERR_OK )
return ulResult;
mOCT6100_GET_BUFFER_MEMORY_NODE_ENTRY_PNT( pSharedInfo, pNewNode, ulNewNode );
/* Can use this free node. */
pNewNode->ulSize = pCurrentNode->ulSize - f_ulSize;
pNewNode->ulStartAddress = pCurrentNode->ulStartAddress + f_ulSize;
/* Link new node into the list. */
pNewNode->ulNext = pCurrentNode->ulNext;
pNewNode->ulPrevious = ulCurrentBufferPlayoutMallocNode;
pNewNode->fAllocated = FALSE;
pTempNode->ulPrevious = ulNewNode;
pCurrentNode->ulNext = ulNewNode;
}
}
else if ( pCurrentNode->ulSize > f_ulSize )
{
/* Must allocate a new free node for the rest of the space. */
ulResult = Oct6100ApiReserveBufferPlayoutMemoryNode( f_pApiInstance, &ulNewNode );
if ( ulResult != cOCT6100_ERR_OK )
return ulResult;
mOCT6100_GET_BUFFER_MEMORY_NODE_ENTRY_PNT( pSharedInfo, pNewNode, ulNewNode );
pNewNode->ulNext = pCurrentNode->ulNext;
pCurrentNode->ulNext = ulNewNode;
pNewNode->ulPrevious = ulCurrentBufferPlayoutMallocNode;
pNewNode->fAllocated = FALSE;
pNewNode->ulSize = pCurrentNode->ulSize - f_ulSize;
pNewNode->ulStartAddress = pCurrentNode->ulStartAddress + f_ulSize;
mOCT6100_GET_BUFFER_MEMORY_NODE_ENTRY_PNT( pSharedInfo, pTempNode, 0 );
/* Check for the head node that would have to be updated. */
if ( ( ulCurrentBufferPlayoutMallocNode == 0 ) && ( pTempNode->ulPrevious == 0 ) )
pTempNode->ulPrevious = ulNewNode;
}
else
{
/* Perfect fit. */
}
pCurrentNode->ulSize = f_ulSize;
/* Update roving pointer. */
pSharedInfo->PlayoutInfo.ulRovingNode = ulCurrentBufferPlayoutMallocNode;
*f_pulMallocAddress = pCurrentNode->ulStartAddress;
fFoundMemory = TRUE;
break;
}
/* Next block! */
ulCurrentBufferPlayoutMallocNode = pCurrentNode->ulNext;
} while ( pSharedInfo->PlayoutInfo.ulRovingNode != ulCurrentBufferPlayoutMallocNode );
if ( fFoundMemory == FALSE )
{
return cOCT6100_ERR_BUFFER_PLAYOUT_NO_MEMORY;
}
return cOCT6100_ERR_OK;
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100ApiReleaseBufferPlayoutMemory
Description: Free what was allocated at address. Free is somewhat slower
then Malloc. O(n), must travel through the list looking for
the malloc point. Return an error if alloc point was not found.
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_pApiInstance Pointer to API instance. This memory is used to keep
the present state of the chip and all its resources.
f_ulMallocAddress Alloc point. The memory at address will be freed.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100ApiReleaseBufferPlayoutMemory
UINT32 Oct6100ApiReleaseBufferPlayoutMemory(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT32 f_ulMallocAddress )
{
tPOCT6100_SHARED_INFO pSharedInfo;
tPOCT6100_API_BUFFER_PLAYOUT_MALLOC_NODE pCurrentNode;
tPOCT6100_API_BUFFER_PLAYOUT_MALLOC_NODE pTempNode;
tPOCT6100_API_BUFFER_PLAYOUT_MALLOC_NODE pOldNode;
UINT32 ulResult = cOCT6100_ERR_BUFFER_PLAYOUT_MALLOC_POINT_NOT_FOUND;
UINT32 ulNodeToMerge;
UINT32 ulNodeToRemove;
UINT32 ulCurrentBufferPlayoutMallocNode;
/* Get local pointer to shared portion of instance. */
pSharedInfo = f_pApiInstance->pSharedInfo;
/* Start from the beginning and find the alloc node. */
ulCurrentBufferPlayoutMallocNode = 0;
do
{
mOCT6100_GET_BUFFER_MEMORY_NODE_ENTRY_PNT( pSharedInfo, pCurrentNode, ulCurrentBufferPlayoutMallocNode );
if ( ( pCurrentNode->ulStartAddress == f_ulMallocAddress ) && ( pCurrentNode->fAllocated == TRUE ) )
{
/* We found the block! */
pCurrentNode->fAllocated = FALSE;
/* Check if the next node can be merged. */
if ( pCurrentNode->ulNext != 0 )
{
mOCT6100_GET_BUFFER_MEMORY_NODE_ENTRY_PNT( pSharedInfo, pTempNode, pCurrentNode->ulNext );
if ( pTempNode->fAllocated == FALSE )
{
/* Can merge this block to us. */
pCurrentNode->ulSize += pTempNode->ulSize;
pTempNode->ulSize = 0;
/* Unlink unused node. */
ulNodeToRemove = pCurrentNode->ulNext;
pCurrentNode->ulNext = pTempNode->ulNext;
mOCT6100_GET_BUFFER_MEMORY_NODE_ENTRY_PNT( pSharedInfo, pTempNode, pCurrentNode->ulNext );
pTempNode->ulPrevious = ulCurrentBufferPlayoutMallocNode;
ulResult = Oct6100ApiReleaseBufferPlayoutMemoryNode( f_pApiInstance, ulNodeToRemove );
if ( ulResult != cOCT6100_ERR_OK )
return ulResult;
/* Move roving pointer if have to. */
if ( pSharedInfo->PlayoutInfo.ulRovingNode == ulNodeToRemove )
pSharedInfo->PlayoutInfo.ulRovingNode = ulCurrentBufferPlayoutMallocNode;
}
}
/* Check if previous node can merge. */
if ( ulCurrentBufferPlayoutMallocNode != 0 )
{
mOCT6100_GET_BUFFER_MEMORY_NODE_ENTRY_PNT( pSharedInfo, pTempNode, pCurrentNode->ulPrevious );
if ( pTempNode->fAllocated == FALSE )
{
ulNodeToMerge = pCurrentNode->ulPrevious;
/* Can merge us to this node. */
pTempNode->ulSize += pCurrentNode->ulSize;
pCurrentNode->ulSize = 0;
/* Unlink unused node. */
ulNodeToRemove = ulCurrentBufferPlayoutMallocNode;
mOCT6100_GET_BUFFER_MEMORY_NODE_ENTRY_PNT( pSharedInfo, pOldNode, ulNodeToRemove );
pTempNode->ulNext = pOldNode->ulNext;
mOCT6100_GET_BUFFER_MEMORY_NODE_ENTRY_PNT( pSharedInfo, pTempNode, pTempNode->ulNext );
pTempNode->ulPrevious = ulNodeToMerge;
pOldNode->fAllocated = FALSE;
pOldNode->ulSize = 0;
pOldNode->ulStartAddress = 0;
/* Move roving pointer if have to. */
if ( pSharedInfo->PlayoutInfo.ulRovingNode == ulNodeToRemove )
pSharedInfo->PlayoutInfo.ulRovingNode = ulNodeToMerge;
/* Release this unused node. */
ulResult = Oct6100ApiReleaseBufferPlayoutMemoryNode( f_pApiInstance, ulNodeToRemove );
if ( ulResult != cOCT6100_ERR_OK )
return ulResult;
}
}
/* All's good! */
ulResult = 0;
break;
}
/* Next node. */
ulCurrentBufferPlayoutMallocNode = pCurrentNode->ulNext;
} while( ulCurrentBufferPlayoutMallocNode != 0 );
return ulResult;
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100ApiReserveTsiMemEntry
Description: Reserves a TSI chariot memory entry.
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_pApiInstance Pointer to API instance. This memory is used to keep
the present state of the chip and all its resources.
f_pusTsiMemIndex Resulting index reserved in the TSI chariot memory.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100ApiReserveTsiMemEntry
UINT32 Oct6100ApiReserveTsiMemEntry(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
OUT PUINT16 f_pusTsiMemIndex )
{
tPOCT6100_SHARED_INFO pSharedInfo;
PVOID pTsiMemAlloc;
UINT32 ulResult;
UINT32 ulIndex;
UINT32 ulNumTsiB4Timestamp;
/* Get local pointer to shared portion of instance. */
pSharedInfo = f_pApiInstance->pSharedInfo;
mOCT6100_GET_TSI_MEMORY_ALLOC_PNT( pSharedInfo, pTsiMemAlloc )
ulResult = OctapiLlmAllocAlloc( pTsiMemAlloc, &ulIndex );
if ( ulResult != cOCT6100_ERR_OK )
{
if ( ulResult == OCTAPI_LLM_NO_STRUCTURES_LEFT )
return cOCT6100_ERR_MEMORY_ALL_TSI_MEM_ENTRY_RESERVED;
else
return cOCT6100_ERR_FATAL_92;
}
if ( ulIndex >= cOCT6100_NUM_TSI_B4_PHASING )
{
/* Evaluate the number of TSI memory before the timestamp TSI. */
ulNumTsiB4Timestamp = cOCT6100_NUM_TSI_B4_PHASING + cOCT6100_MAX_TSI_B4_TIMESTAMP - pSharedInfo->ChipConfig.usMaxPhasingTssts;
if ( ulIndex >= ulNumTsiB4Timestamp )
{
/* + 4 for the timestamp TSI entries.*/
*f_pusTsiMemIndex = (UINT16)( pSharedInfo->ChipConfig.usMaxPhasingTssts + ulIndex + cOCT6100_TSI_MEM_FOR_TIMESTAMP );
}
else /* ulIndex < ulNumTsiB4Timestamp */
{
*f_pusTsiMemIndex = (UINT16)( pSharedInfo->ChipConfig.usMaxPhasingTssts + ulIndex );
}
}
else /* ulIndex < ulNumTsiB4Timestamp */
{
*f_pusTsiMemIndex = (UINT16)( ulIndex );
}
return cOCT6100_ERR_OK;
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100ApiReleaseTsiMemEntry
Description: Releases a TSI chariot memory entry specified.
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_pApiInstance Pointer to API instance. This memory is used to keep
the present state of the chip and all its resources.
f_usTsiMemIndex Index reserved in the TSI chariot memory.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100ApiReleaseTsiMemEntry
UINT32 Oct6100ApiReleaseTsiMemEntry(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT16 f_usTsiMemIndex )
{
tPOCT6100_SHARED_INFO pSharedInfo;
PVOID pTsiMemAlloc;
UINT32 ulResult;
UINT32 ulIndex;
/* Get local pointer to shared portion of instance. */
pSharedInfo = f_pApiInstance->pSharedInfo;
/* Check if the entry programmed is greater then the timestamp entries. */
if ( f_usTsiMemIndex > cOCT6100_TSST_CONTROL_TIMESTAMP_BASE_ENTRY )
ulIndex = f_usTsiMemIndex - cOCT6100_TSI_MEM_FOR_TIMESTAMP;
else
ulIndex = f_usTsiMemIndex;
/* Check if the entry programmed is greater then the phasing TSST entries. */
if ( ulIndex > cOCT6100_TSST_CONTROL_PHASING_TSST_BASE_ENTRY )
ulIndex -= pSharedInfo->ChipConfig.usMaxPhasingTssts;
mOCT6100_GET_TSI_MEMORY_ALLOC_PNT( pSharedInfo, pTsiMemAlloc )
ulResult = OctapiLlmAllocDealloc( pTsiMemAlloc, ulIndex );
if ( ulResult != cOCT6100_ERR_OK )
{
return cOCT6100_ERR_FATAL_93;
}
return cOCT6100_ERR_OK;
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100ApiReserveConversionMemEntry
Description: Reserves one of the conversion memory entry
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_pApiInstance Pointer to API instance. This memory is used to
keep the present state of the chip and all its
resources.
f_pusConversionMemIndex Resulting index reserved in the conversion memory.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100ApiReserveConversionMemEntry
UINT32 Oct6100ApiReserveConversionMemEntry(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
OUT PUINT16 f_pusConversionMemIndex )
{
tPOCT6100_SHARED_INFO pSharedInfo;
PVOID pConversionMemAlloc;
UINT32 ulConversionMemIndex;
UINT32 ulResult;
/* Get local pointer to shared portion of instance. */
pSharedInfo = f_pApiInstance->pSharedInfo;
mOCT6100_GET_CONVERSION_MEMORY_ALLOC_PNT( pSharedInfo, pConversionMemAlloc )
ulResult = OctapiLlmAllocAlloc( pConversionMemAlloc, &ulConversionMemIndex );
if ( ulResult != cOCT6100_ERR_OK )
{
if ( ulResult == OCTAPI_LLM_NO_STRUCTURES_LEFT )
return cOCT6100_ERR_MEMORY_ALL_CONVERSION_MEM_ENTRY_RESERVED;
else
return cOCT6100_ERR_FATAL_B8;
}
*f_pusConversionMemIndex = (UINT16)( ulConversionMemIndex & 0xFFFF );
return cOCT6100_ERR_OK;
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100ApiReleaseConversionMemEntry
Description: Releases the conversion chariot memory entry specified.
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_pApiInstance Pointer to API instance. This memory is used to
keep the present state of the chip and all its
resources.
f_usConversionMemIndex Index reserved in the conversion chariot memory.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100ApiReleaseConversionMemEntry
UINT32 Oct6100ApiReleaseConversionMemEntry(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT16 f_usConversionMemIndex )
{
tPOCT6100_SHARED_INFO pSharedInfo;
PVOID pConversionMemAlloc;
UINT32 ulResult;
/* Get local pointer to shared portion of instance. */
pSharedInfo = f_pApiInstance->pSharedInfo;
mOCT6100_GET_CONVERSION_MEMORY_ALLOC_PNT( pSharedInfo, pConversionMemAlloc )
ulResult = OctapiLlmAllocDealloc( pConversionMemAlloc, f_usConversionMemIndex );
if ( ulResult != cOCT6100_ERR_OK )
{
return cOCT6100_ERR_FATAL_B7;
}
return cOCT6100_ERR_OK;
}
#endif

View File

@ -0,0 +1,640 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_miscellaneous.c
Copyright (c) 2001-2007 Octasic Inc.
Description:
This file contains miscellaneous functions used in various files.
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-PR49 $
$Octasic_Revision: 35 $
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
/***************************** INCLUDE FILES *******************************/
#include "octdef.h"
#include "oct6100api/oct6100_defines.h"
#include "oct6100api/oct6100_errors.h"
#include "apilib/octapi_largmath.h"
#include "oct6100api/oct6100_apiud.h"
#include "oct6100api/oct6100_tlv_inst.h"
#include "oct6100api/oct6100_chip_open_inst.h"
#include "oct6100api/oct6100_chip_stats_inst.h"
#include "oct6100api/oct6100_interrupts_inst.h"
#include "oct6100api/oct6100_remote_debug_inst.h"
#include "oct6100api/oct6100_debug_inst.h"
#include "oct6100api/oct6100_api_inst.h"
#include "oct6100api/oct6100_channel_inst.h"
#include "oct6100api/oct6100_interrupts_pub.h"
#include "oct6100api/oct6100_chip_open_pub.h"
#include "oct6100api/oct6100_channel_pub.h"
#include "oct6100_chip_open_priv.h"
#include "oct6100_channel_priv.h"
#include "oct6100_miscellaneous_priv.h"
/**************************** PRIVATE FUNCTIONS ****************************/
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100ApiWaitForTime
Description: Waits for the specified amount of time.
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_aulWaitTime[ 2 ] The amout of time to be waited.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100ApiWaitForTime
UINT32 Oct6100ApiWaitForTime(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT32 f_aulWaitTime[ 2 ] )
{
tOCT6100_GET_TIME StartTime;
tOCT6100_GET_TIME CurrentTime;
UINT32 aulTimeDelta[ 2 ];
UINT32 ulResult;
UINT16 usTempVar;
BOOL fConditionFlag = TRUE;
/* Copy the process context. */
StartTime.pProcessContext = f_pApiInstance->pProcessContext;
CurrentTime.pProcessContext = f_pApiInstance->pProcessContext;
ulResult = Oct6100UserGetTime( &StartTime );
if ( ulResult != cOCT6100_ERR_OK )
return ulResult;
while ( fConditionFlag )
{
ulResult = Oct6100UserGetTime( &CurrentTime );
if ( ulResult != cOCT6100_ERR_OK )
return ulResult;
ulResult = octapi_lm_subtract(
CurrentTime.aulWallTimeUs, 1,
StartTime.aulWallTimeUs, 1,
aulTimeDelta, 1,
&usTempVar );
if ( ulResult != cOCT6100_ERR_OK )
return cOCT6100_ERR_FATAL_37;
if ( aulTimeDelta[ 1 ] >= f_aulWaitTime[ 1 ] &&
aulTimeDelta[ 0 ] >= f_aulWaitTime[ 0 ] )
fConditionFlag = FALSE;
}
return cOCT6100_ERR_OK;
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100ApiWaitForPcRegisterBit
Description: Polls the specified PC register bit. The function exits once
the bit is cleared by hardware, or when the specified timeout
period has been expired.
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_pApiInstance Pointer to API instance. This memory is used to keep the
present state of the chip and all its resources.
f_ulPcRegAdd Address of the register containing the PC bit.
f_ulPcBitNum Number of the PC bit within the register.
f_ulValue Expected value of the bit.
f_ulTimeoutUs The timeout period, in usec.
f_pfBitEqual Pointer to the result of the bit comparison.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100ApiWaitForPcRegisterBit
UINT32 Oct6100ApiWaitForPcRegisterBit(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT32 f_ulPcRegAdd,
IN UINT32 f_ulPcBitNum,
IN UINT32 f_ulValue,
IN UINT32 f_ulTimeoutUs,
OUT PBOOL f_pfBitEqual )
{
tOCT6100_READ_PARAMS ReadParams;
tOCT6100_GET_TIME StartTime;
tOCT6100_GET_TIME TimeoutTime;
tOCT6100_GET_TIME CurrentTime;
UINT32 ulResult;
UINT16 usReadData;
BOOL fConditionFlag = TRUE;
/* Copy the process context. */
StartTime.pProcessContext = f_pApiInstance->pProcessContext;
CurrentTime.pProcessContext = f_pApiInstance->pProcessContext;
/* Get the current system time. */
ulResult = Oct6100UserGetTime( &StartTime );
if ( ulResult != cOCT6100_ERR_OK )
return ulResult;
/* Mark the bit as not being equal, for now. */
*f_pfBitEqual = FALSE;
/* Determine the time at which the timeout has expired. */
ulResult = octapi_lm_add(
StartTime.aulWallTimeUs, 1,
&f_ulTimeoutUs, 0,
TimeoutTime.aulWallTimeUs, 1 );
if ( ulResult != cOCT6100_ERR_OK )
return ulResult;
/* Prepare read structure. */
ReadParams.pProcessContext = f_pApiInstance->pProcessContext;
ReadParams.ulUserChipId = f_pApiInstance->pSharedInfo->ChipConfig.ulUserChipId;
ReadParams.ulReadAddress = f_ulPcRegAdd;
ReadParams.pusReadData = &usReadData;
/* Read the PC bit while the timeout period hasn't expired. */
while ( fConditionFlag )
{
/* Read the current time again to check for timeout. */
ulResult = Oct6100UserGetTime( &CurrentTime );
if ( ulResult != cOCT6100_ERR_OK )
return ulResult;
ulResult = Oct6100UserDriverReadApi( &ReadParams );
if ( ulResult != cOCT6100_ERR_OK )
return ulResult;
if ( ( UINT16 )((usReadData >> f_ulPcBitNum) & 0x1) == ( UINT16 )f_ulValue )
{
/* Mark the bit as being equal. */
*f_pfBitEqual = TRUE;
fConditionFlag = FALSE;
}
if ( CurrentTime.aulWallTimeUs[ 1 ] > TimeoutTime.aulWallTimeUs[ 1 ] ||
(CurrentTime.aulWallTimeUs[ 1 ] == TimeoutTime.aulWallTimeUs[ 1 ] &&
CurrentTime.aulWallTimeUs[ 0 ] >= TimeoutTime.aulWallTimeUs[ 0 ]) )
fConditionFlag = FALSE;
}
return cOCT6100_ERR_OK;
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100ApiReadDword
Description: Read a DWORD at specified address in external memory.
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_pApiInstance Pointer to API instance. This memory is used to keep the
present state of the chip and all its resources.
f_ulAddress DWORD address where to read.
f_pulReadData Resulting data.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100ApiReadDword
UINT32 Oct6100ApiReadDword(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT32 f_ulAddress,
OUT PUINT32 f_pulReadData )
{
tOCT6100_READ_PARAMS ReadParams;
UINT16 usReadData;
UINT32 ulResult;
UINT32 ulTempData;
ReadParams.pProcessContext = f_pApiInstance->pProcessContext;
ReadParams.ulUserChipId = f_pApiInstance->pSharedInfo->ChipConfig.ulUserChipId;
ReadParams.pusReadData = &usReadData;
/*==================================================================================*/
/* Read the first 16 bits. */
ReadParams.ulReadAddress = f_ulAddress;
mOCT6100_DRIVER_READ_API( ReadParams, ulResult );
if ( ulResult != cOCT6100_ERR_OK )
return ulResult;
/* Save data. */
ulTempData = usReadData << 16;
/* Read the last 16 bits. */
ReadParams.ulReadAddress += 2;
mOCT6100_DRIVER_READ_API( ReadParams, ulResult );
if ( ulResult != cOCT6100_ERR_OK )
return ulResult;
/* Save data. */
ulTempData |= usReadData;
/*==================================================================================*/
/* Return the read value.*/
*f_pulReadData = ulTempData;
return cOCT6100_ERR_OK;
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100ApiWriteDword
Description: Write a DWORD at specified address in external memory.
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_pApiInstance Pointer to API instance. This memory is used to keep the
present state of the chip and all its resources.
f_ulAddress DWORD address where to write.
f_ulWriteData DWORD data to write.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100ApiWriteDword
UINT32 Oct6100ApiWriteDword(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT32 f_ulAddress,
IN UINT32 f_ulWriteData )
{
tOCT6100_WRITE_PARAMS WriteParams;
UINT32 ulResult;
WriteParams.pProcessContext = f_pApiInstance->pProcessContext;
WriteParams.ulUserChipId = f_pApiInstance->pSharedInfo->ChipConfig.ulUserChipId;
/* Write the first 16 bits. */
WriteParams.ulWriteAddress = f_ulAddress;
WriteParams.usWriteData = (UINT16)((f_ulWriteData >> 16) & 0xFFFF);
mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult );
if ( ulResult != cOCT6100_ERR_OK )
return ulResult;
/* Write the last word. */
WriteParams.ulWriteAddress += 2;
WriteParams.usWriteData = (UINT16)(f_ulWriteData & 0xFFFF);
mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult );
if ( ulResult != cOCT6100_ERR_OK )
return ulResult;
return cOCT6100_ERR_OK;
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100ApiCreateFeatureMask
Description:
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_ulFieldSize Size of the field, in bits.
f_ulFieldBitOffset Bit offset, from the least significant bit.
f_pulFieldMask Resulting mask.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100ApiCreateFeatureMask
VOID Oct6100ApiCreateFeatureMask(
IN UINT32 f_ulFieldSize,
IN UINT32 f_ulFieldBitOffset,
OUT PUINT32 f_pulFieldMask )
{
UINT32 ulMask;
UINT32 i;
ulMask = 0;
/* Create the mask based on the field size. */
for ( i = 0; i < f_ulFieldSize; i++ )
{
ulMask <<= 1;
ulMask |= 1;
}
/* Once the mask is of the desired size, offset it to fit the field */
/* within the DWORD read. */
ulMask <<= f_ulFieldBitOffset;
/* Return the mask. */
*f_pulFieldMask = ulMask;
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100ApiStrStr
Description: OCT6100 API version of strstr()
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_pszSource Source string to analyze.
f_pszString String to look for.
f_pszLastCharPtr Last character in the source string.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100ApiStrStr
unsigned char const *Oct6100ApiStrStr(
IN unsigned char const *f_pszSource,
IN unsigned char const *f_pszString,
IN unsigned char const *f_pszLastCharPtr )
{
UINT32 ulCurrentPos;
UINT32 ulStringLength;
UINT32 ulNumMatchingCharFound = 0;
unsigned char const *pchFirstChar = NULL;
UINT32 ulSourceLength;
if ( f_pszLastCharPtr < f_pszSource )
return NULL;
ulSourceLength = (UINT32)( f_pszLastCharPtr - f_pszSource );
ulStringLength = Oct6100ApiStrLen( f_pszString );
for ( ulCurrentPos = 0; ulCurrentPos < ulSourceLength; ulCurrentPos++ )
{
/* Check if the character matches. */
if ( f_pszSource[ ulCurrentPos ] == f_pszString[ ulNumMatchingCharFound ] )
{
if ( ulNumMatchingCharFound == 0 )
pchFirstChar = ( f_pszSource + ulCurrentPos );
ulNumMatchingCharFound++;
/* Check if the whole string matched. */
if ( ulNumMatchingCharFound == ulStringLength )
break;
}
else if ( ulNumMatchingCharFound != 0 )
{
ulNumMatchingCharFound = 0;
/* Reset the search, but take a look at the current character. It might */
/* be the beginning of the string we are looking for. */
if ( f_pszSource[ ulCurrentPos ] == f_pszString[ ulNumMatchingCharFound ] )
{
pchFirstChar = ( f_pszSource + ulCurrentPos );
ulNumMatchingCharFound++;
/* Check if the whole string matched. */
/* This check must be done in case we have the 1 character strstr */
if ( ulNumMatchingCharFound == ulStringLength )
break;
}
}
}
if ( ulCurrentPos == ulSourceLength )
return NULL;
else
return pchFirstChar;
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100ApiStrLen
Description: OCT6100 API version of strlen()
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_pszString Source string to count length of.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100ApiStrLen
UINT32 Oct6100ApiStrLen(
IN unsigned char const *f_pszString )
{
UINT32 ulCount = 0;
while( f_pszString[ ulCount ] != '\0' )
ulCount++;
return ulCount;
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100ApiAsciiToHex
Description: Convert an ASCII character to an hexadecimal value.
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_chCharacter ASCII character to convert.
f_pulValue Resulting hexadecimal value.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100ApiAsciiToHex
UINT32 Oct6100ApiAsciiToHex(
IN UINT8 f_chCharacter,
OUT PUINT32 f_pulValue )
{
switch ( f_chCharacter )
{
case '0':
(*f_pulValue) = 0x0;
break;
case '1':
(*f_pulValue) = 0x1;
break;
case '2':
(*f_pulValue) = 0x2;
break;
case '3':
(*f_pulValue) = 0x3;
break;
case '4':
(*f_pulValue) = 0x4;
break;
case '5':
(*f_pulValue) = 0x5;
break;
case '6':
(*f_pulValue) = 0x6;
break;
case '7':
(*f_pulValue) = 0x7;
break;
case '8':
(*f_pulValue) = 0x8;
break;
case '9':
(*f_pulValue) = 0x9;
break;
case 'A':
case 'a':
(*f_pulValue) = 0xA;
break;
case 'B':
case 'b':
(*f_pulValue) = 0xB;
break;
case 'C':
case 'c':
(*f_pulValue) = 0xC;
break;
case 'D':
case 'd':
(*f_pulValue) = 0xD;
break;
case 'E':
case 'e':
(*f_pulValue) = 0xE;
break;
case 'F':
case 'f':
(*f_pulValue) = 0xF;
break;
default:
(*f_pulValue) = 0x0;
return cOCT6100_ERR_MISC_ASCII_CONVERSION_FAILED;
}
return cOCT6100_ERR_OK;
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100ApiHexToAscii
Description: Convert an hexadecimal value to an ASCII character.
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_ulNumber Hexadecimal value to convert.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100ApiHexToAscii
UINT8 Oct6100ApiHexToAscii(
IN UINT32 f_ulNumber )
{
if ( f_ulNumber >= 0xA )
return (UINT8)( 55 + f_ulNumber ); /* Hex values from 0xA to 0xF */
else
return (UINT8)( 48 + f_ulNumber ); /* Hex values from 0x0 to 0x9 */
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100ApiRand
Description: Random number generator.
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_ulRange Range of the random number to be generated.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100ApiRand
UINT32 Oct6100ApiRand(
IN UINT32 f_ulRange )
{
static UINT32 ulRandomSeed = 0x12345678;
UINT32 ulBit0;
UINT32 i, j;
UINT16 ulWithinRange = FALSE;
UINT32 ulResult = cOCT6100_ERR_OK;
UINT16 ulLoop;
UINT32 ulRangeMask;
UINT32 ulAddedValue;
ulRangeMask = 1;
ulLoop = TRUE;
i = 1;
while ( ulLoop )
{
ulAddedValue = 2;
for ( j = 1; j < i; j++ )
ulAddedValue *= 2;
ulRangeMask = ulRangeMask + ulAddedValue;
if ( ulRangeMask >= f_ulRange )
ulLoop = FALSE;
i++;
}
while ( !ulWithinRange )
{
ulBit0 = ((ulRandomSeed >> 19) & 0x1) ^ ((ulRandomSeed >> 16) & 0x1);
ulRandomSeed = ((ulRandomSeed << 1) & 0xFFFFF) | ulBit0;
ulResult = ulRandomSeed & ulRangeMask;
if ( ulResult <= f_ulRange )
ulWithinRange = TRUE;
}
return ulResult;
}
#endif

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,922 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_phasing_tsst.c
Copyright (c) 2001-2007 Octasic Inc.
Description:
This file contains functions used to open and close phasing TSSTs.
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-PR49 $
$Octasic_Revision: 46 $
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
/***************************** INCLUDE FILES *******************************/
#include "octdef.h"
#include "oct6100api/oct6100_defines.h"
#include "oct6100api/oct6100_errors.h"
#include "oct6100api/oct6100_apiud.h"
#include "apilib/octapi_llman.h"
#include "oct6100api/oct6100_tlv_inst.h"
#include "oct6100api/oct6100_chip_open_inst.h"
#include "oct6100api/oct6100_chip_stats_inst.h"
#include "oct6100api/oct6100_interrupts_inst.h"
#include "oct6100api/oct6100_remote_debug_inst.h"
#include "oct6100api/oct6100_debug_inst.h"
#include "oct6100api/oct6100_api_inst.h"
#include "oct6100api/oct6100_phasing_tsst_inst.h"
#include "oct6100api/oct6100_interrupts_pub.h"
#include "oct6100api/oct6100_chip_open_pub.h"
#include "oct6100api/oct6100_channel_pub.h"
#include "oct6100api/oct6100_phasing_tsst_pub.h"
#include "oct6100api/oct6100_channel_inst.h"
#include "oct6100_chip_open_priv.h"
#include "oct6100_miscellaneous_priv.h"
#include "oct6100_memory_priv.h"
#include "oct6100_tsst_priv.h"
#include "oct6100_phasing_tsst_priv.h"
/**************************** PUBLIC FUNCTIONS ****************************/
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100PhasingTsstOpen
Description: This function opens a phasing TSST.
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_pApiInstance Pointer to API instance. This memory is used to keep the
present state of the chip and all its resources.
f_pPhasingTsstOpen Pointer to phasing TSST open structure.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100PhasingTsstOpenDef
UINT32 Oct6100PhasingTsstOpenDef(
tPOCT6100_PHASING_TSST_OPEN f_pPhasingTsstOpen )
{
f_pPhasingTsstOpen->pulPhasingTsstHndl = NULL;
f_pPhasingTsstOpen->ulTimeslot = cOCT6100_INVALID_TIMESLOT;
f_pPhasingTsstOpen->ulStream = cOCT6100_INVALID_STREAM;
f_pPhasingTsstOpen->ulPhasingLength = 88;
return cOCT6100_ERR_OK;
}
#endif
#if !SKIP_Oct6100PhasingTsstOpen
UINT32 Oct6100PhasingTsstOpen(
tPOCT6100_INSTANCE_API f_pApiInstance,
tPOCT6100_PHASING_TSST_OPEN f_pPhasingTsstOpen )
{
tOCT6100_SEIZE_SERIALIZE_OBJECT SeizeSerObj;
tOCT6100_RELEASE_SERIALIZE_OBJECT ReleaseSerObj;
UINT32 ulSerRes = cOCT6100_ERR_OK;
UINT32 ulFncRes = cOCT6100_ERR_OK;
/* Set the process context of the serialize structure. */
SeizeSerObj.pProcessContext = f_pApiInstance->pProcessContext;
ReleaseSerObj.pProcessContext = f_pApiInstance->pProcessContext;
/* Seize all list semaphores needed by this function. */
SeizeSerObj.ulSerialObjHndl = f_pApiInstance->ulApiSerObj;
SeizeSerObj.ulTryTimeMs = cOCT6100_WAIT_INFINITELY;
ulSerRes = Oct6100UserSeizeSerializeObject( &SeizeSerObj );
if ( ulSerRes == cOCT6100_ERR_OK )
{
/* Call the serialized function. */
ulFncRes = Oct6100PhasingTsstOpenSer( f_pApiInstance, f_pPhasingTsstOpen );
}
else
{
return ulSerRes;
}
/* Release the seized semaphores. */
ReleaseSerObj.ulSerialObjHndl = f_pApiInstance->ulApiSerObj;
ulSerRes = Oct6100UserReleaseSerializeObject( &ReleaseSerObj );
/* If an error occured then return the error code. */
if ( ulSerRes != cOCT6100_ERR_OK )
return ulSerRes;
if ( ulFncRes != cOCT6100_ERR_OK )
return ulFncRes;
return cOCT6100_ERR_OK;
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100PhasingTsstClose
Description: This function closes a phasing TSST
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_pApiInstance Pointer to API instance. This memory is used to keep the
present state of the chip and all its resources.
f_pPhasingTsstClose Pointer to phasing TSST close structure.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100PhasingTsstCloseDef
UINT32 Oct6100PhasingTsstCloseDef(
tPOCT6100_PHASING_TSST_CLOSE f_pPhasingTsstClose )
{
f_pPhasingTsstClose->ulPhasingTsstHndl = cOCT6100_INVALID_HANDLE;
return cOCT6100_ERR_OK;
}
#endif
#if !SKIP_Oct6100PhasingTsstClose
UINT32 Oct6100PhasingTsstClose(
tPOCT6100_INSTANCE_API f_pApiInstance,
tPOCT6100_PHASING_TSST_CLOSE f_pPhasingTsstClose )
{
tOCT6100_SEIZE_SERIALIZE_OBJECT SeizeSerObj;
tOCT6100_RELEASE_SERIALIZE_OBJECT ReleaseSerObj;
UINT32 ulSerRes = cOCT6100_ERR_OK;
UINT32 ulFncRes = cOCT6100_ERR_OK;
/* Set the process context of the serialize structure. */
SeizeSerObj.pProcessContext = f_pApiInstance->pProcessContext;
ReleaseSerObj.pProcessContext = f_pApiInstance->pProcessContext;
/* Seize all list semaphores needed by this function. */
SeizeSerObj.ulSerialObjHndl = f_pApiInstance->ulApiSerObj;
SeizeSerObj.ulTryTimeMs = cOCT6100_WAIT_INFINITELY;
ulSerRes = Oct6100UserSeizeSerializeObject( &SeizeSerObj );
if ( ulSerRes == cOCT6100_ERR_OK )
{
/* Call the serialized function. */
ulFncRes = Oct6100PhasingTsstCloseSer( f_pApiInstance, f_pPhasingTsstClose );
}
else
{
return ulSerRes;
}
/* Release the seized semaphores. */
ReleaseSerObj.ulSerialObjHndl = f_pApiInstance->ulApiSerObj;
ulSerRes = Oct6100UserReleaseSerializeObject( &ReleaseSerObj );
/* If an error occured then return the error code. */
if ( ulSerRes != cOCT6100_ERR_OK )
return ulSerRes;
if ( ulFncRes != cOCT6100_ERR_OK )
return ulFncRes;
return cOCT6100_ERR_OK;
}
#endif
/**************************** PRIVATE FUNCTIONS ****************************/
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100ApiGetPhasingTsstSwSizes
Description: Gets the sizes of all portions of the API instance pertinent
to the management of Phasing TSSTs.
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_pOpenChip Pointer to chip configuration struct.
f_pInstSizes Pointer to struct containing instance sizes.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100ApiGetPhasingTsstSwSizes
UINT32 Oct6100ApiGetPhasingTsstSwSizes(
IN tPOCT6100_CHIP_OPEN f_pOpenChip,
OUT tPOCT6100_API_INSTANCE_SIZES f_pInstSizes )
{
UINT32 ulTempVar;
UINT32 ulResult;
/* Determine the amount of memory required for the API phasing TSST list. */
f_pInstSizes->ulPhasingTsstList = f_pOpenChip->ulMaxPhasingTssts * sizeof( tOCT6100_API_PHASING_TSST );
if ( f_pOpenChip->ulMaxPhasingTssts > 0 )
{
/* Calculate memory needed for Phasing TSST API memory allocation */
ulResult = OctapiLlmAllocGetSize( f_pOpenChip->ulMaxPhasingTssts, &f_pInstSizes->ulPhasingTsstAlloc );
if ( ulResult != cOCT6100_ERR_OK )
return cOCT6100_ERR_FATAL_38;
}
else
{
f_pInstSizes->ulPhasingTsstAlloc = 0;
}
mOCT6100_ROUND_MEMORY_SIZE( f_pInstSizes->ulPhasingTsstList, ulTempVar )
mOCT6100_ROUND_MEMORY_SIZE( f_pInstSizes->ulPhasingTsstAlloc, ulTempVar )
return cOCT6100_ERR_OK;
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100ApiPhasingTsstSwInit
Description: Initializes all elements of the instance structure associated
to phasing TSST.
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_pApiInstance Pointer to API instance. This memory is used to keep
the present state of the chip and all its resources.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100ApiPhasingTsstSwInit
UINT32 Oct6100ApiPhasingTsstSwInit(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance )
{
tPOCT6100_API_PHASING_TSST pPhasingTsstList;
tPOCT6100_SHARED_INFO pSharedInfo;
UINT32 ulMaxPhasingTssts;
PVOID pPhasingTsstAlloc;
UINT32 ulResult;
/* Get local pointer to shared portion of instance. */
pSharedInfo = f_pApiInstance->pSharedInfo;
/* Initialize the phasing TSST API list. */
ulMaxPhasingTssts = pSharedInfo->ChipConfig.usMaxPhasingTssts;
/* Set all entries in the phasing TSST list to unused. */
mOCT6100_GET_PHASING_TSST_LIST_PNT( pSharedInfo, pPhasingTsstList )
/* Clear the memory */
Oct6100UserMemSet( pPhasingTsstList, 0x00, sizeof(tOCT6100_API_PHASING_TSST) * ulMaxPhasingTssts );
/* Initialize the phasing TSST allocation software to "all free". */
if ( ulMaxPhasingTssts > 0 )
{
mOCT6100_GET_PHASING_TSST_ALLOC_PNT( pSharedInfo, pPhasingTsstAlloc )
ulResult = OctapiLlmAllocInit( &pPhasingTsstAlloc, ulMaxPhasingTssts );
if ( ulResult != cOCT6100_ERR_OK )
return cOCT6100_ERR_FATAL_39;
}
return cOCT6100_ERR_OK;
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100PhasingTsstOpenSer
Description: Opens a phasing TSST.
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_pApiInstance Pointer to API instance. This memory is used to keep the
present state of the chip and all its resources.
f_pPhasingTsstOpen Pointer to phasing TSST open configuration structure.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100PhasingTsstOpenSer
UINT32 Oct6100PhasingTsstOpenSer(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN OUT tPOCT6100_PHASING_TSST_OPEN f_pPhasingTsstOpen )
{
UINT16 usPhasingIndex;
UINT16 usTsstIndex;
UINT32 ulResult;
/* Check the user's configuration of the phasing TSST for errors. */
ulResult = Oct6100ApiCheckPhasingParams( f_pApiInstance, f_pPhasingTsstOpen );
if ( ulResult != cOCT6100_ERR_OK )
return ulResult;
/* Reserve all resources needed by the phasing TSST. */
ulResult = Oct6100ApiReservePhasingResources( f_pApiInstance, f_pPhasingTsstOpen, &usPhasingIndex, &usTsstIndex );
if ( ulResult != cOCT6100_ERR_OK )
return ulResult;
/* Write all necessary structures to activate the phasing TSST. */
ulResult = Oct6100ApiWritePhasingStructs( f_pApiInstance, f_pPhasingTsstOpen, usPhasingIndex, usTsstIndex );
if ( ulResult != cOCT6100_ERR_OK )
return ulResult;
/* Update the new phasing TSST entry in the API list. */
ulResult = Oct6100ApiUpdatePhasingEntry( f_pApiInstance, f_pPhasingTsstOpen, usPhasingIndex, usTsstIndex );
if ( ulResult != cOCT6100_ERR_OK )
return ulResult;
return cOCT6100_ERR_OK;
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100ApiCheckPhasingParams
Description: Checks the user's phasing TSST open configuration for errors.
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_pApiInstance Pointer to API instance. This memory is used to keep the
present state of the chip and all its resources.
f_pPhasingTsstOpen Pointer to phasing TSST open configuration structure.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100ApiCheckPhasingParams
UINT32 Oct6100ApiCheckPhasingParams(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_PHASING_TSST_OPEN f_pPhasingTsstOpen )
{
UINT32 ulResult;
/* Check for errors. */
if ( f_pApiInstance->pSharedInfo->ChipConfig.usMaxPhasingTssts == 0 )
return cOCT6100_ERR_PHASING_TSST_DISABLED;
if ( f_pPhasingTsstOpen->pulPhasingTsstHndl == NULL )
return cOCT6100_ERR_PHASING_TSST_INVALID_HANDLE;
/* Check the phasing length. */
if ( f_pPhasingTsstOpen->ulPhasingLength > 240 ||
f_pPhasingTsstOpen->ulPhasingLength < 2 )
return cOCT6100_ERR_PHASING_TSST_PHASING_LENGTH;
/* Check the input TDM streams, timeslots component for errors. */
ulResult = Oct6100ApiValidateTsst( f_pApiInstance,
cOCT6100_NUMBER_TSSTS_1,
f_pPhasingTsstOpen->ulTimeslot,
f_pPhasingTsstOpen->ulStream,
cOCT6100_INPUT_TSST );
if ( ulResult != cOCT6100_ERR_OK )
{
if ( ulResult == cOCT6100_ERR_TSST_TIMESLOT )
{
return cOCT6100_ERR_PHASING_TSST_TIMESLOT;
}
else if ( ulResult == cOCT6100_ERR_TSST_STREAM )
{
return cOCT6100_ERR_PHASING_TSST_STREAM;
}
else
{
return ulResult;
}
}
return cOCT6100_ERR_OK;
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100ApiReservePhasingResources
Description: Reserves all resources needed for the new phasing TSST.
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_pApiInstance Pointer to API instance. This memory is used to keep the
present state of the chip and all its resources.
f_pPhasingTsstOpen Pointer to phasing TSST configuration structure.
f_pusPhasingIndex Allocated entry in Phasing TSST API list.
f_pusTsstIndex TSST memory index of the counter.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100ApiReservePhasingResources
UINT32 Oct6100ApiReservePhasingResources(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_PHASING_TSST_OPEN f_pPhasingTsstOpen,
OUT PUINT16 f_pusPhasingIndex,
OUT PUINT16 f_pusTsstIndex )
{
tPOCT6100_SHARED_INFO pSharedInfo;
UINT32 ulResult;
UINT32 ulTempVar;
/* Obtain local pointer to shared portion of instance. */
pSharedInfo = f_pApiInstance->pSharedInfo;
/* Reserve an entry in the phasing TSST list. */
ulResult = Oct6100ApiReservePhasingEntry( f_pApiInstance,
f_pusPhasingIndex );
if ( ulResult == cOCT6100_ERR_OK )
{
/* Reserve the input TSST entry. */
ulResult = Oct6100ApiReserveTsst( f_pApiInstance,
f_pPhasingTsstOpen->ulTimeslot,
f_pPhasingTsstOpen->ulStream,
cOCT6100_NUMBER_TSSTS_1,
cOCT6100_INPUT_TSST,
f_pusTsstIndex,
NULL );
if ( ulResult != cOCT6100_ERR_OK )
{
/* Release the previously reserved entries. */
ulTempVar = Oct6100ApiReleasePhasingEntry( f_pApiInstance, *f_pusPhasingIndex );
if ( ulTempVar != cOCT6100_ERR_OK )
return ulTempVar;
return ulResult;
}
}
else
{
return ulResult;
}
return cOCT6100_ERR_OK;
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100ApiWritePhasingStructs
Description: Performs all the required structure writes to configure the
new phasing TSST.
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_pApiInstance Pointer to API instance. This memory is used to keep the
present state of the chip and all its resources.
f_pPhasingTsstOpen Pointer to phasing TSST configuration structure.
f_usPhasingIndex Allocated entry in phasing TSST API list.
f_usTsstIndex TSST memory index of the counter.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100ApiWritePhasingStructs
UINT32 Oct6100ApiWritePhasingStructs(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_PHASING_TSST_OPEN f_pPhasingTsstOpen,
IN UINT16 f_usPhasingIndex,
IN UINT16 f_usTsstIndex )
{
tPOCT6100_SHARED_INFO pSharedInfo;
tOCT6100_WRITE_PARAMS WriteParams;
UINT32 ulPhasingTsstChariotMemIndex;
UINT32 ulResult;
/* Obtain local pointer to shared portion of instance. */
pSharedInfo = f_pApiInstance->pSharedInfo;
WriteParams.pProcessContext = f_pApiInstance->pProcessContext;
WriteParams.ulUserChipId = pSharedInfo->ChipConfig.ulUserChipId;
/*------------------------------------------------------------------------------*/
/* Configure the TSST control memory of the phasing TSST. */
/* Find the asociated entry in the chariot memory for the phasing TSST. */
ulPhasingTsstChariotMemIndex = cOCT6100_TSST_CONTROL_PHASING_TSST_BASE_ENTRY + f_usPhasingIndex;
WriteParams.ulWriteAddress = cOCT6100_TSST_CONTROL_MEM_BASE + ( f_usTsstIndex * cOCT6100_TSST_CONTROL_MEM_ENTRY_SIZE );
WriteParams.usWriteData = cOCT6100_TSST_CONTROL_MEM_INPUT_TSST;
WriteParams.usWriteData |= ulPhasingTsstChariotMemIndex & cOCT6100_TSST_CONTROL_MEM_TSI_MEM_MASK;
mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult );
if ( ulResult != cOCT6100_ERR_OK )
return ulResult;
/*------------------------------------------------------------------------------*/
/*------------------------------------------------------------------------------*/
/* Write the phasing length of the TSST in the ADPCM / MIXER memory. */
WriteParams.ulWriteAddress = cOCT6100_CONVERSION_CONTROL_PHASE_SIZE_BASE_ADD + ( f_usPhasingIndex * 2 );
WriteParams.usWriteData = (UINT16)( f_pPhasingTsstOpen->ulPhasingLength );
mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult );
if ( ulResult != cOCT6100_ERR_OK )
return ulResult;
/*------------------------------------------------------------------------------*/
return cOCT6100_ERR_OK;
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100ApiUpdatePhasingEntry
Description: Updates the new phasing TSST in the API phasing TSST list.
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_pApiInstance Pointer to API instance. This memory is used to keep
the present state of the chip and all its resources.
f_pPhasingTsstOpen Pointer to phasing TSST open structure.
f_usPhasingIndex Allocated entry in phasing TSST API list.
f_usTsstIndex TSST memory index of the counter.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100ApiUpdatePhasingEntry
UINT32 Oct6100ApiUpdatePhasingEntry(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN OUT tPOCT6100_PHASING_TSST_OPEN f_pPhasingTsstOpen,
IN UINT16 f_usPhasingIndex,
IN UINT16 f_usTsstIndex )
{
tPOCT6100_API_PHASING_TSST pPhasingTsstEntry;
/*================================================================================*/
/* Obtain a pointer to the new buffer's list entry. */
mOCT6100_GET_PHASING_TSST_ENTRY_PNT( f_pApiInstance->pSharedInfo, pPhasingTsstEntry, f_usPhasingIndex )
/* Copy the phasing TSST's configuration and allocated resources. */
pPhasingTsstEntry->usTimeslot = (UINT16)( f_pPhasingTsstOpen->ulTimeslot & 0xFFFF );
pPhasingTsstEntry->usStream = (UINT16)( f_pPhasingTsstOpen->ulStream & 0xFFFF );
pPhasingTsstEntry->usPhasingLength = (UINT16)( f_pPhasingTsstOpen->ulPhasingLength & 0xFFFF );
/* Store hardware related information. */
pPhasingTsstEntry->usPhasingTsstIndex = f_usTsstIndex;
/* Form handle returned to user. */
*f_pPhasingTsstOpen->pulPhasingTsstHndl = cOCT6100_HNDL_TAG_PHASING_TSST | (pPhasingTsstEntry->byEntryOpenCnt << cOCT6100_ENTRY_OPEN_CNT_SHIFT) | f_usPhasingIndex;
pPhasingTsstEntry->usDependencyCnt = 0; /* Nobody is using the phasing TSST.*/
/* Finally, mark the phasing TSST as open. */
pPhasingTsstEntry->fReserved = TRUE;
/* Increment the number of phasing TSSTs opened. */
f_pApiInstance->pSharedInfo->ChipStats.usNumberPhasingTssts++;
/*================================================================================*/
return cOCT6100_ERR_OK;
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100PhasingTsstCloseSer
Description: Closes a phasing TSST.
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_pApiInstance Pointer to API instance. This memory is used to keep the
present state of the chip and all its resources.
f_pPhasingTsstClose Pointer to phasing TSST close structure.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100PhasingTsstCloseSer
UINT32 Oct6100PhasingTsstCloseSer(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN OUT tPOCT6100_PHASING_TSST_CLOSE f_pPhasingTsstClose )
{
UINT16 usPhasingIndex;
UINT16 usTsstIndex;
UINT32 ulResult;
/* Verify that all the parameters given match the state of the API. */
ulResult = Oct6100ApiAssertPhasingParams( f_pApiInstance, f_pPhasingTsstClose, &usPhasingIndex, &usTsstIndex );
if ( ulResult != cOCT6100_ERR_OK )
return ulResult;
/* Release all resources associated to the phasing TSST. */
ulResult = Oct6100ApiInvalidatePhasingStructs( f_pApiInstance, usTsstIndex );
if ( ulResult != cOCT6100_ERR_OK )
return ulResult;
/* Release all resources associated to the phasing TSST. */
ulResult = Oct6100ApiReleasePhasingResources( f_pApiInstance, usPhasingIndex );
if ( ulResult != cOCT6100_ERR_OK )
return ulResult;
f_pPhasingTsstClose->ulPhasingTsstHndl = cOCT6100_INVALID_VALUE;
return cOCT6100_ERR_OK;
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100ApiAssertPhasingParams
Description: Validate the handle given by the user and verify the state of
the phasing TSST about to be closed. Also returns all
required information to deactivate the phasing TSST.
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_pApiInstance Pointer to API instance. This memory is used to keep the
present state of the chip and all its resources.
f_pPhasingTsstClose Pointer to phasing TSST close structure.
f_pusPhasingIndex Index of the phasing TSST structure in the API list.
f_pusTsstIndex Index of the entry in the TSST control memory.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100ApiAssertPhasingParams
UINT32 Oct6100ApiAssertPhasingParams(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_PHASING_TSST_CLOSE f_pPhasingTsstClose,
OUT PUINT16 f_pusPhasingIndex,
OUT PUINT16 f_pusTsstIndex )
{
tPOCT6100_SHARED_INFO pSharedInfo;
tPOCT6100_API_PHASING_TSST pPhasingEntry;
UINT32 ulEntryOpenCnt;
/* Get local pointer(s). */
pSharedInfo = f_pApiInstance->pSharedInfo;
/* Check the provided handle. */
if ( (f_pPhasingTsstClose->ulPhasingTsstHndl & cOCT6100_HNDL_TAG_MASK) != cOCT6100_HNDL_TAG_PHASING_TSST )
return cOCT6100_ERR_PHASING_TSST_INVALID_HANDLE;
*f_pusPhasingIndex = (UINT16)( f_pPhasingTsstClose->ulPhasingTsstHndl & cOCT6100_HNDL_INDEX_MASK );
if ( *f_pusPhasingIndex >= pSharedInfo->ChipConfig.usMaxPhasingTssts )
return cOCT6100_ERR_PHASING_TSST_INVALID_HANDLE;
/*=======================================================================*/
/* Get a pointer to the phasing TSST's list entry. */
mOCT6100_GET_PHASING_TSST_ENTRY_PNT( pSharedInfo, pPhasingEntry, *f_pusPhasingIndex )
/* Extract the entry open count from the provided handle. */
ulEntryOpenCnt = (f_pPhasingTsstClose->ulPhasingTsstHndl >> cOCT6100_ENTRY_OPEN_CNT_SHIFT) & cOCT6100_ENTRY_OPEN_CNT_MASK;
/* Check for errors. */
if ( pPhasingEntry->fReserved != TRUE )
return cOCT6100_ERR_PHASING_TSST_NOT_OPEN;
if ( pPhasingEntry->usDependencyCnt != 0 )
return cOCT6100_ERR_PHASING_TSST_ACTIVE_DEPENDENCIES;
if ( ulEntryOpenCnt != pPhasingEntry->byEntryOpenCnt )
return cOCT6100_ERR_PHASING_TSST_INVALID_HANDLE;
/* Return info needed to close the phasing TSST and release all resources. */
*f_pusTsstIndex = pPhasingEntry->usPhasingTsstIndex;
/*=======================================================================*/
return cOCT6100_ERR_OK;
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100ApiInvalidatePhasingStructs
Description: Closes a phasing TSST.
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_pApiInstance Pointer to API instance. This memory is used to keep the
present state of the chip and all its resources.
f_usTsstIndex Index of the entry in the TSST control memory.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100ApiInvalidatePhasingStructs
UINT32 Oct6100ApiInvalidatePhasingStructs(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT16 f_usTsstIndex )
{
tPOCT6100_SHARED_INFO pSharedInfo;
tOCT6100_WRITE_PARAMS WriteParams;
UINT32 ulResult;
/* Obtain local pointer to shared portion of instance. */
pSharedInfo = f_pApiInstance->pSharedInfo;
WriteParams.pProcessContext = f_pApiInstance->pProcessContext;
WriteParams.ulUserChipId = pSharedInfo->ChipConfig.ulUserChipId;
/*------------------------------------------------------------------------------*/
/* Deactivate the TSST control memory. */
/* Set the input TSST control entry to unused. */
WriteParams.ulWriteAddress = cOCT6100_TSST_CONTROL_MEM_BASE + ( f_usTsstIndex * cOCT6100_TSST_CONTROL_MEM_ENTRY_SIZE );
WriteParams.usWriteData = 0x0000;
mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult );
if ( ulResult != cOCT6100_ERR_OK )
return ulResult;
/*------------------------------------------------------------------------------*/
return cOCT6100_ERR_OK;
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100ApiReleasePhasingResources
Description: Release and clear the API entry associated to the phasing TSST.
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_pApiInstance Pointer to API instance. This memory is used to keep the
present state of the chip and all its resources.
f_usPhasingIndex Index of the phasing TSST in the API list.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100ApiReleasePhasingResources
UINT32 Oct6100ApiReleasePhasingResources(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT16 f_usPhasingIndex )
{
tPOCT6100_SHARED_INFO pSharedInfo;
tPOCT6100_API_PHASING_TSST pPhasingEntry;
UINT32 ulResult;
/* Obtain local pointer to shared portion of instance. */
pSharedInfo = f_pApiInstance->pSharedInfo;
mOCT6100_GET_PHASING_TSST_ENTRY_PNT( pSharedInfo, pPhasingEntry, f_usPhasingIndex );
/* Release the entry in the phasing TSST list. */
ulResult = Oct6100ApiReleasePhasingEntry( f_pApiInstance, f_usPhasingIndex );
if ( ulResult == cOCT6100_ERR_OK )
{
/* Release the entry. */
ulResult = Oct6100ApiReleaseTsst( f_pApiInstance,
pPhasingEntry->usTimeslot,
pPhasingEntry->usStream,
cOCT6100_NUMBER_TSSTS_1,
cOCT6100_INPUT_TSST,
cOCT6100_INVALID_INDEX ); /* Release the TSST entry */
if ( ulResult != cOCT6100_ERR_OK )
{
return cOCT6100_ERR_FATAL;
}
}
else
{
return ulResult;
}
/*=============================================================*/
/* Update the phasing TSST's list entry. */
/* Mark the entry as closed. */
pPhasingEntry->fReserved = FALSE;
pPhasingEntry->byEntryOpenCnt++;
/* Decrement the number of phasing TSSTs opened. */
f_pApiInstance->pSharedInfo->ChipStats.usNumberPhasingTssts--;
/*=============================================================*/
return cOCT6100_ERR_OK;
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100ApiReservePhasingEntry
Description: Reserves a phasing TSST API entry.
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_pApiInstance Pointer to API instance. This memory is used to keep
the present state of the chip and all its resources.
f_pusPhasingIndex Resulting index reserved in the phasing TSST list.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100ApiReservePhasingEntry
UINT32 Oct6100ApiReservePhasingEntry(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
OUT PUINT16 f_pusPhasingIndex )
{
tPOCT6100_SHARED_INFO pSharedInfo;
PVOID pPhasingAlloc;
UINT32 ulResult;
UINT32 ulPhasingIndex;
/* Get local pointer to shared portion of instance. */
pSharedInfo = f_pApiInstance->pSharedInfo;
mOCT6100_GET_PHASING_TSST_ALLOC_PNT( pSharedInfo, pPhasingAlloc )
ulResult = OctapiLlmAllocAlloc( pPhasingAlloc, &ulPhasingIndex );
if ( ulResult != cOCT6100_ERR_OK )
{
if ( ulResult == OCTAPI_LLM_NO_STRUCTURES_LEFT )
return cOCT6100_ERR_PHASING_TSST_ALL_ENTRIES_ARE_OPENED;
else
return cOCT6100_ERR_FATAL_3A;
}
*f_pusPhasingIndex = (UINT16)( ulPhasingIndex & 0xFFFF );
return cOCT6100_ERR_OK;
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100ApiReleasePhasingEntry
Description: Releases the specified phasing TSST API entry.
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_pApiInstance Pointer to API instance. This memory is used to keep
the present state of the chip and all its resources.
f_usPhasingIndex Index reserved in the phasing TSST API list.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100ApiReleasePhasingEntry
UINT32 Oct6100ApiReleasePhasingEntry(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT16 f_usPhasingIndex )
{
tPOCT6100_SHARED_INFO pSharedInfo;
PVOID pPhasingAlloc;
UINT32 ulResult;
/* Get local pointer to shared portion of instance. */
pSharedInfo = f_pApiInstance->pSharedInfo;
mOCT6100_GET_PHASING_TSST_ALLOC_PNT( pSharedInfo, pPhasingAlloc )
ulResult = OctapiLlmAllocDealloc( pPhasingAlloc, f_usPhasingIndex );
if ( ulResult != cOCT6100_ERR_OK )
{
return cOCT6100_ERR_FATAL_3B;
}
return cOCT6100_ERR_OK;
}
#endif

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,575 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_tsst.c
Copyright (c) 2001-2007 Octasic Inc.
Description:
This file contains the functions used to manage the allocation of TSST
control structures in internal memory.
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-PR49 $
$Octasic_Revision: 39 $
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
/***************************** INCLUDE FILES *******************************/
#include "octdef.h"
#include "oct6100api/oct6100_defines.h"
#include "oct6100api/oct6100_errors.h"
#include "apilib/octapi_llman.h"
#include "oct6100api/oct6100_apiud.h"
#include "oct6100api/oct6100_tlv_inst.h"
#include "oct6100api/oct6100_chip_open_inst.h"
#include "oct6100api/oct6100_chip_stats_inst.h"
#include "oct6100api/oct6100_interrupts_inst.h"
#include "oct6100api/oct6100_remote_debug_inst.h"
#include "oct6100api/oct6100_debug_inst.h"
#include "oct6100api/oct6100_api_inst.h"
#include "oct6100api/oct6100_tsst_inst.h"
#include "oct6100api/oct6100_interrupts_pub.h"
#include "oct6100api/oct6100_channel_pub.h"
#include "oct6100api/oct6100_chip_open_pub.h"
#include "oct6100_chip_open_priv.h"
#include "oct6100_tsst_priv.h"
/**************************** PRIVATE FUNCTIONS ****************************/
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100ApiGetTsstSwSizes
Description: Gets the sizes of all portions of the API instance pertinent
to the management of TSSTs.
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_pInstSizes Pointer to struct containing instance sizes.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100ApiGetTsstSwSizes
UINT32 Oct6100ApiGetTsstSwSizes(
OUT tPOCT6100_API_INSTANCE_SIZES f_pInstSizes )
{
UINT32 ulTempVar;
UINT32 ulResult;
/* Determine amount of TSST needed for TSST allocation table. */
f_pInstSizes->ulTsstAlloc = 4096 / 8;
/* Calculate the API memory required for the TSST entry list. */
f_pInstSizes->ulTsstEntryList = cOCT6100_MAX_TSSTS * sizeof( tOCT6100_API_TSST_ENTRY );
/* Calculate memory needed for TSST entry allocation. */
ulResult = OctapiLlmAllocGetSize( cOCT6100_MAX_TSSTS, &f_pInstSizes->ulTsstEntryAlloc );
if ( ulResult != cOCT6100_ERR_OK )
return cOCT6100_ERR_FATAL_4D;
mOCT6100_ROUND_MEMORY_SIZE( f_pInstSizes->ulTsstAlloc, ulTempVar );
mOCT6100_ROUND_MEMORY_SIZE( f_pInstSizes->ulTsstEntryList, ulTempVar );
mOCT6100_ROUND_MEMORY_SIZE( f_pInstSizes->ulTsstEntryAlloc, ulTempVar );
return cOCT6100_ERR_OK;
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100ApiTsstSwInit
Description: Initializes all elements of the instance structure associated
to the TSST control entries.
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_pApiInstance Pointer to API instance. This tsst is used to keep
the present state of the chip and all its resources.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100ApiTsstSwInit
UINT32 Oct6100ApiTsstSwInit(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance )
{
tPOCT6100_SHARED_INFO pSharedInfo;
tPOCT6100_API_TSST_ENTRY pTsstList;
PUINT32 pulTsstAlloc;
PVOID pTsstListAlloc;
UINT32 ulResult;
/* Get local pointer(s). */
pSharedInfo = f_pApiInstance->pSharedInfo;
/* Initialize the TSST allocation table to "all free". */
mOCT6100_GET_TSST_ALLOC_PNT( pSharedInfo, pulTsstAlloc );
Oct6100UserMemSet( pulTsstAlloc, 0x00, 512 );
/* Initialize all the TSST list entries. */
mOCT6100_GET_TSST_LIST_PNT( pSharedInfo, pTsstList );
Oct6100UserMemSet( pTsstList, 0xFF, cOCT6100_MAX_TSSTS * sizeof(tOCT6100_API_TSST_ENTRY) );
/* Initialize the allocation list to manage the TSST entries.*/
mOCT6100_GET_TSST_LIST_ALLOC_PNT( pSharedInfo, pTsstListAlloc )
ulResult = OctapiLlmAllocInit( &pTsstListAlloc, cOCT6100_MAX_TSSTS );
if ( ulResult != cOCT6100_ERR_OK )
return cOCT6100_ERR_FATAL_4E;
return cOCT6100_ERR_OK;
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100ApiValidateTsst
Description: Validates a timeslot, stream combination.
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_pApiInstance Pointer to API instance. This tsst is used to keep
the present state of the chip and all its resources.
f_ulTimeslot Timeslot component of the TDM TSST.
f_ulStream Stream component of the TDM TSST.
f_ulNumTssts Number of TSST required.
f_ulDirection Direction of the TSST (Input or Output).
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100ApiValidateTsst
UINT32 Oct6100ApiValidateTsst(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT32 f_ulNumTssts,
IN UINT32 f_ulTimeslot,
IN UINT32 f_ulStream,
IN UINT32 f_ulDirection )
{
tPOCT6100_SHARED_INFO pSharedInfo;
tPOCT6100_API_CHIP_CONFIG pChipConfig;
PUINT32 pulTsstAlloc;
/* Obtain local pointer to shared portion of instance. */
pSharedInfo = f_pApiInstance->pSharedInfo;
mOCT6100_GET_TSST_ALLOC_PNT( f_pApiInstance->pSharedInfo, pulTsstAlloc );
/* Obtain local pointer to chip configuration. */
pChipConfig = &pSharedInfo->ChipConfig;
/* Check the TDM streams, timeslots component for errors. */
if ( f_ulTimeslot == cOCT6100_UNASSIGNED &&
f_ulStream != cOCT6100_UNASSIGNED )
return cOCT6100_ERR_TSST_TIMESLOT;
if ( f_ulTimeslot != cOCT6100_UNASSIGNED &&
f_ulStream == cOCT6100_UNASSIGNED )
return cOCT6100_ERR_TSST_STREAM;
if ( f_ulStream >= pChipConfig->byMaxTdmStreams )
return cOCT6100_ERR_TSST_STREAM;
/* Check timeslot value based on the frequenccy of the selected stream. */
switch ( pChipConfig->aulTdmStreamFreqs[ f_ulStream / 4 ] )
{
case cOCT6100_TDM_STREAM_FREQ_2MHZ:
if ( f_ulTimeslot >= 32 )
return cOCT6100_ERR_TSST_TIMESLOT;
break;
case cOCT6100_TDM_STREAM_FREQ_4MHZ:
if ( f_ulTimeslot >= 64 )
return cOCT6100_ERR_TSST_TIMESLOT;
break;
case cOCT6100_TDM_STREAM_FREQ_8MHZ:
if ( f_ulTimeslot >= 128 )
return cOCT6100_ERR_TSST_TIMESLOT;
break;
case cOCT6100_TDM_STREAM_FREQ_16MHZ:
if ( f_ulTimeslot >= 256 )
return cOCT6100_ERR_TSST_TIMESLOT;
/* Check the stream value based on the direction. */
if ( f_ulDirection == cOCT6100_INPUT_TSST && f_ulStream >= 16 )
{
return cOCT6100_ERR_TSST_STREAM;
}
else if( f_ulDirection == cOCT6100_OUTPUT_TSST && f_ulStream < 16 )
{
return cOCT6100_ERR_TSST_STREAM;
}
break;
default:
return cOCT6100_ERR_FATAL_DC;
}
/* Stream must be odd if two TSSTs are required. */
if ( f_ulNumTssts == 2 && ( ( f_ulStream & 0x1) != 0x1 ) )
return cOCT6100_ERR_TSST_STREAM;
return cOCT6100_ERR_OK;
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100ApiReserveTsst
Description: Reserves a TSST, only one TSI entry can access a TSST at any one
time.
If the pointer f_pulTsstListIndex is set to NULL, no TSST list
entry will be reserved.
The index in TSST control memory returned is based on the frequency
of the streams where the TSST is located and on the direction of
the TSST ( input or output ).
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_pApiInstance Pointer to API instance. This tsst is used to keep
the present state of the chip and all its resources.
f_ulTimeslot Timeslot component of the TDM TSST.
f_ulNumTssts Number of TSSTs required.
f_ulStream Stream component of the TDM TSST.
f_ulDirection Whether the TSST in and input TSST or output TSST.
f_pusTsstMemIndex Index of the resulting TSST in the TSST control memory.
f_pusTsstListIndex Index in the TSST list of the current entry.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100ApiReserveTsst
UINT32 Oct6100ApiReserveTsst(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT32 f_ulTimeslot,
IN UINT32 f_ulStream,
IN UINT32 f_ulNumTsst,
IN UINT32 f_ulDirection,
OUT PUINT16 f_pusTsstMemIndex,
OUT PUINT16 f_pusTsstListIndex )
{
tPOCT6100_SHARED_INFO pSharedInfo;
PVOID pTsstListAlloc;
PUINT32 pulTsstAlloc;
UINT32 ulResult = cOCT6100_ERR_OK;
UINT32 ulStream;
UINT32 ulTimeslot;
/* Get local pointer to shared portion of API instance structure. */
pSharedInfo = f_pApiInstance->pSharedInfo;
mOCT6100_GET_TSST_ALLOC_PNT( f_pApiInstance->pSharedInfo, pulTsstAlloc );
/*==================================================================================*/
/* Now make the proper conversion to obtain the TSST value. */
/* Save the timeslot and stream value received. */
ulStream = f_ulStream;
ulTimeslot = f_ulTimeslot;
/* Set the TSST index associated to this stream, timeslot combination. */
switch ( f_pApiInstance->pSharedInfo->ChipConfig.aulTdmStreamFreqs[ f_ulStream / 4 ] )
{
case cOCT6100_TDM_STREAM_FREQ_16MHZ:
if ( f_ulDirection == cOCT6100_INPUT_TSST )
{
ulStream = f_ulStream + ( f_ulTimeslot % 2 ) * 16;
ulTimeslot = f_ulTimeslot / 2;
}
else /* f_ulDirection == cOCT6100_OUTPUT_TSST */
{
ulStream = ( f_ulStream - 16 ) + ( f_ulTimeslot % 2 ) * 16;
if ( f_ulStream < 28 && ((f_ulTimeslot % 2) == 1) )
{
ulTimeslot = ((f_ulTimeslot / 2) + 4) % 128;
}
else
{
ulTimeslot = f_ulTimeslot / 2 ;
}
}
*f_pusTsstMemIndex = (UINT16)( ulTimeslot * 32 + ulStream );
break;
case cOCT6100_TDM_STREAM_FREQ_8MHZ:
*f_pusTsstMemIndex = (UINT16)( ulTimeslot * 32 + ulStream );
break;
case cOCT6100_TDM_STREAM_FREQ_4MHZ:
*f_pusTsstMemIndex = (UINT16)( ulTimeslot * 32 * 2 );
if ( f_ulDirection == cOCT6100_OUTPUT_TSST )
{
*f_pusTsstMemIndex = (UINT16)( *f_pusTsstMemIndex + ulStream );
}
else /* if ( f_ulDirection == cOCT6100_INPUT_TSST ) */
{
*f_pusTsstMemIndex = (UINT16)( ( 1 * 32 + ulStream ) + *f_pusTsstMemIndex );
}
break;
case cOCT6100_TDM_STREAM_FREQ_2MHZ:
*f_pusTsstMemIndex = (UINT16)( ulTimeslot * 32 * 4 );
if ( f_ulDirection == cOCT6100_OUTPUT_TSST )
{
*f_pusTsstMemIndex = (UINT16)( ulStream + *f_pusTsstMemIndex );
}
else /* if ( f_ulDirection == cOCT6100_INPUT_TSST ) */
{
*f_pusTsstMemIndex = (UINT16)( ( 3 * 32 + ulStream ) + *f_pusTsstMemIndex );
}
break;
default:
ulResult = cOCT6100_ERR_FATAL_8B;
}
/*======================================================================*/
/*======================================================================*/
/* First reserve the TSST. */
/* Get local pointer to TSST's entry in allocation table. */
switch ( pSharedInfo->ChipConfig.aulTdmStreamFreqs[ ulStream / 4 ] )
{
case cOCT6100_TDM_STREAM_FREQ_2MHZ:
ulTimeslot *= 4;
break;
case cOCT6100_TDM_STREAM_FREQ_4MHZ:
ulTimeslot *= 2;
break;
case cOCT6100_TDM_STREAM_FREQ_8MHZ:
ulTimeslot *= 1;
break;
case cOCT6100_TDM_STREAM_FREQ_16MHZ:
ulTimeslot *= 1;
break;
default:
return cOCT6100_ERR_FATAL_DD;
}
/* Check if entry is already reserved. */
if ( ((pulTsstAlloc[ ulTimeslot ] >> ulStream) & 0x1) == 0x1 )
return cOCT6100_ERR_TSST_TSST_RESERVED;
/* Check and reserve the associated TSST if required. */
if ( f_ulNumTsst == 2 )
{
/* Check if entry is already reserved. */
if ( ((pulTsstAlloc[ ulTimeslot ] >> (ulStream - 1) ) & 0x1) == 0x1 )
return cOCT6100_ERR_TSST_ASSOCIATED_TSST_RESERVED;
/* The entry is free, it won't anymore. */
pulTsstAlloc[ ulTimeslot ] |= (0x1 << (ulStream - 1));
}
/* The entry is free, it won't anymore.*/
pulTsstAlloc[ ulTimeslot ] |= (0x1 << ulStream);
/*======================================================================*/
/*======================================================================*/
/* Now reserve a TSST entry if requested. */
if ( f_pusTsstListIndex != NULL && ulResult == cOCT6100_ERR_OK )
{
UINT32 ulTsstListIndex;
/* Reserve a TSST entry in the API TSST list. */
mOCT6100_GET_TSST_LIST_ALLOC_PNT( f_pApiInstance->pSharedInfo, pTsstListAlloc );
ulResult = OctapiLlmAllocAlloc( pTsstListAlloc, &ulTsstListIndex );
if ( ulResult != cOCT6100_ERR_OK )
{
if ( ulResult == OCTAPI_LLM_NO_STRUCTURES_LEFT )
ulResult = cOCT6100_ERR_TSST_ALL_TSSTS_ARE_OPENED;
else
ulResult = cOCT6100_ERR_FATAL_52;
}
*f_pusTsstListIndex = (UINT16)( ulTsstListIndex & 0xFFFF );
}
/*======================================================================*/
/*======================================================================*/
/* Check the result of the TSST list reservation. */
if ( ulResult != cOCT6100_ERR_OK )
{
/* Release the previously reserved TSST. */
if ( f_ulNumTsst == 2 )
{
/* Clear the entry. */
pulTsstAlloc[ ulTimeslot ] &= ~(0x1 << (ulStream - 1) );
}
/* Clear the entry. */
pulTsstAlloc[ ulTimeslot ] &= ~(0x1 << ulStream);
}
/*======================================================================*/
return ulResult;
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100ApiReleaseTsst
Description: Releases a TSST.
If f_usTsstListIndex is set to cOCT6100_INVALID_INDEX, the API
will assume that no TSST list entry was reserved for this TSST.
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_pApiInstance Pointer to API instance. This tsst is used to keep
the present state of the chip and all its resources.
f_ulNumTssts Number of TSSTs to be released.
f_ulStream Stream component of the TDM TSST.
f_ulTimeslot Timeslot component of the TDM TSST.
f_ulDirection Whether the TSST is an input TSST or output TSST.
f_usTsstListIndex Index in the TSST list of the current entry.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100ApiReleaseTsst
UINT32 Oct6100ApiReleaseTsst(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT32 f_ulTimeslot,
IN UINT32 f_ulStream,
IN UINT32 f_ulNumTsst,
IN UINT32 f_ulDirection,
IN UINT16 f_usTsstListIndex)
{
tPOCT6100_SHARED_INFO pSharedInfo;
PUINT32 pulTsstAlloc;
PVOID pTsstListAlloc;
UINT32 ulResult;
UINT32 ulStream;
UINT32 ulTimeslot;
/* Get local pointer to shared portion of API instance structure. */
pSharedInfo = f_pApiInstance->pSharedInfo;
if ( f_usTsstListIndex != cOCT6100_INVALID_INDEX )
{
mOCT6100_GET_TSST_LIST_ALLOC_PNT( pSharedInfo, pTsstListAlloc )
ulResult = OctapiLlmAllocDealloc( pTsstListAlloc, f_usTsstListIndex );
if ( ulResult != cOCT6100_ERR_OK )
{
return cOCT6100_ERR_FATAL_53;
}
}
mOCT6100_GET_TSST_ALLOC_PNT( f_pApiInstance->pSharedInfo, pulTsstAlloc );
/*==================================================================================*/
/* Now make the proper conversion to obtain the TSST value. */
/* Save the timeslot and stream value received. */
ulStream = f_ulStream;
ulTimeslot = f_ulTimeslot;
/* Set the TSST index associated to this stream, timeslot combination. */
if ( pSharedInfo->ChipConfig.aulTdmStreamFreqs[ f_ulStream / 4 ] == cOCT6100_TDM_STREAM_FREQ_16MHZ )
{
if ( f_ulDirection == cOCT6100_INPUT_TSST )
{
ulStream = f_ulStream + ( f_ulTimeslot % 2 ) * 16;
ulTimeslot = f_ulTimeslot / 2;
}
else /* f_ulDirection == cOCT6100_OUTPUT_TSST */
{
ulStream = ( f_ulStream - 16 ) + ( f_ulTimeslot % 2 ) * 16;
if ( f_ulStream < 28 && ((f_ulTimeslot % 2) == 1) )
{
ulTimeslot = ((f_ulTimeslot / 2) + 4) % 128;
}
else
{
ulTimeslot = f_ulTimeslot / 2 ;
}
}
}
/* Get local pointer to TSST's entry in allocation table. */
switch ( pSharedInfo->ChipConfig.aulTdmStreamFreqs[ ulStream / 4 ] )
{
case cOCT6100_TDM_STREAM_FREQ_2MHZ:
ulTimeslot *= 4;
break;
case cOCT6100_TDM_STREAM_FREQ_4MHZ:
ulTimeslot *= 2;
break;
case cOCT6100_TDM_STREAM_FREQ_8MHZ:
ulTimeslot *= 1;
break;
case cOCT6100_TDM_STREAM_FREQ_16MHZ:
ulTimeslot *= 1;
break;
default:
return cOCT6100_ERR_FATAL_DE;
}
/* Check if entry is actualy reserved. */
if ( ((pulTsstAlloc[ ulTimeslot ] >> ulStream) & 0x1) != 0x1 )
return cOCT6100_ERR_FATAL_55;
/*==================================================================================*/
/* Clear the entry. */
pulTsstAlloc[ ulTimeslot ] &= ~(0x1 << ulStream);
/* Check and release the associated TSST if required. */
if ( f_ulNumTsst == 2 )
{
/* Check if entry is actualy reserved. */
if ( ((pulTsstAlloc[ ulTimeslot ] >> ( ulStream - 1)) & 0x1) != 0x1 )
return cOCT6100_ERR_FATAL_54;
/* Clear the entry. */
pulTsstAlloc[ ulTimeslot ] &= ~(0x1 << (ulStream - 1));
}
return cOCT6100_ERR_OK;
}
#endif

View File

@ -0,0 +1,508 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_user.c
Copyright (c) 2001-2007 Octasic Inc.
Description:
This file contains the functions provided 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-PR49 $
$Octasic_Revision: 28 $
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
/***************************** INCLUDE FILES *******************************/
#include "oct6100api/oct6100_apiud.h"
#include "oct6100api/oct6100_errors.h"
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100UserGetTime
Description: Returns the system time in us.
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_pTime Pointer to structure in which the time is returned.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100UserGetTime
UINT32 Oct6100UserGetTime(
IN OUT tPOCT6100_GET_TIME f_pTime )
{
return cOCT6100_ERR_OK;
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100UserMemSet
Description: Sets f_ulLength bytes pointed to by f_pAddress to f_ulPattern.
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_pAddress Address in host memory where data should be set.
f_ulPattern Pattern to apply at the address. This value will never
exceed 0xFF.
f_ulLength Length in bytes to set.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100UserMemSet
UINT32 Oct6100UserMemSet(
IN PVOID f_pAddress,
IN UINT32 f_ulPattern,
IN UINT32 f_ulLength )
{
return cOCT6100_ERR_OK;
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100UserMemCopy
Description: Copy f_ulLength bytes from f_pSource to f_pDestination.
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_pDestination Host data destination address.
f_pSource Host data source address.
f_ulLength Length in bytes to copy.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100UserMemCopy
UINT32 Oct6100UserMemCopy(
IN PVOID f_pDestination,
IN const void *f_pSource,
IN UINT32 f_ulLength )
{
return cOCT6100_ERR_OK;
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100UserCreateSerializeObject
Description: Creates a serialization object. The serialization object is
seized via the Oct6100UserSeizeSerializeObject function.
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_pCreate Pointer to structure in which the serialization object's
handle is returned.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100UserCreateSerializeObject
UINT32 Oct6100UserCreateSerializeObject(
IN OUT tPOCT6100_CREATE_SERIALIZE_OBJECT f_pCreate )
{
return cOCT6100_ERR_OK;
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100UserDestroySerializeObject
Description: Destroys the indicated serialization object.
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_pDestroy Pointer to structure containing the handle of the
serialization object.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100UserDestroySerializeObject
UINT32 Oct6100UserDestroySerializeObject(
IN tPOCT6100_DESTROY_SERIALIZE_OBJECT f_pDestroy )
{
return cOCT6100_ERR_OK;
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100UserSeizeSerializeObject
Description: Seizes the indicated serialization object.
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_pSeize Pointer to structure containing the handle of the
serialization object.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100UserSeizeSerializeObject
UINT32 Oct6100UserSeizeSerializeObject(
IN tPOCT6100_SEIZE_SERIALIZE_OBJECT f_pSeize )
{
return cOCT6100_ERR_OK;
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100UserReleaseSerializeObject
Description: Releases the indicated serialization object.
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_pRelease Pointer to structure containing the handle of the
serialization object.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100UserReleaseSerializeObject
UINT32 Oct6100UserReleaseSerializeObject(
IN tPOCT6100_RELEASE_SERIALIZE_OBJECT f_pRelease )
{
return cOCT6100_ERR_OK;
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100UserDriverWriteApi
Description: Performs a write access to the chip. This function is
accessible only from the API code entity (i.e. not from the
APIMI code entity).
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_pWriteParams Pointer to structure containing the Params to the
write function.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100UserDriverWriteApi
UINT32 Oct6100UserDriverWriteApi(
IN tPOCT6100_WRITE_PARAMS f_pWriteParams )
{
return cOCT6100_ERR_OK;
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100UserDriverWriteOs
Description: Performs a write access to the chip. This function is
accessible only from the APIMI code entity (i.e. not from the
API code entity).
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_pWriteParams Pointer to structure containing the Params to the
write function.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100UserDriverWriteOs
UINT32 Oct6100UserDriverWriteOs(
IN tPOCT6100_WRITE_PARAMS f_pWriteParams )
{
return cOCT6100_ERR_OK;
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100UserDriverWriteSmearApi
Description: Performs a series of write accesses to the chip. The same data
word is written to a series of addresses. The writes begin at
the start address, and the address is incremented by the
indicated amount for each subsequent write. This function is
accessible only from the API code entity (i.e. not from the
APIMI code entity).
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_pSmearParams Pointer to structure containing the parameters to the
write smear function.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100UserDriverWriteSmearApi
UINT32 Oct6100UserDriverWriteSmearApi(
IN tPOCT6100_WRITE_SMEAR_PARAMS f_pSmearParams )
{
return cOCT6100_ERR_OK;
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100UserDriverWriteSmearOs
Description: Performs a series of write accesses to the chip. The same data
word is written to a series of addresses. The writes begin at
the start address, and the address is incremented by the
indicated amount for each subsequent write. This function is
accessible only from the APIMI code entity (i.e. not from the
API code entity).
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_pSmearParams Pointer to structure containing the parameters to the
write smear function.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100UserDriverWriteSmearOs
UINT32 Oct6100UserDriverWriteSmearOs(
IN tPOCT6100_WRITE_SMEAR_PARAMS f_pSmearParams )
{
return cOCT6100_ERR_OK;
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100UserDriverWriteBurstApi
Description: Performs a series of write accesses to the chip. An array of
data words is written to a series of consecutive addresses.
The writes begin at the start address with element 0 of the
provided array as the data word. The address is incremented by
two for each subsequent write. This function is accessible only
from the API code entity (i.e. not from the APIMI code entity).
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_pBurstParams Pointer to structure containing the parameters to the
write burst function.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100UserDriverWriteBurstApi
UINT32 Oct6100UserDriverWriteBurstApi(
IN tPOCT6100_WRITE_BURST_PARAMS f_pBurstParams )
{
return cOCT6100_ERR_OK;
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100UserDriverWriteBurstOs
Description: Performs a series of write accesses to the chip. An array of
data words is written to a series of consecutive addresses.
The writes begin at the start address with element 0 of the
provided array as the data word. The address is incremented by
two for each subsequent write. This function is accessible only
from the API code entity (i.e. not from the APIMI code entity).
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_pBurstParams Pointer to structure containing the parameters to the
write burst function.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100UserDriverWriteBurstOs
UINT32 Oct6100UserDriverWriteBurstOs(
IN tPOCT6100_WRITE_BURST_PARAMS f_pBurstParams )
{
return cOCT6100_ERR_OK;
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100UserDriverReadApi
Description: Performs a read access to the chip. This function is accessible
only from the API code entity (i.e. not from the APIMI code
entity).
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_pReadParams Pointer to structure containing the parameters to the
read function.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100UserDriverReadApi
UINT32 Oct6100UserDriverReadApi(
IN OUT tPOCT6100_READ_PARAMS f_pReadParams )
{
return cOCT6100_ERR_OK;
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100UserDriverReadOs
Description: Performs a read access to the chip. This function is accessible
only from the APIMI code entity (i.e. not from the API code
entity).
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_pReadParams Pointer to structure containing the parameters to the
read function.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100UserDriverReadOs
UINT32 Oct6100UserDriverReadOs(
IN OUT tPOCT6100_READ_PARAMS f_pReadParams )
{
return cOCT6100_ERR_OK;
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100UserDriverReadBurstApi
Description: Performs a burst of read accesses to the chip. The first read
is performed at the start address, and the address is
incremented by two for each subsequent read. The data is
retunred in an array provided by the user. This function is
accessible only from the API code entity (i.e. not from the
APIMI code entity).
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_pBurstParams Pointer to structure containing the parameters to the
read burst function.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100UserDriverReadBurstApi
UINT32 Oct6100UserDriverReadBurstApi(
IN OUT tPOCT6100_READ_BURST_PARAMS f_pBurstParams )
{
return cOCT6100_ERR_OK;
}
#endif
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100UserDriverReadBurstOs
Description: Performs a burst of read accesses to the chip. The first read
is performed at the start address, and the address is
incremented by two for each subsequent read. The data is
retunred in an array provided by the user. This function is
accessible only from the APIMI code entity (i.e. not from the
API code entity).
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_pBurstParams Pointer to structure containing the parameters to the
read burst function.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#if !SKIP_Oct6100UserDriverReadBurstOs
UINT32 Oct6100UserDriverReadBurstOs(
IN OUT tPOCT6100_READ_BURST_PARAMS f_pBurstParams )
{
return cOCT6100_ERR_OK;
}
#endif

View File

@ -0,0 +1,116 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_mask_interrupts.c
Copyright (c) 2001-2007 Octasic Inc.
Description:
This file contains the mask interrupts function.
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-PR49 $
$Octasic_Revision: 8 $
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
/***************************** INCLUDE FILES *******************************/
#include "oct6100api/oct6100_apimi.h"
#include "oct6100api/oct6100_apiud.h"
#include "oct6100api/oct6100_errors.h"
#include "oct6100api/oct6100_defines.h"
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
Function: Oct6100InterruptMask
Description: 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
signaled interrupt is treated). Which chip is to have its
interrupts masked is determined by the mask structure,
f_pInterruptMask.
-------------------------------------------------------------------------------
| Argument | Description
-------------------------------------------------------------------------------
f_pInterruptMask Pointer to the interrupt masking structure.
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
UINT32 Oct6100InterruptMaskDef(
OUT tPOCT6100_INTERRUPT_MASK f_pInterruptMask )
{
f_pInterruptMask->ulUserChipIndex = cOCT6100_INVALID_VALUE;
f_pInterruptMask->pProcessContext = NULL;
return cOCT6100_ERR_OK;
}
UINT32 Oct6100InterruptMask(
IN tPOCT6100_INTERRUPT_MASK f_pInterruptMask )
{
tOCT6100_WRITE_PARAMS WriteParams;
tOCT6100_READ_PARAMS ReadParams;
UINT32 result;
UINT16 usReadData;
/* Determine if the chip's interrupt pin is active.*/
ReadParams.ulReadAddress = 0x210;
ReadParams.pusReadData = &usReadData;
ReadParams.pProcessContext = f_pInterruptMask->pProcessContext;
ReadParams.ulUserChipId = f_pInterruptMask->ulUserChipIndex;
result = Oct6100UserDriverReadOs( &ReadParams );
if ( result != cOCT6100_ERR_OK )
return cOCT6100_ERR_INTRPTS_RW_ERROR;
if ( (usReadData & 0xFFFF) != 0 )
{
/* Chip's interrupt pin is active, so mask interrupt pin. */
ReadParams.ulReadAddress = 0x214;
result = Oct6100UserDriverReadOs( &ReadParams );
if ( result != cOCT6100_ERR_OK )
return cOCT6100_ERR_INTRPTS_RW_ERROR;
/* Determine if the chip's interrupt pin is active. */
WriteParams.pProcessContext = f_pInterruptMask->pProcessContext;
WriteParams.ulUserChipId = f_pInterruptMask->ulUserChipIndex;
WriteParams.ulWriteAddress = 0x214;
WriteParams.usWriteData = (UINT16)( (usReadData & 0xC000) | 0x3FFF );
result = Oct6100UserDriverWriteOs( &WriteParams );
if ( result != cOCT6100_ERR_OK )
return cOCT6100_ERR_INTRPTS_RW_ERROR;
WriteParams.ulWriteAddress = 0x212;
WriteParams.usWriteData = 0x8000;
result = Oct6100UserDriverWriteOs( &WriteParams );
if ( result != cOCT6100_ERR_OK )
return cOCT6100_ERR_INTRPTS_RW_ERROR;
return cOCT6100_ERR_OK;
}
return cOCT6100_ERR_INTRPTS_NOT_ACTIVE;
}

View File

@ -0,0 +1,529 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_channel_priv.h
Copyright (c) 2001-2007 Octasic Inc.
Description:
File containing all private defines, macros, structures and prototypes
pertaining to the file oct6100_channel.c. All elements defined in this
file are for private usage of the API. All public elements are defined
in the oct6100_channel_pub.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-PR49 $
$Octasic_Revision: 62 $
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#ifndef __OCT6100_CHANNEL_PRIV_H__
#define __OCT6100_CHANNEL_PRIV_H__
/***************************** INCLUDE FILES *******************************/
/***************************** DEFINES *************************************/
/* ECHO channel list pointer macros. */
#define mOCT6100_GET_CHANNEL_LIST_PNT( pSharedInfo, pList ) \
pList = ( tPOCT6100_API_CHANNEL )(( PUINT8 )pSharedInfo + pSharedInfo->ulChannelListOfst );
#define mOCT6100_GET_CHANNEL_ENTRY_PNT( pSharedInfo, pEntry, ulIndex ) \
pEntry = (( tPOCT6100_API_CHANNEL )(( PUINT8 )pSharedInfo + pSharedInfo->ulChannelListOfst)) + ulIndex;
#define mOCT6100_GET_CHANNEL_ALLOC_PNT( pSharedInfo, pAlloc ) \
pAlloc = ( PVOID )(( PUINT8 )pSharedInfo + pSharedInfo->ulChannelAllocOfst);
#define mOCT6100_GET_BIDIR_CHANNEL_LIST_PNT( pSharedInfo, pList ) \
pList = ( tPOCT6100_API_BIDIR_CHANNEL )(( PUINT8 )pSharedInfo + pSharedInfo->ulBiDirChannelListOfst );
#define mOCT6100_GET_BIDIR_CHANNEL_ENTRY_PNT( pSharedInfo, pEntry, ulIndex ) \
pEntry = (( tPOCT6100_API_BIDIR_CHANNEL )(( PUINT8 )pSharedInfo + pSharedInfo->ulBiDirChannelListOfst)) + ulIndex;
#define mOCT6100_GET_BIDIR_CHANNEL_ALLOC_PNT( pSharedInfo, pAlloc ) \
pAlloc = ( PVOID )(( PUINT8 )pSharedInfo + pSharedInfo->ulBiDirChannelAllocOfst );
/***************************** TYPES ***************************************/
typedef struct _OCT6100_API_ECHO_CHAN_INDEX_
{
/* Index of the channel in the API echo channel list.*/
UINT16 usEchoChanIndex;
/* TSI chariot memory entry for the Rin/Rout stream. */
UINT16 usRinRoutTsiMemIndex;
/* TSI chariot memory entry for the Sin/Sout stream. */
UINT16 usSinSoutTsiMemIndex;
/* SSPX memory entry. */
UINT16 usEchoMemIndex;
/* TDM sample conversion control memory entry. */
UINT16 usRinRoutConversionMemIndex;
UINT16 usSinSoutConversionMemIndex;
/* Internal info for quick access to structures associated to this TSI cnct. */
UINT16 usRinTsstIndex;
UINT16 usSinTsstIndex;
UINT16 usRoutTsstIndex;
UINT16 usSoutTsstIndex;
/* Index of the phasing TSST */
UINT16 usPhasingTsstIndex;
UINT8 fSinSoutCodecActive;
UINT8 fRinRoutCodecActive;
/* Extended Tone Detection resources.*/
UINT16 usExtToneChanIndex;
UINT16 usExtToneMixerIndex;
UINT16 usExtToneTsiIndex;
} tOCT6100_API_ECHO_CHAN_INDEX, *tPOCT6100_API_ECHO_CHAN_INDEX;
/************************** FUNCTION PROTOTYPES *****************************/
UINT32 Oct6100ApiGetChannelsEchoSwSizes(
IN tPOCT6100_CHIP_OPEN f_pOpenChip,
OUT tPOCT6100_API_INSTANCE_SIZES f_pInstSizes );
UINT32 Oct6100ApiChannelsEchoSwInit(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance );
UINT32 Oct6100ChannelOpenSer(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN OUT tPOCT6100_CHANNEL_OPEN f_pChannelOpen );
UINT32 Oct6100ApiCheckChannelParams(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN OUT tPOCT6100_CHANNEL_OPEN f_pChannelOpen,
IN OUT tPOCT6100_API_ECHO_CHAN_INDEX f_pChanIndexConf );
UINT32 Oct6100ApiReserveChannelResources(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_CHANNEL_OPEN f_pChannelOpen,
IN OUT tPOCT6100_API_ECHO_CHAN_INDEX f_pChanIndexConf );
UINT32 Oct6100ApiWriteChannelStructs(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_CHANNEL_OPEN f_pChannelOpen,
IN tPOCT6100_API_ECHO_CHAN_INDEX f_pChanIndexConf );
UINT32 Oct6100ApiUpdateChannelEntry(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN OUT tPOCT6100_CHANNEL_OPEN f_pChannelOpen,
IN tPOCT6100_API_ECHO_CHAN_INDEX f_pChanIndexConf );
UINT32 Oct6100ChannelCloseSer(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_CHANNEL_CLOSE f_pChannelClose );
UINT32 Oct6100ApiAssertChannelParams(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_CHANNEL_CLOSE f_pChannelClose,
IN OUT PUINT16 f_pusChanIndex );
UINT32 Oct6100ApiInvalidateChannelStructs(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT16 f_usChanIndex );
UINT32 Oct6100ApiReleaseChannelResources(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT16 f_usChannelIndex );
UINT32 Oct6100ChannelModifySer(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_CHANNEL_MODIFY f_pChannelModify );
UINT32 Oct6100ApiCheckChannelModify(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_CHANNEL_MODIFY f_pChannelModify,
IN OUT tPOCT6100_CHANNEL_OPEN f_pTempChanOpen,
OUT PUINT16 f_pusNewPhasingTsstIndex,
OUT PUINT16 f_pusChanIndex );
UINT32 Oct6100ApiModifyChannelResources(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_CHANNEL_MODIFY f_pChannelModify,
IN UINT16 f_usChanIndex,
OUT PUINT16 f_pusNewRinTsstIndex,
OUT PUINT16 f_pusNewSinTsstIndex,
OUT PUINT16 f_pusNewRoutTsstIndex,
OUT PUINT16 f_pusNewSoutTsstIndex );
UINT32 Oct6100ApiModifyChannelStructs(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_CHANNEL_MODIFY f_pChannelModify,
IN tPOCT6100_CHANNEL_OPEN f_pChannelOpen,
IN UINT16 f_usChanIndex,
IN UINT16 f_usNewPhasingTsstIndex,
OUT PUINT8 f_pfSinSoutCodecActive,
OUT PUINT8 f_pfRinRoutCodecActive,
IN UINT16 f_usNewRinTsstIndex,
IN UINT16 f_uslNewSinTsstIndex,
IN UINT16 f_usNewRoutTsstIndex,
IN UINT16 f_usNewSoutTsstIndex );
UINT32 Oct6100ApiModifyChannelEntry(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN OUT tPOCT6100_CHANNEL_MODIFY f_pChannelModify,
IN tPOCT6100_CHANNEL_OPEN f_pChannelOpen,
IN UINT16 f_usChanIndex,
IN UINT16 f_usNewPhasingTsstIndex,
IN UINT8 f_fSinSoutCodecActive,
IN UINT8 f_fRinRoutCodecActive,
IN UINT16 f_usNewRinTsstIndex,
IN UINT16 f_usNewSinTsstIndex,
IN UINT16 f_usNewRoutTsstIndex,
IN UINT16 f_usNewSoutTsstIndex );
UINT32 Oct6100ChannelBroadcastTsstAddSer(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN OUT tPOCT6100_CHANNEL_BROADCAST_TSST_ADD f_pChannelTsstAdd );
UINT32 Oct6100ApiCheckChanTsstAddParams(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_CHANNEL_BROADCAST_TSST_ADD f_pChannelTsstRemove,
OUT PUINT16 f_pusChanIndex );
UINT32 Oct6100ApiReserveTsstAddResources(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_CHANNEL_BROADCAST_TSST_ADD f_pChannelTsstRemove,
IN UINT16 f_usChanIndex,
OUT PUINT16 f_pusNewTsstIndex,
OUT PUINT16 f_pusNewTsstEntry );
UINT32 Oct6100ApiWriteTsstAddStructs(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_CHANNEL_BROADCAST_TSST_ADD f_pChannelTsstRemove,
IN UINT16 f_usChanIndex,
IN UINT16 f_usNewTsstIndex );
UINT32 Oct6100ApiUpdateTsstAddChanEntry(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_CHANNEL_BROADCAST_TSST_ADD f_pChannelTsstRemove,
IN UINT16 f_usChanIndex,
IN UINT16 f_usNewTsstIndex,
IN UINT16 f_usNewTsstEntry );
UINT32 Oct6100ChannelBroadcastTsstRemoveSer(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN OUT tPOCT6100_CHANNEL_BROADCAST_TSST_REMOVE f_pChannelTsstRemove);
UINT32 Oct6100ApiAssertChanTsstRemoveParams(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_CHANNEL_BROADCAST_TSST_REMOVE f_pChannelTsstRemove,
OUT PUINT16 f_pusChanIndex,
OUT PUINT16 f_pusTsstIndex,
OUT PUINT16 f_pusTsstEntry,
OUT PUINT16 f_pusPrevTsstEntry );
UINT32 Oct6100ApiInvalidateTsstRemoveStructs(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT16 f_usChanIndex,
IN UINT16 f_usTsstIndex,
IN UINT32 f_ulPort,
IN BOOL f_fRemoveAll );
UINT32 Oct6100ApiReleaseTsstRemoveResources(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_CHANNEL_BROADCAST_TSST_REMOVE f_pChannelTsstRemove,
IN UINT16 f_usChanIndex,
IN UINT16 f_usTsstIndex,
IN UINT16 f_usTsstEntry,
IN UINT16 f_usPrevTsstEntry );
UINT32 Oct6100ApiChannelGetStatsSer(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN OUT tPOCT6100_CHANNEL_STATS f_pChannelStats );
UINT32 Oct6100ApiReserveEchoEntry(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
OUT PUINT16 f_pusEchoIndex );
UINT32 Oct6100ApiReleaseEchoEntry(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT16 f_usEchoChanIndex );
UINT32 Oct6100ApiCheckTdmConfig(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_CHANNEL_OPEN_TDM f_pTdmConfig );
UINT32 Oct6100ApiCheckVqeConfig(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_CHANNEL_OPEN_VQE f_pVqeConfig,
IN BOOL f_fEnableToneDisabler );
UINT32 Oct6100ApiCheckCodecConfig(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_CHANNEL_OPEN_CODEC f_pCodecConfig,
IN UINT32 f_ulDecoderNumTssts,
OUT PUINT16 f_pusPhasingTsstIndex );
UINT32 Oct6100ApiWriteInputTsstControlMemory(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT16 f_usTsstIndex,
IN UINT16 f_usTsiMemIndex,
IN UINT32 f_ulTsstInputLaw );
UINT32 Oct6100ApiWriteOutputTsstControlMemory(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT16 f_usTsstIndex,
IN UINT32 f_ulAdpcmNibblePosition,
IN UINT32 f_ulNumTssts,
IN UINT16 f_usTsiMemIndex );
UINT32 Oct6100ApiWriteEncoderMemory(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT32 f_ulEncoderIndex,
IN UINT32 f_ulCompType,
IN UINT16 f_usTsiMemIndex,
IN UINT32 f_ulEnableSilenceSuppression,
IN UINT32 f_ulAdpcmNibblePosition,
IN UINT16 f_usPhasingTsstIndex,
IN UINT32 f_ulPhasingType,
IN UINT32 f_ulPhase );
UINT32 Oct6100ApiWriteDecoderMemory(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT16 f_usDecoderIndex,
IN UINT32 f_ulCompType,
IN UINT16 f_usTsiMemIndex,
IN UINT32 f_ulPcmLaw,
IN UINT32 f_ulAdpcmNibblePosition );
UINT32 Oct6100ApiClearConversionMemory(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT16 f_usConversionMemIndex );
UINT32 Oct6100ApiWriteVqeMemory(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_CHANNEL_OPEN_VQE f_pVqeConfig,
IN tPOCT6100_CHANNEL_OPEN f_pChannelOpen,
IN UINT16 f_usChanIndex,
IN UINT16 f_usEchoMemIndex,
IN BOOL f_fClearPlayoutPointers,
IN BOOL f_fModifyOnly );
UINT32 Oct6100ApiWriteVqeNlpMemory(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_CHANNEL_OPEN_VQE f_pVqeConfig,
IN tPOCT6100_CHANNEL_OPEN f_pChannelOpen,
IN UINT16 f_usChanIndex,
IN UINT16 f_usEchoMemIndex,
IN BOOL f_fClearPlayoutPointers,
IN BOOL f_fModifyOnly );
UINT32 Oct6100ApiWriteVqeAfMemory(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_CHANNEL_OPEN_VQE f_pVqeConfig,
IN tPOCT6100_CHANNEL_OPEN f_pChannelOpen,
IN UINT16 f_usChanIndex,
IN UINT16 f_usEchoMemIndex,
IN BOOL f_fClearPlayoutPointers,
IN BOOL f_fModifyOnly );
UINT32 Oct6100ApiWriteEchoMemory(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_CHANNEL_OPEN_TDM f_pTdmConfig,
IN tPOCT6100_CHANNEL_OPEN f_pChannelOpen,
IN UINT16 f_usEchoIndex,
IN UINT16 f_usRinRoutTsiIndex,
IN UINT16 f_usSinSoutTsiIndex );
UINT32 Oct6100ApiUpdateOpenStruct(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_CHANNEL_MODIFY f_pChanModify,
IN OUT tPOCT6100_CHANNEL_OPEN f_pChanOpen,
IN tPOCT6100_API_CHANNEL f_pChanEntry );
UINT32 Oct6100ApiRetrieveNlpConfDword(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_API_CHANNEL f_pChanEntry,
IN UINT32 f_ulAddress,
OUT PUINT32 f_pulConfigDword );
UINT32 Oct6100ApiSaveNlpConfDword(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_API_CHANNEL f_pChanEntry,
IN UINT32 f_ulAddress,
IN UINT32 f_ulConfigDword );
UINT32 Oct6100ChannelCreateBiDirSer(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN OUT IN OUT tPOCT6100_CHANNEL_CREATE_BIDIR f_pChannelCreateBiDir );
UINT32 Oct6100ApiCheckChannelCreateBiDirParams(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_CHANNEL_CREATE_BIDIR f_pChannelCreateBiDir,
OUT PUINT16 f_pusFirstChanIndex,
OUT PUINT16 f_pusFirstChanExtraTsiIndex,
OUT PUINT16 f_pusFirstChanSinCopyEventIndex,
OUT PUINT16 f_pusSecondChanIndex,
OUT PUINT16 f_pusSecondChanExtraTsiIndex,
OUT PUINT16 f_pusSecondChanSinCopyEventIndex
);
UINT32 Oct6100ApiReserveChannelCreateBiDirResources(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
OUT PUINT16 f_pusBiDirChanIndex,
IN OUT PUINT16 f_pusFirstChanExtraTsiIndex,
IN OUT PUINT16 f_pusFirstChanSinCopyEventIndex,
OUT PUINT16 f_pusFirstChanSoutCopyEventIndex,
IN OUT PUINT16 f_pusSecondChanExtraTsiIndex,
IN OUT PUINT16 f_pusSecondChanSinCopyEventIndex,
OUT PUINT16 f_pusSecondChanSoutCopyEventIndex );
UINT32 Oct6100ApiWriteChannelCreateBiDirStructs(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT16 f_usFirstChanIndex,
IN UINT16 f_usFirstChanExtraTsiIndex,
IN UINT16 f_usFirstChanSinCopyEventIndex,
IN UINT16 f_usFirstChanSoutCopyEventIndex,
IN UINT16 f_usSecondChanIndex,
IN UINT16 f_usSecondChanExtraTsiIndex,
IN UINT16 f_usSecondChanSinCopyEventIndex,
IN UINT16 f_usSecondChanSoutCopyEventIndex );
UINT32 Oct6100ApiUpdateBiDirChannelEntry(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
OUT tPOCT6100_CHANNEL_CREATE_BIDIR f_pChannelCreateBiDir,
IN UINT16 f_usBiDirChanIndex,
IN UINT16 f_usFirstChanIndex,
IN UINT16 f_usFirstChanExtraTsiIndex,
IN UINT16 f_usFirstChanSinCopyEventIndex,
IN UINT16 f_usFirstChanSoutCopyEventIndex,
IN UINT16 f_usSecondChanIndex,
IN UINT16 f_usSecondChanExtraTsiIndex,
IN UINT16 f_usSecondChanSinCopyEventIndex,
IN UINT16 f_usSecondChanSoutCopyEventIndex );
UINT32 Oct6100ChannelDestroyBiDirSer(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN OUT tPOCT6100_CHANNEL_DESTROY_BIDIR f_pChannelDestroyBiDir );
UINT32 Oct6100ApiAssertDestroyBiDirChanParams(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_CHANNEL_DESTROY_BIDIR f_pChannelDestroyBiDir,
IN OUT PUINT16 f_pusBiDirChanIndex,
IN OUT PUINT16 f_pusFirstChanIndex,
IN OUT PUINT16 f_pusSecondChanIndex );
UINT32 Oct6100ApiInvalidateBiDirChannelStructs(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT16 f_usFirstChanIndex,
IN UINT16 f_usSecondChanIndex );
UINT32 Oct6100ApiReleaseBiDirChannelResources(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT16 f_usBiDirChanIndex,
IN UINT16 f_usFirstChanIndex,
IN UINT16 f_usSecondChanIndex );
UINT32 Oct6100ApiWriteDebugChanMemory(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_CHANNEL_OPEN_TDM f_pTdmConfig,
IN tPOCT6100_CHANNEL_OPEN_VQE f_pVqeConfig,
IN tPOCT6100_CHANNEL_OPEN f_pChannelOpen,
IN UINT16 f_usChanIndex,
IN UINT16 f_usEchoMemIndex,
IN UINT16 f_usRinRoutTsiIndex,
IN UINT16 f_usSinSoutTsiIndex );
UINT32 Oct6100ApiDebugChannelOpen(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance );
UINT32 Oct6100ApiMutePorts(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT16 f_usEchoIndex,
IN UINT16 f_usRinTsstIndex,
IN UINT16 f_usSinTsstIndex,
IN BOOL f_fCheckBridgeIndex );
UINT32 Oct6100ApiSetChannelLevelControl(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_CHANNEL_OPEN_VQE f_pVqeConfig,
IN UINT16 f_usChanIndex,
IN UINT16 f_usEchoMemIndex,
IN BOOL f_fClearAlcHlcStatusBit );
UINT32 Oct6100ApiSetChannelTailConfiguration(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_CHANNEL_OPEN_VQE f_pVqeConfig,
IN UINT16 f_usChanIndex,
IN UINT16 f_usEchoMemIndex,
IN BOOL f_fModifyOnly );
UINT32 Oct6100ChannelMuteSer(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_CHANNEL_MUTE f_pChannelMute );
UINT32 Oct6100ApiAssertChannelMuteParams(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_CHANNEL_MUTE f_pChannelMute,
OUT PUINT16 f_pusChanIndex,
OUT PUINT16 f_pusPorts );
UINT32 Oct6100ChannelUnMuteSer(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_CHANNEL_UNMUTE f_pChannelUnMute );
UINT32 Oct6100ApiAssertChannelUnMuteParams(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_CHANNEL_UNMUTE f_pChannelUnMute,
OUT PUINT16 f_pusChanIndex,
OUT PUINT16 f_pusPorts );
UINT32 Oct6100ApiMuteSinWithFeatures(
IN tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT16 f_usChanIndex,
IN BOOL f_fEnableSinWithFeatures );
UINT32 Oct6100ApiMuteChannelPorts(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT16 f_usChanIndex,
IN UINT16 f_usPortMask,
IN BOOL f_fMute );
INT32 Oct6100ApiOctFloatToDbEnergyByte(
IN UINT8 x );
INT32 Oct6100ApiOctFloatToDbEnergyHalf(
IN UINT16 x );
UINT16 Oct6100ApiDbAmpHalfToOctFloat(
IN INT32 x );
#endif /* __OCT6100_CHANNEL_PRIV_H__ */

View File

@ -0,0 +1,264 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_chip_open_priv.h
Copyright (c) 2001-2007 Octasic Inc.
Description:
File containing all private defines, macros, structures and prototypes
pertaining to the file oct6100_chip_open.c. All elements defined in this
file are for private usage of the API. All public elements are defined
in the oct6100_chip_open_pub.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-PR49 $
$Octasic_Revision: 63 $
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#ifndef __OCT6100_CHIP_OPEN_PRIV_H__
#define __OCT6100_CHIP_OPEN_PRIV_H__
/***************************** INCLUDE FILES *******************************/
/***************************** DEFINES *************************************/
/***************************** TYPES ***************************************/
typedef struct _OCT6100_API_INSTANCE_SIZES_
{
/* Each of the following elements indicates the size of the instance memory */
/* needed by the corresponding API module. All sizes are in bytes. */
UINT32 ulChannelList;
UINT32 ulChannelAlloc;
UINT32 ulTsiCnctList;
UINT32 ulTsiCnctAlloc;
UINT32 ulMixerEventList;
UINT32 ulMixerEventAlloc;
UINT32 ulBiDirChannelList;
UINT32 ulBiDirChannelAlloc;
UINT32 ulAdpcmChannelList;
UINT32 ulAdpcmChannelAlloc;
UINT32 ulSoftBufPlayoutEventsBuffer;
UINT32 ulCopyEventList;
UINT32 ulCopyEventAlloc;
UINT32 ulConfBridgeList;
UINT32 ulConfBridgeAlloc;
UINT32 ulFlexConfParticipantsList;
UINT32 ulFlexConfParticipantsAlloc;
UINT32 ulPlayoutBufList;
UINT32 ulPlayoutBufAlloc;
UINT32 ulPlayoutBufMemoryNodeList;
UINT32 ulSoftToneEventsBuffer;
UINT32 ulPhasingTsstList;
UINT32 ulPhasingTsstAlloc;
UINT32 ulConversionMemoryAlloc;
UINT32 ulTsiMemoryAlloc;
UINT32 ulTsstAlloc;
UINT32 ulTsstEntryList;
UINT32 ulTsstEntryAlloc;
UINT32 ulRemoteDebugList;
UINT32 ulRemoteDebugTree;
UINT32 ulRemoteDebugPktCache;
UINT32 ulRemoteDebugDataBuf;
/* Memory consumed by static members of API instance. */
UINT32 ulApiInstStatic;
/* Total memory size for API instance. */
UINT32 ulApiInstTotal;
} tOCT6100_API_INSTANCE_SIZES, *tPOCT6100_API_INSTANCE_SIZES;
/************************** FUNCTION PROTOTYPES *****************************/
UINT32 Oct6100ApiCheckChipConfiguration(
IN tPOCT6100_CHIP_OPEN f_pOpenChip );
UINT32 Oct6100ApiCheckImageFileHeader(
IN tPOCT6100_CHIP_OPEN f_pChipOpen );
UINT32 Oct6100ApiCopyChipConfiguration(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_CHIP_OPEN f_pOpenChip );
UINT32 Oct6100ApiInitializeMiscellaneousVariables(
IN OUT tPOCT6100_INSTANCE_API f_pInstance );
UINT32 Oct6100ApiCalculateInstanceSizes(
IN OUT tPOCT6100_CHIP_OPEN f_pOpenChip,
OUT tPOCT6100_API_INSTANCE_SIZES f_pInstanceSizes );
UINT32 Oct6100ApiAllocateInstanceMemory(
IN OUT tPOCT6100_INSTANCE_API f_pInstance,
IN tPOCT6100_API_INSTANCE_SIZES f_pInstanceSizes );
UINT32 Oct6100ApiInitializeInstanceMemory(
IN OUT tPOCT6100_INSTANCE_API f_pInstance );
UINT32 Oct6100ApiGetChipRevisionNum(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance );
UINT32 Oct6100ApiMapExternalMemory(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance );
UINT32 Oct6100ApiDecodeKeyAndBist(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance );
UINT32 Oct6100ApiBootFc2Pll(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance );
UINT32 Oct6100ApiProgramFc1Pll(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance );
UINT32 Oct6100ApiBootFc1Pll(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance );
UINT32 Oct6100ApiWriteH100Registers(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance );
UINT32 Oct6100ApiExternalMemoryBist(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance );
UINT32 Oct6100ApiExternalMemoryInit(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance );
UINT32 Oct6100ApiLoadImage(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance );
UINT32 Oct6100ApiCpuRegisterBist(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance );
UINT32 Oct6100ApiBootSdram(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance );
UINT32 Oct6100ApiEnableClocks(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance );
UINT32 Oct6100ApiProgramNLP(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance );
UINT32 Oct6100ApiSetH100Register(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance );
UINT32 Oct6100ApiWriteMiscellaneousRegisters(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance );
UINT16 Oct6100ApiGenerateNumber(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT32 f_ulIndex,
IN UINT32 f_ulDataMask );
UINT32 Oct6100ApiRandomMemoryWrite(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT32 f_ulMemBase,
IN UINT32 f_ulMemSize,
IN UINT32 f_ulNumDataBits,
IN UINT32 f_ulNumAccesses,
IN UINT32 f_ulErrorCode );
UINT32 Oct6100ApiUserIoTest(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance );
UINT32 Oct6100ApiCreateSerializeObjects(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT32 f_ulUserChipId );
UINT32 Oct6100ApiDestroySerializeObjects(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance );
UINT32 Oct6100ApiRunEgo(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN BOOL f_fStoreFlag,
IN UINT32 f_ulNumEntry,
OUT PUINT32 f_aulEntry );
UINT32 Oct6100ApiCreateEgoEntry(
IN OUT UINT32 f_ulExternalAddress,
IN UINT32 f_ulInternalAddress,
IN UINT32 f_ulNumBytes,
IN UINT32 f_aulEntry[ 2 ] );
UINT32 Oct6100ApiInitChannels(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance );
UINT32 Oct6100ApiInitMixer(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance );
UINT32 Oct6100ApiInitRecordResources(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance );
UINT32 Oct6100FreeResourcesSer(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_FREE_RESOURCES f_pFreeResources );
UINT32 Oct6100ProductionBistSer(
IN tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_PRODUCTION_BIST f_pProductionBist );
UINT32 Oct6100ApiProductionCrc(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN PUINT32 f_pulMessage,
IN UINT32 f_ulMessageLength,
OUT PUINT32 f_pulCrcResult );
UINT32 Oct6100ApiReadCapacity(
IN tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_API_GET_CAPACITY_PINS f_pGetCapacityPins );
UINT32 Oct6100ApiCpuRegisterBistReadCap(
IN tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_API_GET_CAPACITY_PINS f_pGetCapacityPins );
UINT32 Oct6100ApiBootFc2PllReadCap(
IN tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_API_GET_CAPACITY_PINS f_pGetCapacityPins );
UINT32 Oct6100ApiProgramFc1PllReadCap(
IN tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_API_GET_CAPACITY_PINS f_pGetCapacityPins );
UINT32 Oct6100ApiInitToneInfo(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance );
UINT32 Oct6100ApiClearInterrupts(
IN tPOCT6100_INSTANCE_API f_pApiInstance );
#endif /* __OCT6100_CHIP_OPEN_PRIV_H__ */

View File

@ -0,0 +1,55 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_chip_stats_priv.h
Copyright (c) 2001-2007 Octasic Inc.
Description:
File containing all private defines, macros, structures and prototypes
pertaining to the file oct6100_chip_stats.c. All elements defined in this
file are for private usage of the API. All public elements are defined
in the oct6100_chip_stats_pub.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-PR49 $
$Octasic_Revision: 8 $
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#ifndef __OCT6100_CHIP_STATS_PRIV_H__
#define __OCT6100_CHIP_STATS_PRIV_H__
/***************************** INCLUDE FILES *******************************/
/***************************** DEFINES *************************************/
/***************************** TYPES ***************************************/
/************************** FUNCTION PROTOTYPES *****************************/
UINT32 Oct6100ApiChipStatsSwInit(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance );
UINT32 Oct6100ChipGetStatsSer(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
OUT tPOCT6100_CHIP_STATS f_pChipStats );
#endif /* __OCT6100_CHIP_STATS_PRIV_H__ */

View File

@ -0,0 +1,318 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_conf_bridge_priv.h
Copyright (c) 2001-2007 Octasic Inc.
Description:
File containing all private defines, macros, structures and prototypes
pertaining to the file oct6100_conf_bridge.c. All elements defined in this
file are for private usage of the API. All public elements are defined
in the oct6100_conf_bridge_pub.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-PR49 $
$Octasic_Revision: 30 $
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#ifndef __OCT6100_CONF_BRIDGE_PRIV_H__
#define __OCT6100_CONF_BRIDGE_PRIV_H__
/***************************** INCLUDE FILES *******************************/
/***************************** DEFINES *************************************/
#define mOCT6100_GET_CONF_BRIDGE_LIST_PNT( pSharedInfo, pList ) \
pList = ( tPOCT6100_API_CONF_BRIDGE )(( PUINT8 )pSharedInfo + pSharedInfo->ulConfBridgeListOfst);
#define mOCT6100_GET_CONF_BRIDGE_ENTRY_PNT( pSharedInfo, pEntry, ulIndex ) \
pEntry = (( tPOCT6100_API_CONF_BRIDGE )(( PUINT8 )pSharedInfo + pSharedInfo->ulConfBridgeListOfst)) + ulIndex;
#define mOCT6100_GET_CONF_BRIDGE_ALLOC_PNT( pSharedInfo, pAlloc ) \
pAlloc = ( PVOID )(( PUINT8 )pSharedInfo + pSharedInfo->ulConfBridgeAllocOfst);
#define mOCT6100_GET_FLEX_CONF_PARTICIPANT_LIST_PNT( pSharedInfo, pList ) \
pList = ( tPOCT6100_API_FLEX_CONF_PARTICIPANT )(( PUINT8 )pSharedInfo + pSharedInfo->ulFlexConfParticipantListOfst);
#define mOCT6100_GET_FLEX_CONF_PARTICIPANT_ENTRY_PNT( pSharedInfo, pEntry, ulIndex ) \
pEntry = (( tPOCT6100_API_FLEX_CONF_PARTICIPANT )(( PUINT8 )pSharedInfo + pSharedInfo->ulFlexConfParticipantListOfst)) + ulIndex;
#define mOCT6100_GET_FLEX_CONF_PARTICIPANT_ALLOC_PNT( pSharedInfo, pAlloc ) \
pAlloc = ( PVOID )(( PUINT8 )pSharedInfo + pSharedInfo->ulFlexConfParticipantAllocOfst);
/***************************** TYPES ***************************************/
/************************** FUNCTION PROTOTYPES *****************************/
UINT32 Oct6100ApiGetConfBridgeSwSizes(
IN OUT tPOCT6100_CHIP_OPEN f_pOpenChip,
OUT tPOCT6100_API_INSTANCE_SIZES f_pInstSizes );
UINT32 Oct6100ApiConfBridgeSwInit(
IN OUT tPOCT6100_INSTANCE_API f_pApiInst );
UINT32 Oct6100ConfBridgeOpenSer(
IN OUT tPOCT6100_INSTANCE_API f_pApiInst,
IN OUT tPOCT6100_CONF_BRIDGE_OPEN f_pConfBridgeOpen );
UINT32 Oct6100ApiCheckBridgeParams(
IN OUT tPOCT6100_INSTANCE_API f_pApiInst,
IN OUT tPOCT6100_CONF_BRIDGE_OPEN f_pConfBridgeOpen );
UINT32 Oct6100ApiReserveBridgeResources(
IN OUT tPOCT6100_INSTANCE_API f_pApiInst,
OUT PUINT16 f_pusBridgeIndex );
UINT32 Oct6100ApiUpdateBridgeEntry(
IN OUT tPOCT6100_INSTANCE_API f_pApiInst,
IN tPOCT6100_CONF_BRIDGE_OPEN f_pConfBridgeOpen,
IN UINT16 f_usBridgeIndex );
UINT32 Oct6100ConfBridgeCloseSer(
IN OUT tPOCT6100_INSTANCE_API f_pApiInst,
IN tPOCT6100_CONF_BRIDGE_CLOSE f_pConfBridgeClose );
UINT32 Oct6100ApiAssertBridgeParams(
IN OUT tPOCT6100_INSTANCE_API f_pApiInst,
IN tPOCT6100_CONF_BRIDGE_CLOSE f_pConfBridgeClose,
OUT PUINT16 f_pusBridgeIndex );
UINT32 Oct6100ApiReleaseBridgeResources(
IN OUT tPOCT6100_INSTANCE_API f_pApiInst,
IN UINT16 f_usBridgeIndex );
UINT32 Oct6100ConfBridgeChanAddSer(
IN OUT tPOCT6100_INSTANCE_API f_pApiInst,
IN tPOCT6100_CONF_BRIDGE_CHAN_ADD f_pConfBridgeAdd );
UINT32 Oct6100ApiCheckBridgeAddParams(
IN OUT tPOCT6100_INSTANCE_API f_pApiInst,
IN tPOCT6100_CONF_BRIDGE_CHAN_ADD f_pConfBridgeAdd,
OUT PUINT16 f_pusBridgeIndex,
OUT PUINT16 f_pusChannelIndex,
OUT PUINT8 f_pfMute,
OUT PUINT32 f_pulInputPort,
OUT PUINT8 f_pfFlexibleConfBridge,
OUT PUINT32 f_pulListenerMaskIndex,
OUT PUINT32 f_pulListenerMask,
OUT PUINT8 f_pfTap,
OUT PUINT16 f_pusTapChannelIndex );
UINT32 Oct6100ApiReserveBridgeAddResources(
IN OUT tPOCT6100_INSTANCE_API f_pApiInst,
IN UINT16 f_usBridgeIndex,
IN UINT16 f_usChanIndex,
IN UINT32 f_ulInputPort,
IN UINT8 f_fFlexibleConfBridge,
IN UINT32 f_ulListenerMaskIndex,
IN UINT32 f_ulListenerMask,
IN UINT8 f_fTap,
OUT PUINT16 f_pusLoadEventIndex,
OUT PUINT16 f_pusSubStoreEventIndex,
OUT PUINT16 f_pusCopyEventIndex,
OUT PUINT16 f_pusTapBridgeIndex );
UINT32 Oct6100ApiBridgeEventAdd(
IN OUT tPOCT6100_INSTANCE_API f_pApiInst,
IN UINT16 f_usBridgeIndex,
IN UINT16 f_usChannelIndex,
IN UINT8 f_fFlexibleConfBridge,
IN UINT16 f_usLoadEventIndex,
IN UINT16 f_usSubStoreEventIndex,
IN UINT16 f_usCopyEventIndex,
IN UINT32 f_ulInputPort,
IN UINT8 f_fMute,
IN UINT32 f_ulListenerMaskIndex,
IN UINT32 f_ulListenerMask,
IN UINT8 f_fTap,
IN UINT16 f_usTapBridgeIndex,
IN UINT16 f_usTapChanIndex );
UINT32 Oct6100ApiBridgeAddParticipantToChannel(
IN OUT tPOCT6100_INSTANCE_API f_pApiInst,
IN UINT16 f_usBridgeIndex,
IN UINT16 f_usSourceChannelIndex,
IN UINT16 f_usDestinationChannelIndex,
IN UINT16 f_usLoadOrAccumulateEventIndex,
IN UINT16 f_usStoreEventIndex,
IN UINT16 f_usCopyEventIndex,
IN UINT32 f_ulSourceInputPort,
IN UINT32 f_ulDestinationInputPort );
UINT32 Oct6100ConfBridgeChanRemoveSer(
IN OUT tPOCT6100_INSTANCE_API f_pApiInst,
IN tPOCT6100_CONF_BRIDGE_CHAN_REMOVE f_pConfBridgeRemove );
UINT32 Oct6100ApiCheckChanRemoveParams(
IN OUT tPOCT6100_INSTANCE_API f_pApiInst,
IN tPOCT6100_CONF_BRIDGE_CHAN_REMOVE f_pConfBridgeRemove,
OUT PUINT16 f_pusBridgeIndex,
OUT PUINT16 f_pusChannelIndex,
OUT PUINT8 f_pfFlexibleConfBridge,
OUT PUINT8 f_pfTap,
OUT PUINT16 f_pusLoadEventIndex,
OUT PUINT16 f_pusSubStoreEventIndex,
OUT PUINT16 f_pusCopyEventIndex );
UINT32 Oct6100ApiReleaseChanEventResources(
IN OUT tPOCT6100_INSTANCE_API f_pApiInst,
IN tPOCT6100_CONF_BRIDGE_CHAN_REMOVE f_pConfBridgeRemove,
IN UINT16 f_usBridgeIndex,
IN UINT16 f_usChanIndex,
IN UINT8 f_fFlexibleConfBridge,
IN UINT16 f_usLoadEventIndex,
IN UINT16 f_usSubStoreEventIndex,
IN UINT16 f_usCopyEventIndex );
UINT32 Oct6100ApiBridgeEventRemove (
IN OUT tPOCT6100_INSTANCE_API f_pApiInst,
IN tPOCT6100_CONF_BRIDGE_CHAN_REMOVE f_pConfBridgeRemove,
IN UINT16 f_usBridgeIndex,
IN UINT16 f_usChannelIndex,
IN UINT8 f_fFlexibleConfBridge,
IN UINT16 f_usLoadEventIndex,
IN UINT16 f_usSubStoreEventIndex,
IN UINT16 f_usCopyEventIndex,
IN UINT8 f_fTap );
UINT32 Oct6100ApiBridgeRemoveParticipantFromChannel(
IN OUT tPOCT6100_INSTANCE_API f_pApiInst,
IN UINT16 f_usBridgeIndex,
IN UINT16 f_usSourceChannelIndex,
IN UINT16 f_usDestinationChannelIndex,
IN UINT8 f_fRemovePermanently );
UINT32 Oct6100ConfBridgeChanMuteSer(
IN OUT tPOCT6100_INSTANCE_API f_pApiInst,
IN tPOCT6100_CONF_BRIDGE_CHAN_MUTE f_pConfBridgeMute );
UINT32 Oct6100ApiUpdateBridgeMuteResources(
IN OUT tPOCT6100_INSTANCE_API f_pApiInst,
IN UINT16 f_usChanIndex,
IN UINT16 f_usLoadEventIndex,
IN UINT16 f_usSubStoreEventIndex,
IN UINT8 f_fFlexibleConfBridge );
UINT32 Oct6100ApiCheckBridgeMuteParams(
IN OUT tPOCT6100_INSTANCE_API f_pApiInst,
IN tPOCT6100_CONF_BRIDGE_CHAN_MUTE f_pConfBridgeMute,
OUT PUINT16 f_pusChannelIndex,
OUT PUINT16 f_pusLoadEventIndex,
OUT PUINT16 f_pusSubStoreEventIndex,
OUT PUINT8 f_pfFlexibleConfBridge );
UINT32 Oct6100ConfBridgeChanUnMuteSer(
IN OUT tPOCT6100_INSTANCE_API f_pApiInst,
IN tPOCT6100_CONF_BRIDGE_CHAN_UNMUTE f_pConfBridgeUnMute );
UINT32 Oct6100ApiCheckBridgeUnMuteParams(
IN OUT tPOCT6100_INSTANCE_API f_pApiInst,
IN tPOCT6100_CONF_BRIDGE_CHAN_UNMUTE f_pConfBridgeUnMute,
OUT PUINT16 f_pusChannelIndex,
OUT PUINT16 f_pusLoadEventIndex,
OUT PUINT16 f_pusSubStoreEventIndex,
OUT PUINT8 f_pfFlexibleConfBridge );
UINT32 Oct6100ApiUpdateBridgeUnMuteResources(
IN OUT tPOCT6100_INSTANCE_API f_pApiInst,
IN UINT16 f_usChanIndex,
IN UINT16 f_usLoadEventIndex,
IN UINT16 f_usSubStoreEventIndex,
IN UINT8 f_fFlexibleConfBridge );
UINT32 Oct6100ConfBridgeDominantSpeakerSetSer(
IN OUT tPOCT6100_INSTANCE_API f_pApiInst,
IN tPOCT6100_CONF_BRIDGE_DOMINANT_SPEAKER_SET f_pConfBridgeDominantSpeaker );
UINT32 Oct6100ApiCheckBridgeDominantSpeakerParams(
IN OUT tPOCT6100_INSTANCE_API f_pApiInst,
IN tPOCT6100_CONF_BRIDGE_DOMINANT_SPEAKER_SET f_pConfBridgeDominantSpeaker,
OUT PUINT16 f_pusChannelIndex,
OUT PUINT16 f_pusBridgeIndex );
UINT32 Oct6100ApiUpdateBridgeDominantSpeakerResources(
IN OUT tPOCT6100_INSTANCE_API f_pApiInst,
IN UINT16 f_usChanIndex,
IN UINT16 f_usBridgeIndex );
UINT32 Oct6100ConfBridgeMaskChangeSer(
IN OUT tPOCT6100_INSTANCE_API f_pApiInst,
IN tPOCT6100_CONF_BRIDGE_MASK_CHANGE f_pConfBridgeMaskChange );
UINT32 Oct6100ApiCheckBridgeMaskChangeParams(
IN OUT tPOCT6100_INSTANCE_API f_pApiInst,
IN tPOCT6100_CONF_BRIDGE_MASK_CHANGE f_pConfBridgeMaskChange,
OUT PUINT16 f_pusChannelIndex,
OUT PUINT16 f_pusBridgeIndex,
OUT PUINT32 f_pulNewParticipantMask );
UINT32 Oct6100ApiUpdateMaskModifyResources(
IN OUT tPOCT6100_INSTANCE_API f_pApiInst,
IN UINT16 f_usBridgeIndex,
IN UINT16 f_usChanIndex,
IN UINT32 f_ulNewListenerMask );
UINT32 Oct6100ApiBridgeUpdateMask(
IN OUT tPOCT6100_INSTANCE_API f_pApiInst,
IN UINT16 f_usBridgeIndex,
IN UINT16 f_usChanIndex,
IN UINT32 f_ulNewListenerMask );
UINT32 Oct6100ConfBridgeGetStatsSer(
IN OUT tPOCT6100_INSTANCE_API f_pApiInst,
IN OUT tPOCT6100_CONF_BRIDGE_STATS f_pConfBridgeStats );
UINT32 Oct6100ApiReserveBridgeEntry(
IN OUT tPOCT6100_INSTANCE_API f_pApiInst,
OUT PUINT16 f_pusConfBridgeIndex );
UINT32 Oct6100ApiReleaseBridgeEntry(
IN OUT tPOCT6100_INSTANCE_API f_pApiInst,
IN UINT16 f_usConfBridgeIndex );
UINT32 Oct6100ApiGetPrevLastSubStoreEvent(
IN OUT tPOCT6100_INSTANCE_API f_pApiInst,
IN UINT16 f_usBridgeIndex,
IN UINT16 f_usBridgeFirstLoadEventPtr,
OUT PUINT16 f_pusLastSubStoreEventIndex );
UINT32 Oct6100ApiGetPreviousEvent(
IN OUT tPOCT6100_INSTANCE_API f_pApiInst,
IN UINT16 f_usStartIndex,
IN UINT16 f_usSearchedIndex,
IN UINT16 f_usLoopCnt,
OUT PUINT16 f_pusPreviousIndex );
UINT32 Oct6100ApiBridgeSetDominantSpeaker(
IN OUT tPOCT6100_INSTANCE_API f_pApiInst,
IN UINT16 f_usChannelIndex,
IN UINT16 f_usDominantSpeakerIndex );
UINT32 Oct6100ApiReserveFlexConfParticipantEntry(
IN OUT tPOCT6100_INSTANCE_API f_pApiInst,
OUT PUINT16 f_pusParticipantIndex );
UINT32 Oct6100ApiReleaseFlexConfParticipantEntry(
IN OUT tPOCT6100_INSTANCE_API f_pApiInst,
IN UINT16 f_usParticipantIndex );
#endif /* __OCT6100_CONF_BRIDGE_PRIV_H__ */

View File

@ -0,0 +1,58 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_debug_priv.h
Copyright (c) 2001-2007 Octasic Inc.
Description:
File containing all private defines, macros, structures and prototypes
pertaining to the file oct6100_debug.c. All elements defined in this
file are for private usage of the API. All public elements are defined
in the oct6100_debug_pub.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-PR49 $
$Octasic_Revision: 12 $
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#ifndef __OCT6100_DEBUG_PRIV_H__
#define __OCT6100_DEBUG_PRIV_H__
/***************************** INCLUDE FILES *******************************/
/***************************** DEFINES *************************************/
/***************************** TYPES ***************************************/
/************************** FUNCTION PROTOTYPES *****************************/
UINT32 Oct6100DebugSelectChannelSer(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_DEBUG_SELECT_CHANNEL f_pSelectDebugChan,
IN BOOL f_fCheckChannelRecording );
UINT32 Oct6100DebugGetDataSer(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN OUT tPOCT6100_DEBUG_GET_DATA f_pGetData );
#endif /* __OCT6100_DEBUG_PRIV_H__ */

View File

@ -0,0 +1,82 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_events_priv.h
Copyright (c) 2001-2007 Octasic Inc.
Description:
File containing all private defines, macros, structures and prototypes
pertaining to the file oct6100_events.c. All elements defined in this
file are for private usage of the API. All public elements are defined
in the oct6100_events_pub.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-PR49 $
$Octasic_Revision: 14 $
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#ifndef __OCT6100_EVENTS_PRIV_H__
#define __OCT6100_EVENTS_PRIV_H__
/***************************** INCLUDE FILES *******************************/
/***************************** DEFINES *************************************/
#define mOCT6100_GET_TONE_EVENT_BUF_PNT( pSharedInfo, pSoftBuf ) \
pSoftBuf = ( PVOID )(( PUINT8 )pSharedInfo + pSharedInfo->SoftBufs.ulToneEventBufferMemOfst );
#define mOCT6100_GET_BUFFER_PLAYOUT_EVENT_BUF_PNT( pSharedInfo, pSoftBuf ) \
pSoftBuf = ( PVOID )(( PUINT8 )pSharedInfo + pSharedInfo->SoftBufs.ulBufPlayoutEventBufferMemOfst );
/***************************** TYPES ***************************************/
/************************** FUNCTION PROTOTYPES *****************************/
UINT32 Oct6100ApiGetEventsSwSizes(
IN tPOCT6100_CHIP_OPEN f_pOpenChip,
OUT tPOCT6100_API_INSTANCE_SIZES f_pInstSizes );
UINT32 Oct6100EventGetToneSer(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN OUT tPOCT6100_EVENT_GET_TONE f_pEventGetTone );
UINT32 Oct6100ApiTransferToneEvents(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT32 f_ulResetBuf );
UINT32 Oct6100BufferPlayoutGetEventSer(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN OUT tPOCT6100_BUFFER_PLAYOUT_GET_EVENT f_pBufPlayoutGetEvent );
UINT32 Oct6100BufferPlayoutTransferEvents(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT32 f_ulResetBuf );
UINT32 Oct6100BufferPlayoutCheckForSpecificEvent(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT32 f_ulChannelIndex,
IN UINT32 f_ulChannelPort,
IN BOOL f_fSaveToSoftBuffer,
OUT PBOOL f_pfEventDetected );
#endif /* __OCT6100_EVENTS_PRIV_H__ */

View File

@ -0,0 +1,158 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_interrupts_priv.h
Copyright (c) 2001-2007 Octasic Inc.
Description:
File containing all private defines, macros, structures and prototypes
pertaining to the file oct6100_interrupts.c. All elements defined in this
file are for private usage of the API. All public elements are defined
in the oct6100_interrupts_pub.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-PR49 $
$Octasic_Revision: 11 $
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#ifndef __OCT6100_INTERRUPTS_PRIV_H__
#define __OCT6100_INTERRUPTS_PRIV_H__
/***************************** INCLUDE FILES *******************************/
/***************************** DEFINES *************************************/
#define mOCT6100_GET_INTRPT_ENABLE_TIME( \
ulRegMclkTimeHigh, \
ulRegMclkTimeLow, \
ulIntrptState, \
ulIntrptEnableMclkHigh, \
ulIntrptEnableMclkLow, \
ulIntrptTimeoutMclk, \
ulTimeDiff ) \
if ( ulIntrptState == cOCT6100_INTRPT_WILL_TIMEOUT ) \
{ \
ulIntrptEnableMclkLow = ulRegMclkTimeLow + ulIntrptTimeoutMclk; \
if ( ulIntrptEnableMclkLow < ulRegMclkTimeLow ) \
ulIntrptEnableMclkHigh = (ulRegMclkTimeHigh + 1) & 0xFF; \
else \
ulIntrptEnableMclkHigh = ulRegMclkTimeHigh; \
\
ulIntrptState = cOCT6100_INTRPT_IN_TIMEOUT; \
} \
\
if ( ulIntrptEnableMclkLow < ulRegMclkTimeLow ) \
{ \
ulTimeDiff = (cOCT6100_FFFFFFFF - ulRegMclkTimeLow - 1) + ulIntrptEnableMclkLow; \
} \
else \
{ \
ulTimeDiff = ulIntrptEnableMclkLow - ulRegMclkTimeLow; \
}
#define mOCT6100_CHECK_INTRPT_TIMEOUT( \
ulRegMclkTimePlus5MsHigh, \
ulRegMclkTimePlus5MsLow, \
ulIntrptDisableMclkHigh, \
ulIntrptDisableMclkLow, \
ulIntrptEnableMclkHigh, \
ulIntrptEnableMclkLow, \
ulIntrptState, \
fIntrptChange ) \
/* Branch depending on whether the disable time is lesser or greater than the timeout time. */ \
if ( ulIntrptDisableMclkLow < ulIntrptEnableMclkLow ) \
{ \
/* Disable period is over if mclk is greater than timeout time or less than disabled time. */ \
if ( ulRegMclkTimePlus5MsLow > ulIntrptEnableMclkLow || \
ulRegMclkTimePlus5MsLow < ulIntrptDisableMclkLow || \
ulRegMclkTimePlus5MsHigh != ulIntrptEnableMclkHigh ) \
{ \
fIntrptChange = TRUE; \
ulIntrptState = cOCT6100_INTRPT_ACTIVE; \
} \
} \
else \
{ \
/* Disable period is over if mclk is lesser than disable time and greater than timeout. */ \
if ( (ulRegMclkTimePlus5MsLow > ulIntrptEnableMclkLow && ulRegMclkTimePlus5MsLow < ulIntrptDisableMclkLow) || \
(ulRegMclkTimePlus5MsHigh != ulIntrptDisableMclkHigh && ulRegMclkTimePlus5MsHigh != ulIntrptEnableMclkHigh) ) \
{ \
fIntrptChange = TRUE; \
ulIntrptState = cOCT6100_INTRPT_ACTIVE; \
} \
}
/***************************** TYPES ***************************************/
/************************** FUNCTION PROTOTYPES *****************************/
UINT32 Oct6100ApiIsrSwInit(
IN tPOCT6100_INSTANCE_API f_pApiInstance );
UINT32 Oct6100ApiIsrHwInit(
IN tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_INTERRUPT_CONFIGURE f_pIntrptConfig );
UINT32 Oct6100InterruptConfigureSer(
IN tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_INTERRUPT_CONFIGURE f_pIntrptConfig,
IN BOOL f_fCheckParams );
UINT32 Oct6100ApiClearEnabledInterrupts(
IN tPOCT6100_INSTANCE_API f_pApiInstance );
UINT32 Oct6100InterruptServiceRoutineSer(
IN tPOCT6100_INSTANCE_API f_pApiInstance,
OUT tPOCT6100_INTERRUPT_FLAGS f_pIntFlags );
UINT32 Oct6100ApiWriteIeRegs(
IN tPOCT6100_INSTANCE_API f_pApiInstance );
UINT32 Oct6100ApiReadIntrptRegs(
IN tPOCT6100_INSTANCE_API f_pApiInstance,
OUT tPOCT6100_INTERRUPT_FLAGS f_pIntFlags,
IN UINT32 f_ulRegister210h );
UINT32 Oct6100ApiUpdateIntrptStates(
IN tPOCT6100_INSTANCE_API f_pApiInstance,
OUT tPOCT6100_INTERRUPT_FLAGS f_pIntFlags );
UINT32 Oct6100ApiWriteIntrptRegs(
IN tPOCT6100_INSTANCE_API f_pApiInstance );
UINT32 Oct6100ApiReadChipMclkTime(
IN tPOCT6100_INSTANCE_API f_pApiInstance );
UINT32 Oct6100ApiUpdateIntrptTimeouts(
IN tPOCT6100_INSTANCE_API f_pApiInstance );
UINT32 Oct6100ApiScheduleNextMclkIntrpt(
IN tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT32 f_ulIntrptToSet );
UINT32 Oct6100ApiScheduleNextMclkIntrptSer(
IN tPOCT6100_INSTANCE_API f_pApiInstance );
UINT32 Oct6100ApiCheckProcessorState(
IN tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_INTERRUPT_FLAGS f_pIntFlags );
#endif /* __OCT6100_INTERRUPTS_PRIV_H__ */

View File

@ -0,0 +1,97 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_memory_priv.h
Copyright (c) 2001-2007 Octasic Inc.
Description:
File containing all private defines, macros, structures and prototypes
pertaining to the file oct6100_memory.c. All elements defined in this
file are for private 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-PR49 $
$Octasic_Revision: 17 $
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#ifndef __OCT6100_MEMORY_PRIV_H__
#define __OCT6100_MEMORY_PRIV_H__
/***************************** INCLUDE FILES *******************************/
/***************************** DEFINES *************************************/
/* TSI allocation pointer macros. */
#define mOCT6100_GET_TSI_MEMORY_ALLOC_PNT( pSharedInfo, pAlloc ) \
pAlloc = ( PVOID )(( PUINT8 )pSharedInfo + pSharedInfo->ulTsiMemoryAllocOfst );
/* Conversion memory allocation pointer macros. */
#define mOCT6100_GET_CONVERSION_MEMORY_ALLOC_PNT( pSharedInfo, pAlloc ) \
pAlloc = ( PVOID )(( PUINT8 )pSharedInfo + pSharedInfo->ulConversionMemoryAllocOfst );
/***************************** TYPES ***************************************/
/************************** FUNCTION PROTOTYPES *****************************/
UINT32 Oct6100ApiGetMemorySwSizes(
IN tPOCT6100_CHIP_OPEN f_pOpenChip,
OUT tPOCT6100_API_INSTANCE_SIZES f_pInstSizes );
UINT32 Oct6100ApiMemorySwInit(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance );
UINT32 Oct6100ApiBufferPlayoutMemorySwInit(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance );
UINT32 Oct6100ApiReserveBufferPlayoutMemoryNode(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
OUT PUINT32 f_pulNewNode );
UINT32 Oct6100ApiReleaseBufferPlayoutMemoryNode(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT32 f_ulOldNode );
UINT32 Oct6100ApiReserveBufferPlayoutMemory(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT32 f_ulSize,
OUT PUINT32 f_pulMallocAddress );
UINT32 Oct6100ApiReleaseBufferPlayoutMemory(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT32 f_ulMallocAddress );
UINT32 Oct6100ApiReserveTsiMemEntry(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
OUT PUINT16 f_pusTsiMemIndex );
UINT32 Oct6100ApiReleaseTsiMemEntry(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT16 f_usTsiMemIndex );
UINT32 Oct6100ApiReserveConversionMemEntry(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
OUT PUINT16 f_pusConversionMemIndex );
UINT32 Oct6100ApiReleaseConversionMemEntry(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT16 f_usConversionMemIndex );
#endif /* __OCT6100_MEMORY_PRIV_H__ */

View File

@ -0,0 +1,279 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_miscellaneous_priv.h
Copyright (c) 2001-2007 Octasic Inc.
Description:
File containing all private defines, macros, structures and prototypes
pertaining to the file oct6100_miscellaneous.c. All elements defined in
this file are for private 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-PR49 $
$Octasic_Revision: 20 $
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#ifndef __OCT6100_MISCELLANEOUS_PRIV_H__
#define __OCT6100_MISCELLANEOUS_PRIV_H__
/***************************** INCLUDE FILES *******************************/
/***************************** DEFINES *************************************/
/*---------------------------------------------------------------------------*\
Macros used to shell the user function calls. These macros are used to
assert that the user does not change any of the members of the function's
parameter structure, as required and indicated in the API specification.
Ofcourse, these macros make the code heavier and thus slower. That is why
there is a compile option for disabling the extra checking. These can be
very helpful tools in debugging.
\*---------------------------------------------------------------------------*/
#ifndef cOCT6100_REMOVE_USER_FUNCTION_CHECK
#define mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ) \
{ \
PVOID _pProcessContext; \
UINT32 _ulUserChipId; \
UINT32 _ulWriteAddress; \
UINT16 _usWriteData; \
\
/* Store the data that is to be passed to the user. */ \
_pProcessContext = WriteParams.pProcessContext; \
_ulUserChipId = WriteParams.ulUserChipId; \
_ulWriteAddress = WriteParams.ulWriteAddress; \
_usWriteData = WriteParams.usWriteData; \
\
/* Call user function. */ \
ulResult = Oct6100UserDriverWriteApi( &WriteParams ); \
\
/* Check if user changed members of function's parameter structure. */ \
if ( WriteParams.pProcessContext != _pProcessContext || \
WriteParams.ulUserChipId != _ulUserChipId || \
WriteParams.ulWriteAddress != _ulWriteAddress || \
WriteParams.ulWriteAddress != _ulWriteAddress || \
WriteParams.usWriteData != _usWriteData ) \
ulResult = cOCT6100_ERR_FATAL_DRIVER_WRITE_API; \
}
#else
#define mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ) \
ulResult = Oct6100UserDriverWriteApi( &WriteParams );
#endif /* cOCT6100_REMOVE_USER_FUNCTION_CHECK */
#ifndef cOCT6100_REMOVE_USER_FUNCTION_CHECK
#define mOCT6100_DRIVER_WRITE_SMEAR_API( SmearParams, ulResult ) \
{ \
PVOID _pProcessContext; \
UINT32 _ulUserChipId; \
UINT32 _ulWriteAddress; \
UINT16 _usWriteData; \
UINT32 _ulWriteLength; \
\
/* Store the data that is to be passed to the user. */ \
_pProcessContext = SmearParams.pProcessContext; \
_ulUserChipId = SmearParams.ulUserChipId; \
_ulWriteAddress = SmearParams.ulWriteAddress; \
_usWriteData = SmearParams.usWriteData; \
_ulWriteLength = SmearParams.ulWriteLength; \
\
/* Call user function. */ \
ulResult = Oct6100UserDriverWriteSmearApi( &SmearParams ); \
\
/* Check if user changed members of function's paraeter structure. */ \
if ( SmearParams.pProcessContext != _pProcessContext || \
SmearParams.ulUserChipId != _ulUserChipId || \
SmearParams.usWriteData != _usWriteData || \
SmearParams.ulWriteLength != _ulWriteLength) \
ulResult = cOCT6100_ERR_FATAL_DRIVER_WRITE_SMEAR_API; \
}
#else
#define mOCT6100_DRIVER_WRITE_SMEAR_API( SmearParams, ulResult ) \
ulResult = Oct6100UserDriverWriteSmearApi( &SmearParams );
#endif /* cOCT6100_REMOVE_USER_FUNCTION_CHECK */
#ifndef cOCT6100_REMOVE_USER_FUNCTION_CHECK
#define mOCT6100_DRIVER_WRITE_BURST_API( BurstParams, ulResult ) \
{ \
PVOID _pProcessContext; \
UINT32 _ulUserChipId; \
UINT32 _ulWriteAddress; \
PUINT16 _pusWriteData; \
UINT32 _ulWriteLength; \
\
/* Store the data that is to be passed to the user. */ \
_pProcessContext = BurstParams.pProcessContext; \
_ulUserChipId = BurstParams.ulUserChipId; \
_ulWriteAddress = BurstParams.ulWriteAddress; \
_pusWriteData = BurstParams.pusWriteData; \
_ulWriteLength = BurstParams.ulWriteLength; \
\
/* Call user function. */ \
ulResult = Oct6100UserDriverWriteBurstApi( &BurstParams ); \
\
/* Check if user changed members of function's parameter structure. */ \
if ( BurstParams.pProcessContext != _pProcessContext || \
BurstParams.ulUserChipId != _ulUserChipId || \
BurstParams.ulWriteAddress != _ulWriteAddress || \
BurstParams.pusWriteData != _pusWriteData || \
BurstParams.ulWriteLength != _ulWriteLength ) \
ulResult = cOCT6100_ERR_FATAL_DRIVER_WRITE_BURST_API; \
}
#else
#define mOCT6100_DRIVER_WRITE_BURST_API( BurstParams, ulResult ) \
ulResult = Oct6100UserDriverWriteBurstApi( &BurstParams );
#endif /* cOCT6100_REMOVE_USER_FUNCTION_CHECK */
#ifndef cOCT6100_REMOVE_USER_FUNCTION_CHECK
#define mOCT6100_DRIVER_READ_API( ReadParams, ulResult ) \
{ \
PVOID _pProcessContext; \
UINT32 _ulUserChipId; \
UINT32 _ulReadAddress; \
PUINT16 _pusReadData; \
\
/* Store the data that is to be passed to the user. */ \
_pProcessContext = ReadParams.pProcessContext; \
_ulUserChipId = ReadParams.ulUserChipId; \
_ulReadAddress = ReadParams.ulReadAddress; \
_pusReadData = ReadParams.pusReadData; \
\
/* Call user function. */ \
ulResult = Oct6100UserDriverReadApi( &ReadParams ); \
\
/* Check if user changed members of function's parameter structure. */ \
if ( ReadParams.pProcessContext != _pProcessContext || \
ReadParams.ulUserChipId != _ulUserChipId || \
ReadParams.ulReadAddress != _ulReadAddress || \
ReadParams.pusReadData != _pusReadData ) \
ulResult = cOCT6100_ERR_FATAL_DRIVER_READ_API; \
}
#else
#define mOCT6100_DRIVER_READ_API( ReadParams, ulResult ) \
ulResult = Oct6100UserDriverReadApi( &ReadParams );
#endif /* cOCT6100_REMOVE_USER_FUNCTION_CHECK */
#ifndef cOCT6100_REMOVE_USER_FUNCTION_CHECK
#define mOCT6100_DRIVER_READ_BURST_API( BurstParams, ulResult ) \
{ \
PVOID _pProcessContext; \
UINT32 _ulUserChipId; \
UINT32 _ulReadAddress; \
PUINT16 _pusReadData; \
UINT32 _ulReadLength; \
\
/* Store the data that is to be passed to the user. */ \
_pProcessContext = BurstParams.pProcessContext; \
_ulUserChipId = BurstParams.ulUserChipId; \
_ulReadAddress = BurstParams.ulReadAddress; \
_pusReadData = BurstParams.pusReadData; \
_ulReadLength = BurstParams.ulReadLength; \
\
/* Call user function. */ \
ulResult = Oct6100UserDriverReadBurstApi( &BurstParams ); \
\
/* Check if user changed members of function's parameter structure. */ \
if ( BurstParams.pProcessContext != _pProcessContext || \
BurstParams.ulUserChipId != _ulUserChipId || \
BurstParams.ulReadAddress != _ulReadAddress || \
BurstParams.pusReadData != _pusReadData || \
BurstParams.ulReadLength != _ulReadLength ) \
ulResult = cOCT6100_ERR_FATAL_DRIVER_READ_BURST_API; \
}
#else
#define mOCT6100_DRIVER_READ_BURST_API( BurstParams, ulResult ) \
ulResult = Oct6100UserDriverReadBurstApi( &BurstParams );
#endif /* cOCT6100_REMOVE_USER_FUNCTION_CHECK */
#define mOCT6100_ASSIGN_USER_READ_WRITE_OBJ( f_pApiInst, Params )
#define mOCT6100_CREATE_FEATURE_MASK( f_ulFieldSize, f_ulFieldBitOffset, f_pulFieldMask ) \
{ \
(*f_pulFieldMask) = ( 1 << f_ulFieldSize ); \
(*f_pulFieldMask) --; \
(*f_pulFieldMask) <<= f_ulFieldBitOffset; \
}
/***************************** TYPES ***************************************/
/************************** FUNCTION PROTOTYPES *****************************/
UINT32 Oct6100ApiWaitForTime(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT32 f_aulWaitTime[ 2 ] );
UINT32 Oct6100ApiWaitForPcRegisterBit(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT32 f_ulPcRegAdd,
IN UINT32 f_ulPcBitNum,
IN UINT32 f_ulValue,
IN UINT32 f_ulTimeoutUs,
OUT PBOOL f_pfBitEqual );
UINT32 Oct6100ApiWriteDword(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT32 f_ulAddress,
IN UINT32 f_ulWriteData );
UINT32 Oct6100ApiReadDword(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT32 f_ulAddress,
OUT PUINT32 f_pulReadData );
VOID Oct6100ApiCreateFeatureMask(
IN UINT32 f_ulFieldSize,
IN UINT32 f_ulFieldBitOffset,
OUT PUINT32 f_pulFieldMask );
unsigned char const *Oct6100ApiStrStr(
IN unsigned char const *f_pszSource,
IN unsigned char const *f_pszString,
IN unsigned char const *f_pszLastCharPtr );
UINT32 Oct6100ApiStrLen(
IN unsigned char const *f_pszString );
UINT32 Oct6100ApiAsciiToHex(
IN UINT8 f_chCharacter,
IN PUINT32 f_pulValue );
UINT8 Oct6100ApiHexToAscii(
IN UINT32 f_ulNumber );
UINT32 Oct6100ApiRand(
IN UINT32 f_ulRange );
UINT32 oct6100_retrieve_nlp_conf_dword(tPOCT6100_INSTANCE_API f_pApiInst,
tPOCT6100_API_CHANNEL f_pChanEntry,
UINT32 f_ulAddress,
UINT32 *f_pulConfigDword);
UINT32 oct6100_save_nlp_conf_dword(tPOCT6100_INSTANCE_API f_pApiInst,
tPOCT6100_API_CHANNEL f_pChanEntry,
UINT32 f_ulAddress,
UINT32 f_ulConfigDword);
#endif /* __OCT6100_MISCELLANEOUS_PRIV_H__ */

View File

@ -0,0 +1,150 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_mixer_priv.h
Copyright (c) 2001-2007 Octasic Inc.
Description:
File containing all private defines, macros, structures and prototypes
pertaining to the file oct6100_mixer.c. All elements defined in this
file are for private usage of the API. All public elements are defined
in the oct6100_mixer_pub.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-PR49 $
$Octasic_Revision: 18 $
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#ifndef __OCT6100_MIXER_PRIV_H__
#define __OCT6100_MIXER_PRIV_H__
/***************************** INCLUDE FILES *******************************/
/***************************** DEFINES *************************************/
#define mOCT6100_GET_MIXER_EVENT_LIST_PNT( pSharedInfo, pList ) \
pList = ( tPOCT6100_API_MIXER_EVENT )(( PUINT8 )pSharedInfo + pSharedInfo->ulMixerEventListOfst);
#define mOCT6100_GET_MIXER_EVENT_ENTRY_PNT( pSharedInfo, pEntry, ulIndex ) \
pEntry = (( tPOCT6100_API_MIXER_EVENT )(( PUINT8 )pSharedInfo + pSharedInfo->ulMixerEventListOfst)) + ulIndex;
#define mOCT6100_GET_MIXER_EVENT_ALLOC_PNT( pSharedInfo, pAlloc ) \
pAlloc = ( PVOID )(( PUINT8 )pSharedInfo + pSharedInfo->ulMixerEventAllocOfst);
#define mOCT6100_GET_COPY_EVENT_LIST_PNT( pSharedInfo, pList ) \
pList = ( tPOCT6100_API_COPY_EVENT )(( PUINT8 )pSharedInfo + pSharedInfo->ulCopyEventListOfst);
#define mOCT6100_GET_COPY_EVENT_ENTRY_PNT( pSharedInfo, pEntry, ulIndex ) \
pEntry = (( tPOCT6100_API_COPY_EVENT )(( PUINT8 )pSharedInfo + pSharedInfo->ulCopyEventListOfst)) + ulIndex;
#define mOCT6100_GET_COPY_EVENT_ALLOC_PNT( pSharedInfo, pAlloc ) \
pAlloc = ( PVOID )(( PUINT8 )pSharedInfo + pSharedInfo->ulCopyEventAllocOfst);
/***************************** TYPES ***************************************/
/************************** FUNCTION PROTOTYPES *****************************/
UINT32 Oct6100ApiGetMixerSwSizes(
IN tPOCT6100_CHIP_OPEN f_pOpenChip,
OUT tPOCT6100_API_INSTANCE_SIZES f_pInstSizes );
UINT32 Oct6100ApiMixerSwInit(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance );
UINT32 Oct6100ApiMixerEventAdd(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT16 f_usEventIndex,
IN UINT16 f_usEventType,
IN UINT16 f_usDestinationChanIndex );
UINT32 Oct6100ApiMixerEventRemove(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT16 f_usEventIndex,
IN UINT16 f_usEventType );
UINT32 Oct6100MixerCopyEventCreateSer(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN OUT tPOCT6100_COPY_EVENT_CREATE f_pCopyEventCreate );
UINT32 Oct6100ApiCheckCopyEventCreateParams(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_COPY_EVENT_CREATE f_pCopyEventCreate,
OUT PUINT16 f_pusSourceChanIndex,
OUT PUINT16 f_pusDestinationChanIndex );
UINT32 Oct6100ApiReserveCopyEventCreateResources(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
OUT PUINT16 f_pusCopyEntryIndex,
IN OUT PUINT16 f_pusCopyEventIndex );
UINT32 Oct6100ApiWriteCopyEventCreateStructs(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_COPY_EVENT_CREATE f_pCopyEventCreate,
IN UINT16 f_usMixerEventIndex,
IN UINT16 f_usSourceChanIndex,
IN UINT16 f_usDestinationChanIndex );
UINT32 Oct6100ApiUpdateCopyEventCreateEntry(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN OUT tPOCT6100_COPY_EVENT_CREATE f_pCopyEventCreate,
IN UINT16 f_usCopyEventIndex,
IN UINT16 f_usMixerEventIndex,
IN UINT16 f_usSourceChanIndex,
IN UINT16 f_usDestinationChanIndex );
UINT32 Oct6100MixerCopyEventDestroySer(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN OUT tPOCT6100_COPY_EVENT_DESTROY f_pCopyEventDestroy );
UINT32 Oct6100ApiAssertCopyEventDestroyParams(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_COPY_EVENT_DESTROY f_pCopyEventDestroy,
IN OUT PUINT16 f_pusCopyEventIndex,
IN OUT PUINT16 f_pusMixerEventIndex );
UINT32 Oct6100ApiInvalidateCopyEventStructs(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT16 f_usCopyEventIndex,
IN UINT16 f_usMixerEventIndex );
UINT32 Oct6100ApiReleaseCopyEventResources(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT16 f_usCopyEventIndex,
IN UINT16 f_usMixerEventIndex );
UINT32 Oct6100ApiReserveMixerEventEntry(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
OUT PUINT16 f_pusEventIndex );
UINT32 Oct6100ApiReleaseMixerEventEntry(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT16 f_usEventIndex );
UINT32 Oct6100ApiGetFreeMixerEventCnt(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
OUT PUINT32 f_pulFreeEventCnt );
UINT32 Oct6100ApiReserveCopyEventEntry(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
OUT PUINT16 f_pusEventIndex );
UINT32 Oct6100ApiReleaseCopyEventEntry(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT16 f_usEventIndex );
#endif /* __OCT6100_MIXER_PRIV_H__ */

View File

@ -0,0 +1,114 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_phasing_tsst_priv.h
Copyright (c) 2001-2007 Octasic Inc.
Description:
File containing all private defines, macros, structures and prototypes
pertaining to the file oct6100_phasing_tsst.c. All elements defined in this
file are for private usage of the API. All public elements are defined
in the oct6100_phasing_tsst_pub.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-PR49 $
$Octasic_Revision: 12 $
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#ifndef __OCT6100_PHASING_TSST_PRIV_H__
#define __OCT6100_PHASING_TSST_PRIV_H__
/***************************** INCLUDE FILES *******************************/
/***************************** DEFINES *************************************/
#define mOCT6100_GET_PHASING_TSST_LIST_PNT( pSharedInfo, pList ) \
pList = ( tPOCT6100_API_PHASING_TSST )(( PUINT8 )pSharedInfo + pSharedInfo->ulPhasingTsstListOfst);
#define mOCT6100_GET_PHASING_TSST_ENTRY_PNT( pSharedInfo, pEntry, ulIndex ) \
pEntry = (( tPOCT6100_API_PHASING_TSST )(( PUINT8 )pSharedInfo + pSharedInfo->ulPhasingTsstListOfst)) + ulIndex;
#define mOCT6100_GET_PHASING_TSST_ALLOC_PNT( pSharedInfo, pAlloc ) \
pAlloc = ( PVOID )(( PUINT8 )pSharedInfo + pSharedInfo->ulPhasingTsstAllocOfst);
/***************************** TYPES ***************************************/
/************************** FUNCTION PROTOTYPES *****************************/
UINT32 Oct6100ApiGetPhasingTsstSwSizes(
IN tPOCT6100_CHIP_OPEN f_pOpenChip,
OUT tPOCT6100_API_INSTANCE_SIZES f_pInstSizes );
UINT32 Oct6100ApiPhasingTsstSwInit(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance );
UINT32 Oct6100PhasingTsstOpenSer(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN OUT tPOCT6100_PHASING_TSST_OPEN f_pPhasingTsstOpen );
UINT32 Oct6100ApiCheckPhasingParams(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_PHASING_TSST_OPEN f_pPhasingTsstOpen );
UINT32 Oct6100ApiReservePhasingResources(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_PHASING_TSST_OPEN f_pPhasingTsstOpen,
OUT PUINT16 f_pusPhasingIndex,
OUT PUINT16 f_pusTsstIndex );
UINT32 Oct6100ApiWritePhasingStructs(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_PHASING_TSST_OPEN f_pPhasingTsstOpen,
IN UINT16 f_usPhasingIndex,
IN UINT16 f_usTsstIndex );
UINT32 Oct6100ApiUpdatePhasingEntry(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN OUT tPOCT6100_PHASING_TSST_OPEN f_pPhasingTsstOpen,
IN UINT16 f_usPhasingIndex,
IN UINT16 f_usTsstIndex );
UINT32 Oct6100PhasingTsstCloseSer(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN OUT tPOCT6100_PHASING_TSST_CLOSE f_pPhasingTsstClose );
UINT32 Oct6100ApiAssertPhasingParams(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_PHASING_TSST_CLOSE f_pPhasingTsstClose,
OUT PUINT16 f_pusPhasingIndex,
OUT PUINT16 f_pusTsstIndex );
UINT32 Oct6100ApiInvalidatePhasingStructs(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT16 f_usTsstIndex );
UINT32 Oct6100ApiReleasePhasingResources(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN OUT UINT16 f_usPhasingIndex );
UINT32 Oct6100ApiReservePhasingEntry(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
OUT PUINT16 f_pusPhasingIndex );
UINT32 Oct6100ApiReleasePhasingEntry(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT16 f_usPhasingIndex );
#endif /* #ifndef cOCT6100_REMOVE_PHASING_TSST */

View File

@ -0,0 +1,201 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_playout_buf_priv.h
Copyright (c) 2001-2007 Octasic Inc.
Description:
File containing all private defines, macros, structures and prototypes
pertaining to the file oct6100_playout_buf.c. All elements defined in this
file are for private usage of the API. All public elements are defined
in the oct6100_playout_buf_pub.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-PR49 $
$Octasic_Revision: 22 $
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#ifndef __OCT6100_PLAYOUT_BUF_PRIV_H__
#define __OCT6100_PLAYOUT_BUF_PRIV_H__
/***************************** INCLUDE FILES *******************************/
/***************************** DEFINES *************************************/
/* Playout buffer list pointer macros. */
#define mOCT6100_GET_BUFFER_LIST_PNT( pSharedInfo, pList ) \
pList = ( tPOCT6100_API_BUFFER )(( PUINT8 )pSharedInfo + pSharedInfo->ulPlayoutBufListOfst );
#define mOCT6100_GET_BUFFER_ENTRY_PNT( pSharedInfo, pEntry, ulIndex ) \
pEntry = (( tPOCT6100_API_BUFFER )(( PUINT8 )pSharedInfo + pSharedInfo->ulPlayoutBufListOfst)) + ulIndex;
#define mOCT6100_GET_BUFFER_ALLOC_PNT( pSharedInfo, pAlloc ) \
pAlloc = ( PVOID )(( PUINT8 )pSharedInfo + pSharedInfo->ulPlayoutBufAllocOfst);
/***************************** TYPES ***************************************/
/************************** FUNCTION PROTOTYPES *****************************/
UINT32 Oct6100ApiGetPlayoutBufferSwSizes(
IN tPOCT6100_CHIP_OPEN f_pOpenChip,
OUT tPOCT6100_API_INSTANCE_SIZES f_pInstSizes );
UINT32 Oct6100ApiPlayoutBufferSwInit(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance );
UINT32 Oct6100BufferLoadSer(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN OUT tPOCT6100_BUFFER_LOAD f_pBufferLoad,
IN BOOL f_fReserveListStruct,
IN UINT32 f_ulBufIndex );
UINT32 Oct6100BufferLoadBlockInitSer(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN OUT tPOCT6100_BUFFER_LOAD_BLOCK_INIT f_pBufferLoadBlockInit );
UINT32 Oct6100BufferLoadBlockSer(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN OUT tPOCT6100_BUFFER_LOAD_BLOCK f_pBufferLoadBlock );
UINT32 Oct6100ApiCheckBufferParams(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_BUFFER_LOAD f_pBufferLoad,
IN BOOL f_fCheckBufferPtr );
UINT32 Oct6100ApiCheckBufferLoadBlockParams(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_BUFFER_LOAD_BLOCK f_pBufferLoadBlock,
OUT PUINT32 f_pulBufferBase );
UINT32 Oct6100ApiReserveBufferResources(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_BUFFER_LOAD f_pBufferLoad,
IN BOOL f_fReserveListStruct,
IN UINT32 f_ulBufIndex,
OUT PUINT32 f_pulBufIndex,
OUT PUINT32 f_pulBufBase );
UINT32 Oct6100ApiWriteBufferInMemory(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT32 f_ulBufferBase,
IN UINT32 f_ulBufferLength,
IN PUINT8 f_pbyBuffer );
UINT32 Oct6100ApiUpdateBufferEntry(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN OUT tPOCT6100_BUFFER_LOAD f_pBufferLoad,
IN UINT32 f_ulBufIndex,
IN UINT32 f_ulBufBase );
UINT32 Oct6100BufferUnloadSer(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN OUT tPOCT6100_BUFFER_UNLOAD f_pBufferUnload,
IN BOOL f_fReleaseListStruct );
UINT32 Oct6100ApiAssertBufferParams(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_BUFFER_UNLOAD f_pBufferUnload,
OUT PUINT32 f_pulBufIndex,
OUT PUINT32 f_pulBufBase );
UINT32 Oct6100ApiReleaseBufferResources(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT32 f_ulBufIndex,
IN UINT32 f_ulBufBase,
IN BOOL f_fReleaseListStruct );
UINT32 Oct6100BufferPlayoutAddSer(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN OUT tPOCT6100_BUFFER_PLAYOUT_ADD f_pBufferPlayoutAdd );
UINT32 Oct6100ApiCheckPlayoutAddParams(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_BUFFER_PLAYOUT_ADD f_pBufferPlayoutAdd,
OUT PUINT32 f_pulChannelIndex,
OUT PUINT32 f_pulBufferIndex );
UINT32 Oct6100ApiWriteBufferAddStructs(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_BUFFER_PLAYOUT_ADD f_pBufferPlayoutAdd,
IN UINT32 f_ulChannelIndex,
IN UINT32 f_ulBufferIndex );
UINT32 Oct6100BufferPlayoutStartSer(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN OUT tPOCT6100_BUFFER_PLAYOUT_START f_pBufferPlayoutStart,
IN UINT32 f_ulPlayoutStopEventType );
UINT32 Oct6100ApiCheckPlayoutStartParams(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_BUFFER_PLAYOUT_START f_pBufferPlayoutStart,
OUT PUINT32 f_pulChannelIndex,
OUT PUINT32 f_pulBufferIndex,
OUT PBOOL f_pfNotifyOnPlayoutStop,
OUT PUINT32 f_pulUserEventId,
OUT PBOOL f_pfAllowStartIfActive );
UINT32 Oct6100ApiWriteChanPlayoutStructs(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_BUFFER_PLAYOUT_START f_pBufferPlayoutStart,
IN UINT32 f_ulChannelIndex,
IN UINT32 f_ulBufferIndex,
IN BOOL f_fNotifyOnPlayoutStop,
IN UINT32 f_ulUserEventId,
IN BOOL f_fAllowStartIfActive,
IN UINT32 f_ulPlayoutStopEventType );
UINT32 Oct6100ApiUpdateChanPlayoutEntry (
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_BUFFER_PLAYOUT_START f_pBufferPlayoutStart,
IN UINT32 f_ulChannelIndex,
IN UINT32 f_ulBufferIndex );
UINT32 Oct6100BufferPlayoutStopSer(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN OUT tPOCT6100_BUFFER_PLAYOUT_STOP f_pBufferPlayoutStop );
UINT32 Oct6100ApiAssertPlayoutStopParams(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_BUFFER_PLAYOUT_STOP f_pBufferPlayoutStop,
OUT PUINT32 f_pulChannelIndex,
OUT PUINT16 f_pusEchoMemIndex );
UINT32 Oct6100ApiInvalidateChanPlayoutStructs(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_BUFFER_PLAYOUT_STOP f_pBufferPlayoutStop,
IN UINT32 f_ulChannelIndex,
IN UINT16 f_usEchoMemIndex
);
UINT32 Oct6100ApiReleaseChanPlayoutResources (
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN OUT tPOCT6100_BUFFER_PLAYOUT_STOP f_pBufferPlayoutStop,
IN UINT32 f_ulChannelIndex );
UINT32 Oct6100ApiReserveBufPlayoutListEntry(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
OUT PUINT32 f_pulBufIndex );
UINT32 Oct6100ApiReleaseBufPlayoutListEntry(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT32 f_ulBufIndex );
#endif /* __OCT6100_PLAYOUT_BUF_PRIV_H__ */

View File

@ -0,0 +1,144 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_remote_debug_priv.h
Copyright (c) 2001-2007 Octasic Inc.
Description:
File containing all private defines, macros, structures and prototypes
pertaining to the file oct6100_remote_debug.c. All elements defined in this
file are for private usage of the API. All public elements are defined
in the oct6100_remote_debug_pub.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-PR49 $
$Octasic_Revision: 13 $
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#ifndef __OCT6100_REMOTE_DEBUG_PRIV_H__
#define __OCT6100_REMOTE_DEBUG_PRIV_H__
/***************************** INCLUDE FILES *******************************/
/***************************** DEFINES *************************************/
#define mOCT6100_GET_REMOTE_DEBUG_LIST_ENTRY_PNT( pSharedInfo, ulIndex, pEntry ) \
pEntry = ( tPOCT6100_API_REMOTE_DEBUG_SESSION )(( PUINT8 )pSharedInfo + pSharedInfo->RemoteDebugInfo.ulSessionListOfst) + ulIndex;
#define mOCT6100_GET_REMOTE_DEBUG_TREE_PNT( pSharedInfo, pList ) \
pList = ( PVOID )(( PUINT8 )pSharedInfo + pSharedInfo->RemoteDebugInfo.ulSessionTreeOfst);
#define mOCT6100_GET_REMOTE_DEBUG_DATA_BUF_PNT( pSharedInfo, pulDataBuf ) \
pulDataBuf = ( PUINT16 )(( PUINT8 )pSharedInfo + pSharedInfo->RemoteDebugInfo.ulDataBufOfst);
#define mOCT6100_GET_REMOTE_DEBUG_SESSION_PKT_CACHE_PNT( pSharedInfo, pulPktCache, ulSessionIndex ) \
pulPktCache = ( PUINT32 )(( PUINT8 )pSharedInfo + pSharedInfo->RemoteDebugInfo.ulPktCacheOfst) + (ulSessionIndex * (cOCTRPC_MAX_PACKET_BYTE_LENGTH / 4));
/***************************** TYPES ***************************************/
/************************** FUNCTION PROTOTYPES *****************************/
UINT32 Oct6100ApiGetRemoteDebugSwSizes(
IN tPOCT6100_CHIP_OPEN f_pOpenChip,
OUT tPOCT6100_API_INSTANCE_SIZES f_pInstSizes );
UINT32 Oct6100ApiRemoteDebuggingSwInit(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance );
UINT32 Oct6100ApiCheckEndianDetectField(
IN tPOCTRPC_OGRDTP_HEADER f_pOgrdtpHeader,
IN UINT32 f_ulPktLengthDword );
VOID Oct6100ApiCalculateChecksum(
IN PUINT32 f_pulPktPayload,
IN UINT32 f_ulPktLengthDword,
OUT PUINT32 f_pulChecksum );
VOID Oct6100ApiFormResponsePkt(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN PUINT32 f_pulRcvPktPayload,
IN OUT PUINT32 f_pulRspPktPayload,
IN UINT32 f_ulPktLengthDword,
IN BOOL f_fRetryPktResponse,
IN BOOL f_fReplaceProtocolNum,
IN BOOL f_fReplaceInterfaceType,
IN BOOL f_fReplaceInterfaceVersion,
IN UINT32 f_ulSessionIndex,
IN UINT32 f_ulParsingErrorValue,
IN UINT32 f_ulPayloadDwordIndex,
IN UINT32 f_ulChecksum );
UINT32 Oct6100ApiCheckPktCommands(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN PUINT32 f_pulRcvPktPayload,
IN OUT PUINT32 f_pulRspPktPayload,
IN UINT32 f_ulSessionIndex,
IN UINT32 f_ulPktLengthDword,
IN UINT32 f_ulChecksum );
VOID Oct6100ApiExecutePktCommands(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN PUINT32 f_pulRcvPktPayload,
IN UINT32 f_ulPktLengthDword );
UINT32 Oct6100ApiCheckSessionNum(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCTRPC_OGRDTP_HEADER f_pOgrdtpHeader,
OUT PUINT32 f_pulSessionIndex );
VOID Oct6100ApiRpcReadWord(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN OUT tPOCTRPC_COMMAND_HEADER f_pCmndHeader );
VOID Oct6100ApiRpcReadBurst(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN OUT tPOCTRPC_COMMAND_HEADER f_pCmndHeader );
VOID Oct6100ApiRpcReadArray(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN OUT tPOCTRPC_COMMAND_HEADER f_pCmndHeader );
VOID Oct6100ApiRpcWriteWord(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN OUT tPOCTRPC_COMMAND_HEADER f_pCmndHeader );
VOID Oct6100ApiRpcWriteSmear(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN OUT tPOCTRPC_COMMAND_HEADER f_pCmndHeader );
VOID Oct6100ApiRpcWriteBurst(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN OUT tPOCTRPC_COMMAND_HEADER f_pCmndHeader );
VOID Oct6100ApiRpcSetHotChannel(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN OUT tPOCTRPC_COMMAND_HEADER f_pCmndHeader );
VOID Oct6100ApiRpcGetDebugChanIndex(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN OUT tPOCTRPC_COMMAND_HEADER f_pCmndHeader );
VOID Oct6100ApiRpcDisconnect(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN OUT tPOCTRPC_COMMAND_HEADER f_pCmndHeader,
IN OUT UINT32 f_ulSessionNumber );
#endif /* __OCT6100_REMOTE_DEBUG_PRIV_H__ */

View File

@ -0,0 +1,515 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_tlv_priv.h
Copyright (c) 2001-2007 Octasic Inc.
Description:
File containing all private defines, macros, structures and prototypes
pertaining to the file oct6100_tlv.c. All elements defined in this
file are for private 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-PR49 $
$Octasic_Revision: 58 $
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#ifndef __OCT6100_TLV_PRIV_H__
#define __OCT6100_TLV_PRIV_H__
/***************************** INCLUDE FILES *******************************/
/***************************** DEFINES *************************************/
/* List of TLV types supported by this API. */
#define cOCT6100_TLV_TYPE_VERSION_NUMBER 0
#define cOCT6100_TLV_TYPE_CUSTOMER_PROJECT_ID 2
#define cOCT6100_TLV_TYPE_POUCH_BASE_ADDRESS 3
#define cOCT6100_TLV_TYPE_CH0_MAIN_BASE_ADDRESS 4
#define cOCT6100_TLV_TYPE_CH_MAIN_SIZE 5
#define cOCT6100_TLV_TYPE_CH_MAIN_IO_OFFSET 6
#define cOCT6100_TLV_TYPE_CH_MAIN_ZCB_OFFSET 7
#define cOCT6100_TLV_TYPE_CH_MAIN_ZCB_SIZE 8
#define cOCT6100_TLV_TYPE_CH_MAIN_XCB_OFFSET 9
#define cOCT6100_TLV_TYPE_CH_MAIN_XCB_SIZE 10
#define cOCT6100_TLV_TYPE_CH_MAIN_YCB_OFFSET 11
#define cOCT6100_TLV_TYPE_CH_MAIN_YCB_SIZE 12
#define cOCT6100_TLV_TYPE_FREE_MEM_BASE_ADDRESS 13
#define cOCT6100_TLV_TYPE_CH_ROOT_CONF_OFFSET 14
#define cOCT6100_TLV_TYPE_POA_CH_MAIN_ZPO_OFFSET 15
#define cOCT6100_TLV_TYPE_POA_CH_MAIN_ZPO_SIZE 16
#define cOCT6100_TLV_TYPE_POA_CH_MAIN_YPO_OFFSET 17
#define cOCT6100_TLV_TYPE_POA_CH_MAIN_YPO_SIZE 18
#define cOCT6100_TLV_TYPE_POA_BOFF_RW_ZWP 19
#define cOCT6100_TLV_TYPE_POA_BOFF_RW_ZIS 20
#define cOCT6100_TLV_TYPE_POA_BOFF_RW_ZSP 21
#define cOCT6100_TLV_TYPE_POA_BOFF_RW_YWP 22
#define cOCT6100_TLV_TYPE_POA_BOFF_RW_YIS 23
#define cOCT6100_TLV_TYPE_POA_BOFF_RW_YSP 24
#define cOCT6100_TLV_TYPE_POA_BOFF_RO_ZRP 25
#define cOCT6100_TLV_TYPE_POA_BOFF_RO_YRP 26
#define cOCT6100_TLV_TYPE_CNR_CONF_BOFF_RW_ENABLE 27
#define cOCT6100_TLV_TYPE_ANR_CONF_BOFF_RW_ENABLE 28
#define cOCT6100_TLV_TYPE_HZ_CONF_BOFF_RW_ENABLE 29
#define cOCT6100_TLV_TYPE_HX_CONF_BOFF_RW_ENABLE 30
#define cOCT6100_TLV_TYPE_LCA_Z_CONF_BOFF_RW_GAIN 31
#define cOCT6100_TLV_TYPE_LCA_Y_CONF_BOFF_RW_GAIN 32
#define cOCT6100_TLV_TYPE_CNA_CONF_BOFF_RW_ENABLE 33
#define cOCT6100_TLV_TYPE_NOA_CONF_BOFF_RW_ENABLE 34
#define cOCT6100_TLV_TYPE_VFA_CONF_BOFF_RW_ENABLE 35
#define cOCT6100_TLV_TYPE_TLA_MAIN_IO_BOFF_RW_TAIL_DISP 37
#define cOCT6100_TLV_TYPE_STATSA_MAIN_IO_BOFF_RO_EPC 38
#define cOCT6100_TLV_TYPE_BOOTA_POUCH_BOFF_RW_BOOT_INST 39
#define cOCT6100_TLV_TYPE_BOOTA_POUCH_BOFF_RW_BOOT_RESULT 40
#define cOCT6100_TLV_TYPE_DIS_CONF_BOFF_RW_ENABLE 41
#define cOCT6100_TLV_TYPE_TDM_CONF_BOFF_RW_ENABLE 42
#define cOCT6100_TLV_TYPE_NT_CONF_BOFF_RW_ENABLE 43
#define cOCT6100_TLV_TYPE_AEC_CONF_BOFF_RW_ENABLE 44
#define cOCT6100_TLV_TYPE_PCM_LEAK_CONF_BOFF_RW 45
#define cOCT6100_TLV_TYPE_DEFAULT_ERL_CONF_BOFF_RW 46
#define cOCT6100_TLV_TYPE_TONE_REM_CONF_BOFF_RW_ENABLE 47
#define cOCT6100_TLV_TYPE_TLA_MAIN_IO_BOFF_RW_MAX_ECHO_POINT 48
#define cOCT6100_TLV_TYPE_NLP_CONV_CAP_CONF_BOFF_RW 49
#define cOCT6100_TLV_TYPE_MATRIX_EVENT_SIZE 50
#define cOCT6100_TLV_TYPE_CNR_RW_ENABLE 51
#define cOCT6100_TLV_TYPE_MAX_TAIL_LENGTH_RW_ENABLE 52
#define cOCT6100_TLV_TYPE_PLAYOUT_ENABLE 53
#define cOCT6100_TLV_TYPE_DOMINANT_SPEAKER_BOFF_RW_ENABLE 54
#define cOCT6100_TLV_TYPE_ANR_RW_ENABLE 57
#define cOCT6100_TLV_TYPE_TONE_REMOVAL_ENABLE 58
#define cOCT6100_TLV_TYPE_MUSIC_PROTECTION_RW_ENABLE 59
#define cOCT6100_TLV_TYPE_TAIL_DISP_CONF_BOFF_RW_ENABLE 60
#define cOCT6100_TLV_TYPE_IDLE_CODE_DETECTION_ENABLE 62
#define cOCT6100_TLV_TYPE_AEC_DEFAULT_ERL_BOFF 64
#define cOCT6100_TLV_TYPE_Z_ALC_TARGET_BOFF 65
#define cOCT6100_TLV_TYPE_Y_ALC_TARGET_BOFF 66
#define cOCT6100_TLV_TYPE_Z_HLC_TARGET_BOFF 67
#define cOCT6100_TLV_TYPE_Y_HLC_TARGET_BOFF 68
#define cOCT6100_TLV_TYPE_ALC_HLC_STATUS_BOFF 69
#define cOCT6100_TLV_TYPE_Z_PLAYOUT_HARD_SKIP_BOFF 70
#define cOCT6100_TLV_TYPE_Y_PLAYOUT_HARD_SKIP_BOFF 71
#define cOCT6100_TLV_TYPE_AFT_FIELD_BOFF 72
#define cOCT6100_TLV_TYPE_VOICE_DETECTED_STAT_BOFF 73
#define cOCT6100_TLV_TYPE_GAIN_APPLIED_RIN_STAT_BOFF 74
#define cOCT6100_TLV_TYPE_GAIN_APPLIED_SOUT_STAT_BOFF 75
#define cOCT6100_TLV_TYPE_MAX_ADAPT_ALE_BOFF 77
#define cOCT6100_TLV_TYPE_RIN_ANR_BOFF 78
#define cOCT6100_TLV_TYPE_NUMBER_PLAYOUT_EVENTS 79
#define cOCT6100_TLV_TYPE_RIN_MUTE_BOFF 80
#define cOCT6100_TLV_TYPE_SIN_MUTE_BOFF 81
#define cOCT6100_TLV_TYPE_CHAN_TAIL_LENGTH_BOFF 82
#define cOCT6100_TLV_TYPE_CHAN_VQE_TONE_DISABLING_BOFF 83
#define cOCT6100_TLV_TYPE_ANR_SNR_IMPROVEMENT_BOFF 84
#define cOCT6100_TLV_TYPE_ANR_AGRESSIVITY_BOFF 85
#define cOCT6100_TLV_TYPE_RIN_TONE_REM_CONF_BOFF_RW_ENABLE 86
#define cOCT6100_TLV_TYPE_RIN_TONE_REM_COUNTER_BOFF 87
#define cOCT6100_TLV_TYPE_AF_TAIL_DISP_VALUE_BOFF 88
#define cOCT6100_TLV_TYPE_POUCH_COUNTER_BOFF 89
#define cOCT6100_TLV_TYPE_AEC_TAIL_LENGTH_BOFF 90
#define cOCT6100_TLV_TYPE_MATRIX_DWORD_BASE 91
#define cOCT6100_TLV_TYPE_DEBUG_CHAN_STATS_BYTE_SIZE 92
#define cOCT6100_TLV_TYPE_RECORDED_PCM_EVENT_BYTE_SIZE 93
#define cOCT6100_TLV_TYPE_HOT_CHANNEL_SELECT_DWORD_BASE 94
#define cOCT6100_TLV_TYPE_IS_ISR_CALLED_BOFF 95
#define cOCT6100_TLV_TYPE_MATRIX_TIMESTAMP_DWORD_BASE 96
#define cOCT6100_TLV_TYPE_CHAN_MAIN_IO_STATS_OFFSET 100
#define cOCT6100_TLV_TYPE_CHAN_MAIN_IO_STATS_SIZE 101
#define cOCT6100_TLV_TYPE_AF_WRITE_PTR_BYTE_OFFSET 104
#define cOCT6100_TLV_TYPE_MATRIX_WP_DWORD_BASE 105
#define cOCT6100_TLV_TYPE_DEBUG_CHAN_LITE_STATS_BYTE_SIZE 106
#define cOCT6100_TLV_TYPE_MUSIC_PROTECTION_ENABLE_BOFF 107
#define cOCT6100_TLV_TYPE_IMAGE_TYPE 108
#define cOCT6100_TLV_TYPE_MAX_WIRELINE_CHANNELS 111
#define cOCT6100_TLV_TYPE_AF_EVENT_CB_SIZE 112
#define cOCT6100_TLV_TYPE_ZZ_ENERGY_CHAN_STATS_BOFF 116
#define cOCT6100_TLV_TYPE_YY_ENERGY_CHAN_STATS_BOFF 117
#define cOCT6100_TLV_TYPE_BUFFER_PLAYOUT_SKIP_IN_EVENTS 119
#define cOCT6100_TLV_TYPE_SOUT_NOISE_BLEACHING 121
#define cOCT6100_TLV_TYPE_DOUBLE_TALK_BEH_MODE 124
#define cOCT6100_TLV_TYPE_DOUBLE_TALK_BEH_MODE_BOFF 125
#define cOCT6100_TLV_TYPE_IDLE_CODE_DETECTION_BOFF 136
#define cOCT6100_TLV_TYPE_NLP_STATISTICS 138
#define cOCT6100_TLV_TYPE_RIN_ANR_VALUE 147
#define cOCT6100_TLV_TYPE_ADPCM_ENABLE 150
#define cOCT6100_TLV_TYPE_NUM_TONE_DETECTOR 151
#define cOCT6100_TLV_TYPE_CONFERENCING_ENABLE 152
#define cOCT6100_TLV_TYPE_MAX_NUMBER_OF_CHANNELS 153
#define cOCT6100_TLV_TYPE_DEBUG_CHAN_INDEX_VALUE 154
#define cOCT6100_TLV_TYPE_TONE_DETECTOR_PROFILE 155
#define cOCT6100_TLV_TYPE_TEST_MODE_ENABLE 156
#define cOCT6100_TLV_TYPE_MAX_TAIL_DISPLACEMENT 157
/* TLV length defines. */
#define cOCT6100_TLV_MIN_LENGTH_DEFAULT 4
#define cOCT6100_TLV_MAX_LENGTH_DEFAULT 0xFFFFFFFF
#define cOCT6100_TLV_MIN_LENGTH_VERSION_NUMBER 4
#define cOCT6100_TLV_MAX_LENGTH_VERSION_NUMBER 1016
#define cOCT6100_TLV_MIN_LENGTH_CUSTOMER_PROJECT_ID 4
#define cOCT6100_TLV_MAX_LENGTH_CUSTOMER_PROJECT_ID 4
#define cOCT6100_TLV_MIN_LENGTH_CH0_MAIN_BASE_ADDRESS 4
#define cOCT6100_TLV_MAX_LENGTH_CH0_MAIN_BASE_ADDRESS 4
#define cOCT6100_TLV_MIN_LENGTH_CH_MAIN_SIZE 4
#define cOCT6100_TLV_MAX_LENGTH_CH_MAIN_SIZE 4
#define cOCT6100_TLV_MIN_LENGTH_CH_MAIN_IO_OFFSET 4
#define cOCT6100_TLV_MAX_LENGTH_CH_MAIN_IO_OFFSET 4
#define cOCT6100_TLV_MIN_LENGTH_CH_MAIN_ZCB_OFFSET 4
#define cOCT6100_TLV_MAX_LENGTH_CH_MAIN_ZCB_OFFSET 4
#define cOCT6100_TLV_MIN_LENGTH_CH_MAIN_ZCB_SIZE 4
#define cOCT6100_TLV_MAX_LENGTH_CH_MAIN_ZCB_SIZE 4
#define cOCT6100_TLV_MIN_LENGTH_CH_MAIN_XCB_OFFSET 4
#define cOCT6100_TLV_MAX_LENGTH_CH_MAIN_XCB_OFFSET 4
#define cOCT6100_TLV_MIN_LENGTH_CH_MAIN_XCB_SIZE 4
#define cOCT6100_TLV_MAX_LENGTH_CH_MAIN_XCB_SIZE 4
#define cOCT6100_TLV_MIN_LENGTH_CH_MAIN_YCB_OFFSET 4
#define cOCT6100_TLV_MAX_LENGTH_CH_MAIN_YCB_OFFSET 4
#define cOCT6100_TLV_MIN_LENGTH_CH_MAIN_YCB_SIZE 4
#define cOCT6100_TLV_MAX_LENGTH_CH_MAIN_YCB_SIZE 4
#define cOCT6100_TLV_MIN_LENGTH_FREE_MEM_BASE_ADDRESS 4
#define cOCT6100_TLV_MAX_LENGTH_FREE_MEM_BASE_ADDRESS 4
#define cOCT6100_TLV_MIN_LENGTH_CH_ROOT_CONF_OFFSET 4
#define cOCT6100_TLV_MAX_LENGTH_CH_ROOT_CONF_OFFSET 4
#define cOCT6100_TLV_MIN_LENGTH_POA_CH_MAIN_ZPO_OFFSET 4
#define cOCT6100_TLV_MAX_LENGTH_POA_CH_MAIN_ZPO_OFFSET 4
#define cOCT6100_TLV_MIN_LENGTH_POA_CH_MAIN_ZPO_SIZE 4
#define cOCT6100_TLV_MAX_LENGTH_POA_CH_MAIN_ZPO_SIZE 4
#define cOCT6100_TLV_MIN_LENGTH_POA_CH_MAIN_YPO_OFFSET 4
#define cOCT6100_TLV_MAX_LENGTH_POA_CH_MAIN_YPO_OFFSET 4
#define cOCT6100_TLV_MIN_LENGTH_POA_CH_MAIN_YPO_SIZE 4
#define cOCT6100_TLV_MAX_LENGTH_POA_CH_MAIN_YPO_SIZE 4
#define cOCT6100_TLV_MIN_LENGTH_POA_BOFF_RW_ZWP 8
#define cOCT6100_TLV_MAX_LENGTH_POA_BOFF_RW_ZWP 8
#define cOCT6100_TLV_MIN_LENGTH_POA_BOFF_RW_ZIS 8
#define cOCT6100_TLV_MAX_LENGTH_POA_BOFF_RW_ZIS 8
#define cOCT6100_TLV_MIN_LENGTH_POA_BOFF_RW_ZSP 8
#define cOCT6100_TLV_MAX_LENGTH_POA_BOFF_RW_ZSP 8
#define cOCT6100_TLV_MIN_LENGTH_POA_BOFF_RW_YWP 8
#define cOCT6100_TLV_MAX_LENGTH_POA_BOFF_RW_YWP 8
#define cOCT6100_TLV_MIN_LENGTH_POA_BOFF_RW_YIS 8
#define cOCT6100_TLV_MAX_LENGTH_POA_BOFF_RW_YIS 8
#define cOCT6100_TLV_MIN_LENGTH_POA_BOFF_RW_YSP 8
#define cOCT6100_TLV_MAX_LENGTH_POA_BOFF_RW_YSP 8
#define cOCT6100_TLV_MIN_LENGTH_POA_BOFF_RO_ZRP 8
#define cOCT6100_TLV_MAX_LENGTH_POA_BOFF_RO_ZRP 8
#define cOCT6100_TLV_MIN_LENGTH_POA_BOFF_RO_YRP 8
#define cOCT6100_TLV_MAX_LENGTH_POA_BOFF_RO_YRP 8
#define cOCT6100_TLV_MIN_LENGTH_CNR_CONF_BOFF_RW_ENABLE 8
#define cOCT6100_TLV_MAX_LENGTH_CNR_CONF_BOFF_RW_ENABLE 8
#define cOCT6100_TLV_MIN_LENGTH_ANR_CONF_BOFF_RW_ENABLE 8
#define cOCT6100_TLV_MAX_LENGTH_ANR_CONF_BOFF_RW_ENABLE 8
#define cOCT6100_TLV_MIN_LENGTH_HZ_CONF_BOFF_RW_ENABLE 8
#define cOCT6100_TLV_MAX_LENGTH_HZ_CONF_BOFF_RW_ENABLE 8
#define cOCT6100_TLV_MIN_LENGTH_HX_CONF_BOFF_RW_ENABLE 8
#define cOCT6100_TLV_MAX_LENGTH_HX_CONF_BOFF_RW_ENABLE 8
#define cOCT6100_TLV_MIN_LENGTH_LCA_Z_CONF_BOFF_RW_GAIN 8
#define cOCT6100_TLV_MAX_LENGTH_LCA_Z_CONF_BOFF_RW_GAIN 8
#define cOCT6100_TLV_MIN_LENGTH_LCA_Y_CONF_BOFF_RW_GAIN 8
#define cOCT6100_TLV_MAX_LENGTH_LCA_Y_CONF_BOFF_RW_GAIN 8
#define cOCT6100_TLV_MIN_LENGTH_CNA_CONF_BOFF_RW_ENABLE 8
#define cOCT6100_TLV_MAX_LENGTH_CNA_CONF_BOFF_RW_ENABLE 8
#define cOCT6100_TLV_MIN_LENGTH_NOA_CONF_BOFF_RW_ENABLE 8
#define cOCT6100_TLV_MAX_LENGTH_NOA_CONF_BOFF_RW_ENABLE 8
#define cOCT6100_TLV_MIN_LENGTH_VFA_CONF_BOFF_RW_ENABLE 8
#define cOCT6100_TLV_MAX_LENGTH_VFA_CONF_BOFF_RW_ENABLE 8
#define cOCT6100_TLV_MIN_LENGTH_TLA_MAIN_IO_BOFF_RW_TAIL_DISP 8
#define cOCT6100_TLV_MAX_LENGTH_TLA_MAIN_IO_BOFF_RW_TAIL_DISP 8
#define cOCT6100_TLV_MIN_LENGTH_STATSA_MAIN_IO_BOFF_RO_EPC 8
#define cOCT6100_TLV_MAX_LENGTH_STATSA_MAIN_IO_BOFF_RO_EPC 8
#define cOCT6100_TLV_MIN_LENGTH_BOOTA_POUCH_BOFF_RW_BOOT_INST 8
#define cOCT6100_TLV_MAX_LENGTH_BOOTA_POUCH_BOFF_RW_BOOT_INST 8
#define cOCT6100_TLV_MIN_LENGTH_BOOTA_POUCH_BOFF_RW_BOOT_RESULT 8
#define cOCT6100_TLV_MAX_LENGTH_BOOTA_POUCH_BOFF_RW_BOOT_RESULT 8
#define cOCT6100_TLV_MIN_LENGTH_CHAN_MAIN_IO_STATS_OFFSET 4
#define cOCT6100_TLV_MAX_LENGTH_CHAN_MAIN_IO_STATS_OFFSET 4
#define cOCT6100_TLV_MIN_LENGTH_CHAN_MAIN_IO_STATS_SIZE 4
#define cOCT6100_TLV_MAX_LENGTH_CHAN_MAIN_IO_STATS_SIZE 4
#define cOCT6100_TLV_MIN_LENGTH_CDA_CONF_BOFF_RW_ENABLE 8
#define cOCT6100_TLV_MAX_LENGTH_CDA_CONF_BOFF_RW_ENABLE 8
#define cOCT6100_TLV_MIN_LENGTH_TDM_CONF_BOFF_RW_ENABLE 8
#define cOCT6100_TLV_MAX_LENGTH_TDM_CONF_BOFF_RW_ENABLE 8
#define cOCT6100_TLV_MIN_LENGTH_DIS_CONF_BOFF_RW_ENABLE 8
#define cOCT6100_TLV_MAX_LENGTH_DIS_CONF_BOFF_RW_ENABLE 8
#define cOCT6100_TLV_MIN_LENGTH_NT_CONF_BOFF_RW_ENABLE 8
#define cOCT6100_TLV_MAX_LENGTH_NT_CONF_BOFF_RW_ENABLE 8
#define cOCT6100_TLV_MIN_LENGTH_AEC_CONF_BOFF_RW_ENABLE 8
#define cOCT6100_TLV_MAX_LENGTH_AEC_CONF_BOFF_RW_ENABLE 8
#define cOCT6100_TLV_MIN_LENGTH_PCM_LEAK_CONF_BOFF_RW 8
#define cOCT6100_TLV_MAX_LENGTH_PCM_LEAK_CONF_BOFF_RW 8
#define cOCT6100_TLV_MIN_LENGTH_DEFAULT_ERL_CONF_BOFF_RW 8
#define cOCT6100_TLV_MAX_LENGTH_DEFAULT_ERL_CONF_BOFF_RW 8
#define cOCT6100_TLV_MIN_LENGTH_TONE_REM_CONF_BOFF_RW_ENABLE 8
#define cOCT6100_TLV_MAX_LENGTH_TONE_REM_CONF_BOFF_RW_ENABLE 8
#define cOCT6100_TLV_MIN_LENGTH_NLP_CONV_CAP_CONF_BOFF_RW 8
#define cOCT6100_TLV_MAX_LENGTH_NLP_CONV_CAP_CONF_BOFF_RW 8
#define cOCT6100_TLV_MIN_LENGTH_TLA_MAIN_IO_BOFF_RW_MAX_ECHO_POINT 8
#define cOCT6100_TLV_MAX_LENGTH_TLA_MAIN_IO_BOFF_RW_MAX_ECHO_POINT 8
#define cOCT6100_TLV_MIN_LENGTH_DOMINANT_SPEAKER_BOFF_RW_ENABLE 8
#define cOCT6100_TLV_MAX_LENGTH_DOMINANT_SPEAKER_BOFF_RW_ENABLE 8
#define cOCT6100_TLV_MIN_LENGTH_TAIL_DISP_CONF_BOFF_RW_ENABLE 8
#define cOCT6100_TLV_MAX_LENGTH_TAIL_DISP_CONF_BOFF_RW_ENABLE 8
#define cOCT6100_TLV_MIN_LENGTH_AEC_DEFAULT_ERL_BOFF_RW_ENABLE 8
#define cOCT6100_TLV_MAX_LENGTH_AEC_DEFAULT_ERL_BOFF_RW_ENABLE 8
#define cOCT6100_TLV_MIN_LENGTH_Z_ALC_TARGET_BOFF_RW_ENABLE 8
#define cOCT6100_TLV_MAX_LENGTH_Z_ALC_TARGET_BOFF_RW_ENABLE 8
#define cOCT6100_TLV_MIN_LENGTH_Y_ALC_TARGET_BOFF_RW_ENABLE 8
#define cOCT6100_TLV_MAX_LENGTH_Y_ALC_TARGET_BOFF_RW_ENABLE 8
#define cOCT6100_TLV_MIN_LENGTH_Z_HLC_TARGET_BOFF_RW_ENABLE 8
#define cOCT6100_TLV_MAX_LENGTH_Z_HLC_TARGET_BOFF_RW_ENABLE 8
#define cOCT6100_TLV_MIN_LENGTH_Y_HLC_TARGET_BOFF_RW_ENABLE 8
#define cOCT6100_TLV_MAX_LENGTH_Y_HLC_TARGET_BOFF_RW_ENABLE 8
#define cOCT6100_TLV_MIN_LENGTH_ALC_HLC_STATUS_BOFF_RW_ENABLE 8
#define cOCT6100_TLV_MAX_LENGTH_ALC_HLC_STATUS_BOFF_RW_ENABLE 8
#define cOCT6100_TLV_MIN_LENGTH_Z_PLAYOUT_HARD_SKIP_BOFF_RW 8
#define cOCT6100_TLV_MAX_LENGTH_Z_PLAYOUT_HARD_SKIP_BOFF_RW 8
#define cOCT6100_TLV_MIN_LENGTH_Y_PLAYOUT_HARD_SKIP_BOFF_RW 8
#define cOCT6100_TLV_MAX_LENGTH_Y_PLAYOUT_HARD_SKIP_BOFF_RW 8
#define cOCT6100_TLV_MIN_LENGTH_AFT_FIELD_BOFF_RW 8
#define cOCT6100_TLV_MAX_LENGTH_AFT_FIELD_BOFF_RW 8
#define cOCT6100_TLV_MIN_LENGTH_VOICE_DETECTED_STAT_BOFF_RW 8
#define cOCT6100_TLV_MAX_LENGTH_VOICE_DETECTED_STAT_BOFF_RW 8
#define cOCT6100_TLV_MIN_LENGTH_GAIN_APPLIED_RIN_STAT_BOFF_RW 8
#define cOCT6100_TLV_MAX_LENGTH_GAIN_APPLIED_RIN_STAT_BOFF_RW 8
#define cOCT6100_TLV_MIN_LENGTH_GAIN_APPLIED_SOUT_STAT_BOFF_RW 8
#define cOCT6100_TLV_MAX_LENGTH_GAIN_APPLIED_SOUT_STAT_BOFF_RW 8
#define cOCT6100_TLV_MIN_LENGTH_MAX_ADAPT_ALE_BOFF_RW 8
#define cOCT6100_TLV_MAX_LENGTH_MAX_ADAPT_ALE_BOFF_RW 8
#define cOCT6100_TLV_MIN_LENGTH_RIN_ANR_BOFF_RW 8
#define cOCT6100_TLV_MAX_LENGTH_RIN_ANR_BOFF_RW 8
#define cOCT6100_TLV_MIN_LENGTH_RIN_ANR_VALUE_RW 8
#define cOCT6100_TLV_MAX_LENGTH_RIN_ANR_VALUE_RW 8
#define cOCT6100_TLV_MIN_LENGTH_RIN_MUTE_BOFF_RW 8
#define cOCT6100_TLV_MAX_LENGTH_RIN_MUTE_BOFF_RW 8
#define cOCT6100_TLV_MIN_LENGTH_SIN_MUTE_BOFF_RW 8
#define cOCT6100_TLV_MAX_LENGTH_SIN_MUTE_BOFF_RW 8
#define cOCT6100_TLV_MIN_LENGTH_ANR_SNR_IMPROVEMENT_BOFF_RW 8
#define cOCT6100_TLV_MAX_LENGTH_ANR_SNR_IMPROVEMENT_BOFF_RW 8
#define cOCT6100_TLV_MIN_LENGTH_ANR_AGRESSIVITY_BOFF_RW 8
#define cOCT6100_TLV_MAX_LENGTH_ANR_AGRESSIVITY_BOFF_RW 8
#define cOCT6100_TLV_MIN_LENGTH_CHAN_TAIL_LENGTH_BOFF 8
#define cOCT6100_TLV_MAX_LENGTH_CHAN_TAIL_LENGTH_BOFF 8
#define cOCT6100_TLV_MIN_LENGTH_CHAN_VQE_TONE_DIS_BOFF 8
#define cOCT6100_TLV_MAX_LENGTH_CHAN_VQE_TONE_DIS_BOFF 8
#define cOCT6100_TLV_MIN_LENGTH_RIN_TONE_REM_CONF_BOFF_RW_ENABLE 8
#define cOCT6100_TLV_MAX_LENGTH_RIN_TONE_REM_CONF_BOFF_RW_ENABLE 8
#define cOCT6100_TLV_MIN_LENGTH_RIN_TONE_REM_COUNTER_BOFF_RW 8
#define cOCT6100_TLV_MAX_LENGTH_RIN_TONE_REM_COUNTER_BOFF_RW 8
#define cOCT6100_TLV_MIN_LENGTH_AF_TAIL_DISP_VALUE_BOFF 8
#define cOCT6100_TLV_MAX_LENGTH_AF_TAIL_DISP_VALUE_BOFF 8
#define cOCT6100_TLV_MIN_LENGTH_POUCH_COUNTER_BOFF 8
#define cOCT6100_TLV_MAX_LENGTH_POUCH_COUNTER_BOFF 8
#define cOCT6100_TLV_MIN_LENGTH_AEC_TAIL_BOFF 8
#define cOCT6100_TLV_MAX_LENGTH_AEC_TAIL_BOFF 8
#define cOCT6100_TLV_MIN_LENGTH_IS_ISR_CALLED_BOFF 8
#define cOCT6100_TLV_MAX_LENGTH_IS_ISR_CALLED_BOFF 8
#define cOCT6100_TLV_MIN_LENGTH_MUSIC_PROTECTION_ENABLE_BOFF 8
#define cOCT6100_TLV_MAX_LENGTH_MUSIC_PROTECTION_ENABLE_BOFF 8
#define cOCT6100_TLV_MIN_LENGTH_ZZ_ENERGY_CHAN_STATS_BOFF 8
#define cOCT6100_TLV_MAX_LENGTH_ZZ_ENERGY_CHAN_STATS_BOFF 8
#define cOCT6100_TLV_MIN_LENGTH_YY_ENERGY_CHAN_STATS_BOFF 8
#define cOCT6100_TLV_MAX_LENGTH_YY_ENERGY_CHAN_STATS_BOFF 8
#define cOCT6100_TLV_MIN_LENGTH_DOUBLE_TALK_BEH_MODE_BOFF 8
#define cOCT6100_TLV_MAX_LENGTH_DOUBLE_TALK_BEH_MODE_BOFF 8
#define cOCT6100_TLV_MIN_LENGTH_IDLE_CODE_DETECTION_BOFF 8
#define cOCT6100_TLV_MAX_LENGTH_IDLE_CODE_DETECTION_BOFF 8
#define cOCT6100_TLV_MIN_LENGTH_DEBUG_CHAN_INDEX_VALUE 4
#define cOCT6100_TLV_MAX_LENGTH_DEBUG_CHAN_INDEX_VALUE 4
#define cOCT6100_TLV_MIN_LENGTH_ADPCM_ENABLE 4
#define cOCT6100_TLV_MAX_LENGTH_ADPCM_ENABLE 4
#define cOCT6100_TLV_MIN_LENGTH_NUM_TONE_DETECTOR 4
#define cOCT6100_TLV_MAX_LENGTH_NUM_TONE_DETECTOR 4
#define cOCT6100_TLV_MIN_LENGTH_CONFERENCING_ENABLE 4
#define cOCT6100_TLV_MAX_LENGTH_CONFERENCING_ENABLE 4
#define cOCT6100_TLV_MIN_LENGTH_MAX_NUMBER_OF_CHANNELS 4
#define cOCT6100_TLV_MAX_LENGTH_MAX_NUMBER_OF_CHANNELS 4
#define cOCT6100_TLV_MIN_LENGTH_TONE_DETECTOR_PROFILE 4
#define cOCT6100_TLV_MAX_LENGTH_TONE_DETECTOR_PROFILE 4
#define cOCT6100_TLV_MIN_LENGTH_TEST_MODE_ENABLE 4
#define cOCT6100_TLV_MAX_LENGTH_TEST_MODE_ENABLE 4
#define cOCT6100_TLV_MIN_LENGTH_MAX_TAIL_DISPLACEMENT 4
#define cOCT6100_TLV_MAX_LENGTH_MAX_TAIL_DISPLACEMENT 4
#define cOCT6100_TLV_MIN_LENGTH_MATRIX_EVENT_SIZE 4
#define cOCT6100_TLV_MAX_LENGTH_MATRIX_EVENT_SIZE 4
#define cOCT6100_TLV_MIN_LENGTH_CNR_RW_ENABLE 4
#define cOCT6100_TLV_MAX_LENGTH_CNR_RW_ENABLE 4
#define cOCT6100_TLV_MIN_LENGTH_ANR_RW_ENABLE 4
#define cOCT6100_TLV_MAX_LENGTH_ANR_RW_ENABLE 4
#define cOCT6100_TLV_MIN_LENGTH_MAX_TAIL_LENGTH_RW_ENABLE 4
#define cOCT6100_TLV_MAX_LENGTH_MAX_TAIL_LENGTH_RW_ENABLE 4
#define cOCT6100_TLV_MIN_LENGTH_PLAYOUT_ENABLE 4
#define cOCT6100_TLV_MAX_LENGTH_PLAYOUT_ENABLE 4
#define cOCT6100_TLV_MIN_LENGTH_MUSIC_PROTECTION_RW_ENABLE 4
#define cOCT6100_TLV_MAX_LENGTH_MUSIC_PROTECTION_RW_ENABLE 4
#define cOCT6100_TLV_MIN_LENGTH_TONE_REMOVAL_ENABLE 4
#define cOCT6100_TLV_MAX_LENGTH_TONE_REMOVAL_ENABLE 4
#define cOCT6100_TLV_MIN_LENGTH_NUMBER_PLAYOUT_EVENTS 4
#define cOCT6100_TLV_MAX_LENGTH_NUMBER_PLAYOUT_EVENTS 4
#define cOCT6100_TLV_MIN_LENGTH_MATRIX_DWORD_BASE 4
#define cOCT6100_TLV_MAX_LENGTH_MATRIX_DWORD_BASE 4
#define cOCT6100_TLV_MIN_LENGTH_DEBUG_CHAN_STATS_BYTE_SIZE 4
#define cOCT6100_TLV_MAX_LENGTH_DEBUG_CHAN_STATS_BYTE_SIZE 4
#define cOCT6100_TLV_MIN_LENGTH_HOT_CHANNEL_SELECT_DWORD_BASE 4
#define cOCT6100_TLV_MAX_LENGTH_HOT_CHANNEL_SELECT_DWORD_BASE 4
#define cOCT6100_TLV_MIN_LENGTH_TIMESTAMP_DWORD_BASE 4
#define cOCT6100_TLV_MAX_LENGTH_TIMESTAMP_DWORD_BASE 4
#define cOCT6100_TLV_MIN_LENGTH_AF_WRITE_PTR_BYTE_OFFSET 4
#define cOCT6100_TLV_MAX_LENGTH_AF_WRITE_PTR_BYTE_OFFSET 4
#define cOCT6100_TLV_MIN_LENGTH_RECORDED_PCM_EVENT_BYTE_SIZE 4
#define cOCT6100_TLV_MAX_LENGTH_RECORDED_PCM_EVENT_BYTE_SIZE 4
#define cOCT6100_TLV_MIN_LENGTH_MATRIX_WP_DWORD_BASE 4
#define cOCT6100_TLV_MAX_LENGTH_MATRIX_WP_DWORD_BASE 4
#define cOCT6100_TLV_MIN_LENGTH_DEBUG_CHAN_LITE_STATS_BYTE_SIZE 4
#define cOCT6100_TLV_MAX_LENGTH_DEBUG_CHAN_LITE_STATS_BYTE_SIZE 4
#define cOCT6100_TLV_MIN_LENGTH_IMAGE_TYPE 4
#define cOCT6100_TLV_MAX_LENGTH_IMAGE_TYPE 4
#define cOCT6100_TLV_MIN_LENGTH_MAX_WIRELINE_CHANNELS 4
#define cOCT6100_TLV_MAX_LENGTH_MAX_WIRELINE_CHANNELS 4
#define cOCT6100_TLV_MIN_LENGTH_AF_EVENT_CB_BYTE_SIZE 4
#define cOCT6100_TLV_MAX_LENGTH_AF_EVENT_CB_BYTE_SIZE 4
#define cOCT6100_TLV_MIN_LENGTH_BUFFER_PLAYOUT_SKIP_IN_EVENTS 4
#define cOCT6100_TLV_MAX_LENGTH_BUFFER_PLAYOUT_SKIP_IN_EVENTS 4
#define cOCT6100_TLV_MIN_LENGTH_DOUBLE_TALK_BEH_MODE 4
#define cOCT6100_TLV_MAX_LENGTH_DOUBLE_TALK_BEH_MODE 4
#define cOCT6100_TLV_MIN_LENGTH_SOUT_NOISE_BLEACHING 4
#define cOCT6100_TLV_MAX_LENGTH_SOUT_NOISE_BLEACHING 4
#define cOCT6100_TLV_MIN_LENGTH_IDLE_CODE_DETECTION 4
#define cOCT6100_TLV_MAX_LENGTH_IDLE_CODE_DETECTION 4
#define cOCT6100_TLV_MIN_LENGTH_NLP_STATISTICS 4
#define cOCT6100_TLV_MAX_LENGTH_NLP_STATISTICS 4
/***************************** TYPES ***************************************/
/************************** FUNCTION PROTOTYPES *****************************/
UINT32 Oct6100ApiProcessTlvRegion(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance );
UINT32 Oct6100ApiInterpretTlvEntry(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT32 f_ulTlvFieldType,
IN UINT32 f_ulTlvFieldLength,
IN UINT32 f_ulTlvValueAddress );
UINT32 Oct6100ApiTlvCheckLengthField(
IN OUT UINT32 f_ulTlvFieldLength,
IN UINT32 f_ulMinLengthValue,
IN UINT32 f_ulMaxLengthValue );
UINT32 Oct6100ApiTlvReadDword(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT32 f_ulAddress,
OUT PUINT32 f_pulReadData );
UINT32 Oct6100ApiTlvReadBitOffsetStruct(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT32 f_ulAddress,
OUT tPOCT6100_TLV_OFFSET f_pBitOffsetStruct );
#endif /* __OCT6100_TLV_PRIV_H__ */

View File

@ -0,0 +1,111 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_tone_detection_priv.h
Copyright (c) 2001-2007 Octasic Inc.
Description:
File containing all private defines, macros, structures and prototypes
pertaining to the file oct6100_tone_detection.c. All elements defined in
this file are for private usage of the API. All public elements are
defined in the oct6100_tone_detection_pub.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-PR49 $
$Octasic_Revision: 14 $
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#ifndef __OCT6100_TONE_DETECTION_PRIV_H__
#define __OCT6100_TONE_DETECTION_PRIV_H__
/***************************** INCLUDE FILES *******************************/
/***************************** DEFINES *************************************/
/***************************** TYPES ***************************************/
/************************** FUNCTION PROTOTYPES *****************************/
UINT32 Oct6100ToneDetectionEnableSer(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_TONE_DETECTION_ENABLE f_pToneDetectEnable );
UINT32 Oct6100ApiCheckToneEnableParams(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_TONE_DETECTION_ENABLE f_pToneDetectEnable,
OUT PUINT32 f_pulChannelIndex,
OUT PUINT32 f_pulToneEventNumber,
OUT PUINT32 f_pulExtToneChanIndex );
UINT32 Oct6100ApiWriteToneDetectEvent(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT32 f_ulChannelIndex,
IN UINT32 f_ulToneEventNumber,
IN UINT32 f_ulExtToneChanIndex );
UINT32 Oct6100ApiUpdateChanToneDetectEntry (
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT32 f_ulChannelIndex,
IN UINT32 f_ulToneEventNumber,
IN UINT32 f_ulExtToneChanIndex );
UINT32 Oct6100ToneDetectionDisableSer(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN OUT tPOCT6100_TONE_DETECTION_DISABLE f_pToneDetectDisable );
UINT32 Oct6100ApiAssertToneDetectionParams(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_TONE_DETECTION_DISABLE f_pToneDetectDisable,
OUT PUINT32 f_pulChannelIndex,
OUT PUINT32 f_pulToneEventNumber,
OUT PUINT32 f_pulExtToneChanIndex,
OUT PBOOL f_pfDisableAll );
UINT32 Oct6100ApiClearToneDetectionEvent(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT32 f_ulChannelIndex,
IN UINT32 f_ulToneEventNumber,
IN UINT32 f_ulExtToneChanIndex,
IN BOOL f_fDisableAll );
UINT32 Oct6100ApiReleaseToneDetectionEvent(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT32 f_ulChannelIndex,
IN UINT32 f_ulToneEventNumber,
IN UINT32 f_ulExtToneChanIndex,
IN BOOL f_fDisableAll );
UINT32 Oct6100ApiIsSSTone(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT32 f_ulToneEventNumber,
OUT PBOOL f_fSSTone );
UINT32 Oct6100ApiIs2100Tone(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT32 f_ulToneEventNumber,
OUT PBOOL f_fIs2100Tone );
#endif /* __OCT6100_TONE_DETECTION_PRIV_H__ */

View File

@ -0,0 +1,126 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_tsi_cnct_priv.h
Copyright (c) 2001-2007 Octasic Inc.
Description:
File containing all private defines, macros, structures and prototypes
pertaining to the file oct6100_tsi_cnct.c. All elements defined in
this file are for private usage of the API. All public elements are
defined in the oct6100_tsi_cnct_pub.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-PR49 $
$Octasic_Revision: 14 $
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#ifndef __OCT6100_TSI_CNCT_PRIV_H__
#define __OCT6100_TSI_CNCT_PRIV_H__
/***************************** INCLUDE FILES *******************************/
/***************************** DEFINES *************************************/
/* TSI connection list pointer macros. */
#define mOCT6100_GET_TSI_CNCT_LIST_PNT( pSharedInfo, pList ) \
pList = ( tPOCT6100_API_TSI_CNCT )(( PUINT8 )pSharedInfo + pSharedInfo->ulTsiCnctListOfst );
#define mOCT6100_GET_TSI_CNCT_ENTRY_PNT( pSharedInfo, pEntry, ulIndex ) \
pEntry = (( tPOCT6100_API_TSI_CNCT )(( PUINT8 )pSharedInfo + pSharedInfo->ulTsiCnctListOfst)) + ulIndex;
#define mOCT6100_GET_TSI_CNCT_ALLOC_PNT( pSharedInfo, pAlloc ) \
pAlloc = ( PVOID )(( PUINT8 )pSharedInfo + pSharedInfo->ulTsiCnctAllocOfst);
/***************************** TYPES ***************************************/
/************************** FUNCTION PROTOTYPES *****************************/
UINT32 Oct6100ApiGetTsiCnctSwSizes(
IN tPOCT6100_CHIP_OPEN f_pOpenChip,
OUT tPOCT6100_API_INSTANCE_SIZES f_pInstSizes );
UINT32 Oct6100ApiTsiCnctSwInit(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance );
UINT32 Oct6100TsiCnctOpenSer(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN OUT tPOCT6100_TSI_CNCT_OPEN f_pTsiCnctOpen );
UINT32 Oct6100ApiCheckTsiParams(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_TSI_CNCT_OPEN f_pTsiCnctOpen );
UINT32 Oct6100ApiReserveTsiResources(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_TSI_CNCT_OPEN f_pTsiCnctOpen,
OUT PUINT16 f_pusTsiChanIndex,
OUT PUINT16 f_pusTsiMemIndex,
OUT PUINT16 f_pusInputTsstIndex,
OUT PUINT16 f_pusOutputTsstIndex );
UINT32 Oct6100ApiWriteTsiStructs(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_TSI_CNCT_OPEN f_pTsiCnctOpen,
IN UINT16 f_usTsiMemIndex,
IN UINT16 f_usInputTsstIndex,
IN UINT16 f_usOutputTsstIndex );
UINT32 Oct6100ApiUpdateTsiEntry(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN OUT tPOCT6100_TSI_CNCT_OPEN f_pTsiCnctOpen,
IN UINT16 f_usTsiChanIndex,
IN UINT16 f_usTsiMemIndex,
IN UINT16 f_usInputTsstIndex,
IN UINT16 f_usOutputTsstIndex );
UINT32 Oct6100TsiCnctCloseSer(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN OUT tPOCT6100_TSI_CNCT_CLOSE f_pTsiCnctClose );
UINT32 Oct6100ApiAssertTsiParams(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN tPOCT6100_TSI_CNCT_CLOSE f_pTsiCnctClose,
OUT PUINT16 f_pusTsiChanIndex,
OUT PUINT16 f_pusTsiMemIndex,
OUT PUINT16 f_pusInputTsstIndex,
OUT PUINT16 f_pusOutputTsstIndex );
UINT32 Oct6100ApiInvalidateTsiStructs(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT16 f_usInputTsstIndex,
IN UINT16 f_usOutputTsstIndex );
UINT32 Oct6100ApiReleaseTsiResources(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT16 f_usTsiChanIndex,
IN UINT16 f_usTsiMemIndex );
UINT32 Oct6100ApiReserveTsiCnctEntry(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
OUT PUINT16 f_pusTsiChanIndex );
UINT32 Oct6100ApiReleaseTsiCnctEntry(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT16 f_usTsiChanIndex );
#endif /* __OCT6100_TSI_CNCT_PRIV_H__ */

View File

@ -0,0 +1,89 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_tsst_priv.h
Copyright (c) 2001-2007 Octasic Inc.
Description:
File containing all private defines, macros, structures and prototypes
pertaining to the file oct6100_tsst.c. All elements defined in
this file are for private 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-PR49 $
$Octasic_Revision: 14 $
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#ifndef __OCT6100_TSST_PRIV_H__
#define __OCT6100_TSST_PRIV_H__
/***************************** INCLUDE FILES *******************************/
/***************************** DEFINES *************************************/
/* TSST allocation and serialization pointer macros. */
#define mOCT6100_GET_TSST_ALLOC_PNT( pSharedInfo, pAlloc ) \
pAlloc = ( PUINT32 )(( PUINT8 )pSharedInfo + pSharedInfo->ulTsstAllocOfst);
#define mOCT6100_GET_TSST_LIST_PNT( pSharedInfo, pList ) \
pList = ( tPOCT6100_API_TSST_ENTRY )(( PUINT8 )pSharedInfo + pSharedInfo->ulTsstListOfst );
#define mOCT6100_GET_TSST_LIST_ENTRY_PNT( pSharedInfo, pEntry, ulIndex ) \
pEntry = (( tPOCT6100_API_TSST_ENTRY )(( PUINT8 )pSharedInfo + pSharedInfo->ulTsstListOfst)) + ulIndex;
#define mOCT6100_GET_TSST_LIST_ALLOC_PNT( pSharedInfo, pAlloc ) \
pAlloc = ( PVOID )(( PUINT8 )pSharedInfo + pSharedInfo->ulTsstListAllocOfst);
/***************************** TYPES ***************************************/
/************************** FUNCTION PROTOTYPES *****************************/
UINT32 Oct6100ApiGetTsstSwSizes(
OUT tPOCT6100_API_INSTANCE_SIZES f_pInstSizes );
UINT32 Oct6100ApiTsstSwInit(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance );
UINT32 Oct6100ApiValidateTsst(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT32 f_ulNumTssts,
IN UINT32 f_ulTimeslot,
IN UINT32 f_ulStream,
IN UINT32 f_ulDirection );
UINT32 Oct6100ApiReserveTsst(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT32 f_ulTimeslot,
IN UINT32 f_ulStream,
IN UINT32 f_ulNumTsst,
IN UINT32 f_ulDirection,
OUT PUINT16 f_pusTsstMemIndex,
OUT PUINT16 f_pusTsstListIndex );
UINT32 Oct6100ApiReleaseTsst(
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
IN UINT32 f_ulTimeslot,
IN UINT32 f_ulStream,
IN UINT32 f_ulNumTsst,
IN UINT32 f_ulDirection,
IN UINT16 f_usTsstListIndex );
#endif /* __OCT6100_TSST_PRIV_H__ */

View File

@ -0,0 +1,39 @@
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_version.h
Copyright (c) 2001-2007 Octasic Inc.
Description:
This file contains the version of API. To obtain that version
number, the user must call the API function Oct6100ApiGetVersion().
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-PR49 $
$Octasic_Revision: 52 $
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#ifndef __OCT6100_VERSION_H__
#define __OCT6100_VERSION_H__
/* String version of the OCT6100 API.*/
#define cOCT6100_API_VERSION "OCT6100API-01.00-PR49"
#endif /* __OCT6100_VERSION_H__ */

46
xpp/oct612x/test.c Normal file
View File

@ -0,0 +1,46 @@
/*
NOTE: This is not intended to be a functional program. Its only purpose
is to act as a tool to find out what portions of the Octasic API kit we
actually need to link into our drivers. As such, it references every API
call that the actual drivers use, and we let the compiler and linker tell
us what parts of each API module are actually needed to successfully
build this program.
*/
#include "oct6100api/oct6100_api.h"
int main(int argc, char **argv)
{
tPOCT6100_INSTANCE_API pApiInstance;
UINT32 ulResult;
tOCT6100_CHANNEL_MODIFY modify;
tOCT6100_INTERRUPT_FLAGS InterruptFlags;
tOCT6100_TONE_EVENT tonefound;
tOCT6100_EVENT_GET_TONE tonesearch;
tOCT6100_CHIP_OPEN ChipOpen;
tOCT6100_GET_INSTANCE_SIZE InstanceSize;
tOCT6100_CHANNEL_OPEN ChannelOpen;
tOCT6100_TONE_DETECTION_ENABLE enable;
tOCT6100_CHIP_CLOSE ChipClose;
tOCT6100_API_GET_CAPACITY_PINS CapacityPins;
Oct6100ChannelModifyDef(&modify);
ulResult = Oct6100ChannelModify(pApiInstance, &modify);
Oct6100InterruptServiceRoutineDef(&InterruptFlags);
Oct6100InterruptServiceRoutine(pApiInstance, &InterruptFlags);
Oct6100EventGetToneDef(&tonesearch);
ulResult = Oct6100EventGetTone(pApiInstance, &tonesearch);
Oct6100ChipOpenDef(&ChipOpen);
Oct6100GetInstanceSizeDef(&InstanceSize);
ulResult = Oct6100GetInstanceSize(&ChipOpen, &InstanceSize);
ulResult = Oct6100ChipOpen(pApiInstance, &ChipOpen);
Oct6100ChannelOpenDef(&ChannelOpen);
ulResult = Oct6100ChannelOpen(pApiInstance, &ChannelOpen);
Oct6100ToneDetectionEnableDef(&enable);
Oct6100ToneDetectionEnable(pApiInstance, &enable);
Oct6100ChipCloseDef(&ChipClose);
ulResult = Oct6100ChipClose(pApiInstance, &ChipClose);
Oct6100ApiGetCapacityPinsDef(&CapacityPins);
ulResult = Oct6100ApiGetCapacityPins(&CapacityPins);
return 0;
}