| /* |
| * Copyright (c) 2011 Mindspeed Technologies, Inc. |
| * |
| * This program 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. |
| |
| * This program 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 this program; if not, write to the Free Software |
| * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
| * |
| * |
| */ |
| #ifndef _UTIL_DMEM_STORAGE_H_ |
| #define _UTIL_DMEM_STORAGE_H_ |
| |
| |
| #include "module_rtp_relay.h" |
| #include "voicebuf.h" |
| |
| #define MEMCPY_TMP_BUF_SIZE 128 |
| struct util_buffers_t { |
| U8 transmit_buffer[128] __attribute__((aligned(8))); |
| |
| union { |
| struct { |
| RTPflow rtpflow __attribute__((aligned(32))); /* sized to handle up to one flow entry */ |
| RTPCall rtpcall __attribute__((aligned(32)));/* sized to handle up to two special packet buffers */ |
| U8 UTIL_SOCKET_BUF[256] __attribute__((aligned(32))); /* sized to handle up to one IPv6 socket entry */ |
| } rtp_relay; |
| |
| struct { |
| U8 UTIL_VOICEBUF[VOICEBUF_PAYLOAD_LEN] __attribute__((aligned(8))); /* sized to handle up to one frame */ |
| struct voice_buffer_reduced buffer_reduced __attribute__((aligned(8))); |
| struct voice_source source __attribute__((aligned(8))); |
| } voicebuf; |
| |
| struct { |
| U8 memcpy_tmp_buf[MEMCPY_TMP_BUF_SIZE] __attribute__((aligned(8))); |
| U8 frag_mtd_cache[48] __attribute__((aligned(8))); /* Should be atleast sizeof(struct _tFragIP4) */ |
| } fragbuf; |
| }; |
| }; |
| |
| extern struct util_buffers_t util_buffers; |
| |
| #define RTPFLOW_BUFFER (&util_buffers.rtp_relay.rtpflow) |
| #define RTPCALL_BUFFER (&util_buffers.rtp_relay.rtpcall) |
| #define SOCKET_BUFFER() ((PVOID)util_buffers.rtp_relay.UTIL_SOCKET_BUF) |
| #define RTPQOS_BUFFER (&util_buffers.rtp_relay.UTIL_SOCKET_BUF) |
| |
| #define VOICEBUF_PAYLOAD (util_buffers.voicebuf.UTIL_VOICEBUF) |
| #define VOICEBUF_BUF_ENTRY (&util_buffers.voicebuf.buffer_reduced) |
| #define VOICEBUF_SOURCE_ENTRY (&util_buffers.voicebuf.source) |
| |
| #define MEMCPY_TMP_BUF (&util_buffers.fragbuf.memcpy_tmp_buf[0]) |
| #define FRAG_MTD_CACHE ((void *)&util_buffers.fragbuf.frag_mtd_cache) |
| |
| #endif /* _UTIL_DMEM_STORAGE_H_ */ |