Added 64bit Linux target (x86_64), also fixed compilation warnings when compiling for this target
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@624 74dad513-b988-da41-8d7b-12977e46ad98
This commit is contained in:
parent
b699fe28f2
commit
7db431e40c
|
@ -0,0 +1,4 @@
|
|||
export M_CFLAGS := $(CC_DEF)PJ_M_X86_64=1
|
||||
export M_CXXFLAGS :=
|
||||
export M_LDFLAGS :=
|
||||
export M_SOURCES :=
|
|
@ -11,6 +11,8 @@ if echo $MACHINE | grep sun4u > /dev/null; then
|
|||
MACHINE_NAME=sparc
|
||||
elif echo $MACHINE | grep i.86 > /dev/null; then
|
||||
MACHINE_NAME=i386
|
||||
elif echo $MACHINE | grep x86_64 > /dev/null; then
|
||||
MACHINE_NAME=x86_64
|
||||
elif echo $MACHINE | grep alpha > /dev/null; then
|
||||
MACHINE_NAME=alpha
|
||||
elif echo $MACHINE | grep Mac > /dev/null; then
|
||||
|
|
|
@ -0,0 +1,35 @@
|
|||
/* $Id$ */
|
||||
/*
|
||||
* Copyright (C)2003-2006 Benny Prijono <benny@prijono.org>
|
||||
*
|
||||
* 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __PJ_COMPAT_M_x86_64_H__
|
||||
#define __PJ_COMPAT_M_x86_64_H__
|
||||
|
||||
/**
|
||||
* @file m_i386.h
|
||||
* @brief Describes 64bit x86 Intel/AMD family processor specifics.
|
||||
*/
|
||||
|
||||
#define PJ_M_NAME "x86_64"
|
||||
|
||||
#define PJ_HAS_PENTIUM 1
|
||||
#define PJ_IS_LITTLE_ENDIAN 1
|
||||
#define PJ_IS_BIG_ENDIAN 0
|
||||
|
||||
|
||||
#endif /* __PJ_COMPAT_M_x86_64_H__ */
|
||||
|
|
@ -65,6 +65,8 @@
|
|||
*/
|
||||
#if defined (PJ_M_I386) && PJ_M_I386 != 0
|
||||
# include <pj/compat/m_i386.h>
|
||||
#elif defined (PJ_M_X86_64) && PJ_M_X86_64 != 0
|
||||
# include <pj/compat/m_x86_64.h>
|
||||
#elif defined (PJ_M_M68K) && PJ_M_M68K != 0
|
||||
# include <pj/compat/m_m68k.h>
|
||||
#elif defined (PJ_M_ALPHA) && PJ_M_ALPHA != 0
|
||||
|
|
|
@ -208,7 +208,7 @@ void ioqueue_dispatch_write_event(pj_ioqueue_t *ioqueue, pj_ioqueue_key_t *h)
|
|||
*/
|
||||
{
|
||||
int value;
|
||||
socklen_t vallen = sizeof(value);
|
||||
int vallen = sizeof(value);
|
||||
int gs_rc = pj_sock_getsockopt(h->fd, SOL_SOCKET, SO_ERROR,
|
||||
&value, &vallen);
|
||||
if (gs_rc != 0) {
|
||||
|
@ -528,7 +528,7 @@ void ioqueue_dispatch_exception_event( pj_ioqueue_t *ioqueue,
|
|||
pj_status_t status = -1;
|
||||
#if (defined(PJ_HAS_SO_ERROR) && PJ_HAS_SO_ERROR!=0)
|
||||
int value;
|
||||
socklen_t vallen = sizeof(value);
|
||||
int vallen = sizeof(value);
|
||||
int gs_rc = pj_sock_getsockopt(h->fd, SOL_SOCKET, SO_ERROR,
|
||||
&value, &vallen);
|
||||
if (gs_rc == 0) {
|
||||
|
|
|
@ -175,7 +175,7 @@ static pj_pool_t* cpool_create_pool(pj_pool_factory *pf,
|
|||
pj_list_insert_before( &cp->used_list, pool );
|
||||
|
||||
/* Mark factory data */
|
||||
pool->factory_data = (void*) idx;
|
||||
pool->factory_data = (void*) (long) idx;
|
||||
|
||||
/* Increment used count. */
|
||||
++cp->used_count;
|
||||
|
@ -225,7 +225,7 @@ static void cpool_release_pool( pj_pool_factory *pf, pj_pool_t *pool)
|
|||
/*
|
||||
* Otherwise put the pool in our recycle list.
|
||||
*/
|
||||
i = (unsigned)pool->factory_data;
|
||||
i = (unsigned) (unsigned long) pool->factory_data;
|
||||
|
||||
pj_assert(i<PJ_CACHING_POOL_ARRAY_SIZE);
|
||||
if (i >= PJ_CACHING_POOL_ARRAY_SIZE ) {
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
|
||||
#
|
||||
# We need to define PA_LITTLE_ENDIAN when compiling PortAudio on Linux x86_64
|
||||
#
|
||||
|
||||
export M_CFLAGS += $(CC_DEF)PA_LITTLE_ENDIAN
|
|
@ -504,10 +504,13 @@ static pj_bool_t mod_responder_on_rx_request(pjsip_rx_data *rdata)
|
|||
const pj_str_t reason = pj_str("Not expecting request at this URI");
|
||||
|
||||
/*
|
||||
* Respond any requests with 500.
|
||||
* Respond any requests (except ACK!) with 500.
|
||||
*/
|
||||
pjsip_endpt_respond_stateless(app.sip_endpt, rdata, 500, &reason,
|
||||
NULL, NULL);
|
||||
if (rdata->msg_info.msg->line.req.method.id != PJSIP_ACK_METHOD) {
|
||||
pjsip_endpt_respond_stateless(app.sip_endpt, rdata, 500, &reason,
|
||||
NULL, NULL);
|
||||
}
|
||||
|
||||
return PJ_TRUE;
|
||||
}
|
||||
|
||||
|
@ -1313,7 +1316,7 @@ static pj_status_t submit_job(void)
|
|||
static int client_thread(void *arg)
|
||||
{
|
||||
pj_time_val end_time, last_report, now;
|
||||
unsigned thread_index = (unsigned)arg;
|
||||
unsigned thread_index = (unsigned)(long)arg;
|
||||
unsigned cycle = 0, last_cycle = 0;
|
||||
|
||||
pj_thread_sleep(100);
|
||||
|
@ -1470,7 +1473,7 @@ static const char *good_number(char *buf, pj_int32_t val)
|
|||
static int server_thread(void *arg)
|
||||
{
|
||||
pj_time_val timeout = { 0, 1 };
|
||||
unsigned thread_index = (unsigned)arg;
|
||||
unsigned thread_index = (unsigned)(long)arg;
|
||||
pj_time_val last_report, next_report;
|
||||
|
||||
pj_gettimeofday(&last_report);
|
||||
|
@ -1606,8 +1609,8 @@ int main(int argc, char *argv[])
|
|||
app.client.job_window);
|
||||
|
||||
for (i=0; i<app.thread_count; ++i) {
|
||||
status = pj_thread_create(app.pool, NULL, &client_thread, (void*)i,
|
||||
0, 0, &app.thread[i]);
|
||||
status = pj_thread_create(app.pool, NULL, &client_thread,
|
||||
(void*)(long)i, 0, 0, &app.thread[i]);
|
||||
if (status != PJ_SUCCESS) {
|
||||
app_perror(THIS_FILE, "Unable to create thread", status);
|
||||
return 1;
|
||||
|
@ -1715,8 +1718,8 @@ int main(int argc, char *argv[])
|
|||
printf("INVITE with non-matching user part will be handled call-statefully\n");
|
||||
|
||||
for (i=0; i<app.thread_count; ++i) {
|
||||
status = pj_thread_create(app.pool, NULL, &server_thread, (void*)i,
|
||||
0, 0, &app.thread[i]);
|
||||
status = pj_thread_create(app.pool, NULL, &server_thread,
|
||||
(void*)(long)i, 0, 0, &app.thread[i]);
|
||||
if (status != PJ_SUCCESS) {
|
||||
app_perror(THIS_FILE, "Unable to create thread", status);
|
||||
return 1;
|
||||
|
|
|
@ -86,7 +86,7 @@ static void init_rdata(struct udp_transport *tp, unsigned rdata_index,
|
|||
/* Init tp_info part. */
|
||||
rdata->tp_info.pool = pool;
|
||||
rdata->tp_info.transport = &tp->base;
|
||||
rdata->tp_info.tp_data = (void*) rdata_index;
|
||||
rdata->tp_info.tp_data = (void*)(long)rdata_index;
|
||||
rdata->tp_info.op_key.rdata = rdata;
|
||||
pj_ioqueue_op_key_init(&rdata->tp_info.op_key.op_key,
|
||||
sizeof(pj_ioqueue_op_key_t));
|
||||
|
@ -190,7 +190,7 @@ static void udp_on_read_complete( pj_ioqueue_key_t *key,
|
|||
unsigned rdata_index;
|
||||
|
||||
rdata_tp = (struct udp_transport*)rdata->tp_info.transport;
|
||||
rdata_index = (unsigned)rdata->tp_info.tp_data;
|
||||
rdata_index = (unsigned)(unsigned long)rdata->tp_info.tp_data;
|
||||
|
||||
pj_pool_reset(rdata_pool);
|
||||
init_rdata(rdata_tp, rdata_index, rdata_pool, &rdata);
|
||||
|
|
|
@ -539,13 +539,19 @@ static pj_bool_t mod_ua_on_rx_request(pjsip_rx_data *rdata)
|
|||
/* Not found. Mulfunction UAC? */
|
||||
pj_mutex_unlock(mod_ua.mutex);
|
||||
|
||||
PJ_LOG(5,(THIS_FILE,
|
||||
"Unable to find dialog for %s, answering with 481",
|
||||
pjsip_rx_data_get_info(rdata)));
|
||||
if (rdata->msg_info.msg->line.req.method.id != PJSIP_ACK_METHOD) {
|
||||
PJ_LOG(5,(THIS_FILE,
|
||||
"Unable to find dialog for %s, answering with 481",
|
||||
pjsip_rx_data_get_info(rdata)));
|
||||
|
||||
pjsip_endpt_respond_stateless(mod_ua.endpt, rdata,
|
||||
PJSIP_SC_CALL_TSX_DOES_NOT_EXIST,
|
||||
NULL, NULL, NULL);
|
||||
pjsip_endpt_respond_stateless(mod_ua.endpt, rdata,
|
||||
PJSIP_SC_CALL_TSX_DOES_NOT_EXIST,
|
||||
NULL, NULL, NULL);
|
||||
} else {
|
||||
PJ_LOG(5,(THIS_FILE,
|
||||
"Unable to find dialog for %s",
|
||||
pjsip_rx_data_get_info(rdata)));
|
||||
}
|
||||
return PJ_TRUE;
|
||||
}
|
||||
|
||||
|
|
|
@ -818,7 +818,7 @@ int msg_test(void)
|
|||
"can be pre-parse by <tt>pjsip_find_msg()</tt> "
|
||||
"per second (tested with %d message sets with "
|
||||
"average message length of "
|
||||
"%d bytes)", PJ_ARRAY_SIZE(test_array), avg_len);
|
||||
"%d bytes)", (int)PJ_ARRAY_SIZE(test_array), avg_len);
|
||||
report_ival("msg-detect-per-sec", max, "msg/sec", desc);
|
||||
|
||||
/* Print maximum parse/sec */
|
||||
|
@ -831,7 +831,7 @@ int msg_test(void)
|
|||
"can be <b>parsed</b> by <tt>pjsip_parse_msg()</tt> "
|
||||
"per second (tested with %d message sets with "
|
||||
"average message length of "
|
||||
"%d bytes)", PJ_ARRAY_SIZE(test_array), avg_len);
|
||||
"%d bytes)", (int)PJ_ARRAY_SIZE(test_array), avg_len);
|
||||
report_ival("msg-parse-per-sec", max, "msg/sec", desc);
|
||||
|
||||
/* Msg parsing bandwidth */
|
||||
|
@ -851,7 +851,7 @@ int msg_test(void)
|
|||
"can be <b>printed</b> by <tt>pjsip_msg_print()</tt>"
|
||||
" per second (tested with %d message sets with "
|
||||
"average message length of "
|
||||
"%d bytes)", PJ_ARRAY_SIZE(test_array), avg_len);
|
||||
"%d bytes)", (int)PJ_ARRAY_SIZE(test_array), avg_len);
|
||||
|
||||
report_ival("msg-print-per-sec", max, "msg/sec", desc);
|
||||
|
||||
|
|
|
@ -31,7 +31,7 @@ static int datagram_loop_test()
|
|||
pj_sockaddr_in addr;
|
||||
pj_status_t status;
|
||||
long ref_cnt;
|
||||
unsigned rtt[LOOP], min_rtt;
|
||||
int rtt[LOOP], min_rtt;
|
||||
|
||||
PJ_LOG(3,(THIS_FILE, "testing datagram loop transport"));
|
||||
|
||||
|
|
|
@ -35,7 +35,7 @@ int transport_tcp_test(void)
|
|||
pj_sockaddr_in rem_addr;
|
||||
pj_status_t status;
|
||||
char url[64];
|
||||
unsigned rtt[SEND_RECV_LOOP], min_rtt;
|
||||
int rtt[SEND_RECV_LOOP], min_rtt;
|
||||
int i, pkt_lost;
|
||||
|
||||
/* Start TCP listener on arbitrary port. */
|
||||
|
|
|
@ -489,7 +489,7 @@ static void rt_tx_timer( pj_timer_heap_t *timer_heap,
|
|||
|
||||
static int rt_worker_thread(void *arg)
|
||||
{
|
||||
int i, thread_id = (int)arg;
|
||||
int i, thread_id = (int)(long)arg;
|
||||
pj_time_val poll_delay = { 0, 10 };
|
||||
|
||||
/* Sleep to allow main threads to run. */
|
||||
|
@ -576,7 +576,7 @@ int transport_rt_test( pjsip_transport_type_e tp_type,
|
|||
}
|
||||
|
||||
/* Create thread, suspended. */
|
||||
status = pj_thread_create(pool, "rttest%p", &rt_worker_thread, (void*)i, 0,
|
||||
status = pj_thread_create(pool, "rttest%p", &rt_worker_thread, (void*)(long)i, 0,
|
||||
PJ_THREAD_SUSPENDED, &rt_test_data[i].thread);
|
||||
if (status != PJ_SUCCESS) {
|
||||
app_perror(" error: unable to create thread", status);
|
||||
|
|
|
@ -34,7 +34,7 @@ int transport_udp_test(void)
|
|||
pj_sockaddr_in addr, rem_addr;
|
||||
pj_str_t s;
|
||||
pj_status_t status;
|
||||
unsigned rtt[SEND_RECV_LOOP], min_rtt;
|
||||
int rtt[SEND_RECV_LOOP], min_rtt;
|
||||
int i, pkt_lost;
|
||||
|
||||
pj_sockaddr_in_init(&addr, NULL, TEST_UDP_PORT);
|
||||
|
|
|
@ -955,7 +955,7 @@ int uri_test(void)
|
|||
"<tt>pjsip_parse_uri()</tt> per second "
|
||||
"(tested with %d URI set, with average length of "
|
||||
"%d chars)",
|
||||
PJ_ARRAY_SIZE(uri_test_array), avg_len);
|
||||
(int)PJ_ARRAY_SIZE(uri_test_array), avg_len);
|
||||
|
||||
report_ival("uri-parse-per-sec", max, "URI/sec", desc);
|
||||
|
||||
|
@ -975,7 +975,7 @@ int uri_test(void)
|
|||
"<tt>pjsip_uri_print()</tt> per second "
|
||||
"(tested with %d URI set, with average length of "
|
||||
"%d chars)",
|
||||
PJ_ARRAY_SIZE(uri_test_array), avg_len);
|
||||
(int)PJ_ARRAY_SIZE(uri_test_array), avg_len);
|
||||
|
||||
report_ival("uri-print-per-sec", max, "URI/sec", desc);
|
||||
|
||||
|
@ -989,7 +989,7 @@ int uri_test(void)
|
|||
"<tt>pjsip_uri_cmp()</tt> per second "
|
||||
"(tested with %d URI set, with average length of "
|
||||
"%d chars)",
|
||||
PJ_ARRAY_SIZE(uri_test_array), avg_len);
|
||||
(int)PJ_ARRAY_SIZE(uri_test_array), avg_len);
|
||||
|
||||
report_ival("uri-cmp-per-sec", max, "URI/sec", desc);
|
||||
|
||||
|
|
Loading…
Reference in New Issue