1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
33 /*!
34 * ======== IUNIVERSAL ========
35 * IUNIVERSAL-compliant universal algorithm interface
36 *
37 * All IUNIVERSAL-compliant algorithm modules must implement this
38 * interface.
39 */
40 metaonly interface IUNIVERSAL inherits ti.sdo.ce.ICodec
41 {
42 override config String serverFxns = "UNIVERSAL_SKEL";
43 override config String stubFxns = "UNIVERSAL_STUBS";
44
45 override readonly config Int rpcProtocolVersion = 1;
46
47 override readonly config Bool codecClassConfigurable = true;
48
49 /*!
50 * ======== manageInBufsCache =======
51 * Codec Class configuration param
52 *
53 * Determines whether cache will be managed on the DSP for each of the
54 * (up to 16) input buffers given to the codec's "process()" call.
55 *
56 * If this flag is set to "false" for one or more
57 * elements, the cache for the corresponding input buffer will not be
58 * invalidated before the process() call. Skipping unnecessary cache
59 * invalidation improves performance, especially if a buffer is large.
60 *
61 * (If element "i" in this array is set to true, cache for inBufs[i] will
62 * be invalidated only if the buffer is supplied, of course.)
63 *
64 * For example, if you know that a particular codec of this class always
65 * reads the data from its inBufs[1] buffer only via DMA, you can set
66 * manageInBufsCache[1] = false;
67 */
68 config Bool manageInBufsCache[ 16 ] = [
69 true, true, true, true, true, true, true, true,
70 true, true, true, true, true, true, true, true,
71 ];
72
73 /*!
74 * ======== manageInOutBufsCache =======
75 * Codec Class configuration param
76 *
77 * Determines whether cache will be managed on the DSP for each of the
78 * (up to 16) InOut buffers given to the codec's "process()" call.
79 *
80 * If this flag is set to "false" for one or more
81 * elements, the cache for the corresponding input buffer will not be
82 * invalidated before the process() call. Skipping unnecessary cache
83 * invalidation improves performance, especially if a buffer is large.
84 *
85 * (If element "i" in this array is set to true, cache for inOutBufs[i]
86 * will be invalidated only if the buffer is supplied, of course.)
87 *
88 * For example, if you know that a particular codec of this class always
89 * reads and writes the data in its inOutBufs[i] buffer only via DMA, you
90 * can set manageInOutBufsCache[i] = false;
91 */
92 config Bool manageInOutBufsCache[ 16 ] = [
93 true, true, true, true, true, true, true, true,
94 true, true, true, true, true, true, true, true,
95 ];
96
97 /*!
98 * ======== manageOutBufsCache =======
99 * Codec Class configuration param
100 *
101 * Determines whether cache will be managed on the DSP for each of the
102 * (up to 16) output buffers given to the codec's "process()" call.
103 *
104 * If this flag is set to "false" for one or more
105 * elements, the cache for the corresponding output buffer will not be
106 * invalidated before the process() call.
107 * Skipping unnecessary cache invalidation improves
108 * performance. Whether the buffer will be written back after the process()
109 * call depends on the algorithm and cannot be controlled here.
110 *
111 * For example, if you know that a particular codec of this class always
112 * writes the data to its outBufs[2] buffer only via DMA, you can set
113 * manageOutBufsCache[2] = false;
114 */
115 config Bool manageOutBufsCache[ 16 ] = [
116 true, true, true, true, true, true, true, true,
117 true, true, true, true, true, true, true, true,
118 ];
119 }
120 121 122 123
124