- new folder src/ to hold the source code for main project applications
- main.c is in src/
- all core files are subfolder are in src/core/
- modules are in src/modules/
- libs are in src/lib/
- application Makefiles are in src/
- application binary is built in src/ (src/kamailio)
1 | 1 |
deleted file mode 100644 |
... | ... |
@@ -1,42 +0,0 @@ |
1 |
-/* |
|
2 |
- * Copyright (C) 2006 iptelorg GmbH |
|
3 |
- * |
|
4 |
- * This file is part of Kamailio, a free SIP server. |
|
5 |
- * |
|
6 |
- * Kamailio is free software; you can redistribute it and/or modify |
|
7 |
- * it under the terms of the GNU General Public License as published by |
|
8 |
- * the Free Software Foundation; either version 2 of the License, or |
|
9 |
- * (at your option) any later version |
|
10 |
- * |
|
11 |
- * Kamailio is distributed in the hope that it will be useful, |
|
12 |
- * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
13 |
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
14 |
- * GNU General Public License for more details. |
|
15 |
- * |
|
16 |
- * You should have received a copy of the GNU General Public License |
|
17 |
- * along with this program; if not, write to the Free Software |
|
18 |
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
|
19 |
- */ |
|
20 |
- |
|
21 |
-/*! |
|
22 |
- * \file |
|
23 |
- * \brief Kamailio core :: atomic_ops init functions |
|
24 |
- * |
|
25 |
- * Copyright (C) 2006 iptelorg GmbH |
|
26 |
- * |
|
27 |
- * \ingroup core |
|
28 |
- * Module: \ref core |
|
29 |
- * |
|
30 |
- * Needed for lock intializing if no native asm locks are available |
|
31 |
- * for the current arch./compiler combination, see \ref atomic_ops.c |
|
32 |
- */ |
|
33 |
- |
|
34 |
-#ifndef __atomic_ops_init_h |
|
35 |
-#define __atomic_ops_init_h |
|
36 |
- |
|
37 |
-/*! \brief init atomic ops */ |
|
38 |
-int init_atomic_ops(void); |
|
39 |
-/*! \brief destroy atomic ops (e.g. frees the locks, if locks are used) */ |
|
40 |
-void destroy_atomic_ops(void); |
|
41 |
- |
|
42 |
-#endif |
... | ... |
@@ -1,16 +1,14 @@ |
1 | 1 |
/* |
2 |
- * $Id$ |
|
3 |
- * |
|
4 | 2 |
* Copyright (C) 2006 iptelorg GmbH |
5 | 3 |
* |
6 |
- * This file is part of ser, a free SIP server. |
|
4 |
+ * This file is part of Kamailio, a free SIP server. |
|
7 | 5 |
* |
8 |
- * ser is free software; you can redistribute it and/or modify |
|
6 |
+ * Kamailio is free software; you can redistribute it and/or modify |
|
9 | 7 |
* it under the terms of the GNU General Public License as published by |
10 | 8 |
* the Free Software Foundation; either version 2 of the License, or |
11 | 9 |
* (at your option) any later version |
12 | 10 |
* |
13 |
- * ser is distributed in the hope that it will be useful, |
|
11 |
+ * Kamailio is distributed in the hope that it will be useful, |
|
14 | 12 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
15 | 13 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
16 | 14 |
* GNU General Public License for more details. |
... | ... |
@@ -22,7 +20,9 @@ |
22 | 20 |
|
23 | 21 |
/*! |
24 | 22 |
* \file |
25 |
- * \brief SIP-router core :: atomic_ops init functions |
|
23 |
+ * \brief Kamailio core :: atomic_ops init functions |
|
24 |
+ * |
|
25 |
+ * Copyright (C) 2006 iptelorg GmbH |
|
26 | 26 |
* |
27 | 27 |
* \ingroup core |
28 | 28 |
* Module: \ref core |
... | ... |
@@ -30,11 +30,6 @@ |
30 | 30 |
* Needed for lock intializing if no native asm locks are available |
31 | 31 |
* for the current arch./compiler combination, see \ref atomic_ops.c |
32 | 32 |
*/ |
33 |
-/* |
|
34 |
- * History: |
|
35 |
- * -------- |
|
36 |
- * 2006-03-30 created by andrei |
|
37 |
- */ |
|
38 | 33 |
|
39 | 34 |
#ifndef __atomic_ops_init_h |
40 | 35 |
#define __atomic_ops_init_h |
... | ... |
@@ -17,7 +17,7 @@ |
17 | 17 |
* |
18 | 18 |
* You should have received a copy of the GNU General Public License |
19 | 19 |
* along with this program; if not, write to the Free Software |
20 |
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
20 |
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
|
21 | 21 |
*/ |
22 | 22 |
|
23 | 23 |
/*! |
In C language, a declaration in the form int f(); is equivalent to int f(...);, thus being able to accept an indefinit number of parameters. With the -Wstrict-prototypes GCC options, these declarations are reported as "function declaration isn’t a prototype".
On some cases, this may trick the compiler into generating unoptimized code (like preparing to handle variadic argument list).
In all cases having a declaration int f() and a definition inf f(int) is missleading, even if standard compliant.
This is still Work in Progress. (maybe adding the -Wstrict-prototypes option to default is desireable)
... | ... |
@@ -40,8 +40,8 @@ |
40 | 40 |
#define __atomic_ops_init_h |
41 | 41 |
|
42 | 42 |
/*! \brief init atomic ops */ |
43 |
-int init_atomic_ops(); |
|
43 |
+int init_atomic_ops(void); |
|
44 | 44 |
/*! \brief destroy atomic ops (e.g. frees the locks, if locks are used) */ |
45 |
-void destroy_atomic_ops(); |
|
45 |
+void destroy_atomic_ops(void); |
|
46 | 46 |
|
47 | 47 |
#endif |
... | ... |
@@ -10,11 +10,6 @@ |
10 | 10 |
* the Free Software Foundation; either version 2 of the License, or |
11 | 11 |
* (at your option) any later version |
12 | 12 |
* |
13 |
- * For a license to use the ser software under conditions |
|
14 |
- * other than those described here, or to purchase support for this |
|
15 |
- * software, please contact iptel.org by e-mail at the following addresses: |
|
16 |
- * info@iptel.org |
|
17 |
- * |
|
18 | 13 |
* ser is distributed in the hope that it will be useful, |
19 | 14 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
20 | 15 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
... | ... |
@@ -24,6 +19,7 @@ |
24 | 19 |
* along with this program; if not, write to the Free Software |
25 | 20 |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
26 | 21 |
*/ |
22 |
+ |
|
27 | 23 |
/*! |
28 | 24 |
* \file |
29 | 25 |
* \brief SIP-router core :: atomic_ops init functions |
... | ... |
@@ -24,10 +24,15 @@ |
24 | 24 |
* along with this program; if not, write to the Free Software |
25 | 25 |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
26 | 26 |
*/ |
27 |
-/* |
|
28 |
- * atomic_ops init functions |
|
29 |
- * (needed for lock intializing if no native asm locks are available |
|
30 |
- * for the current arch./compiler combination, see atomic_ops.c) |
|
27 |
+/*! |
|
28 |
+ * \file |
|
29 |
+ * \brief SIP-router core :: atomic_ops init functions |
|
30 |
+ * |
|
31 |
+ * \ingroup core |
|
32 |
+ * Module: \ref core |
|
33 |
+ * |
|
34 |
+ * Needed for lock intializing if no native asm locks are available |
|
35 |
+ * for the current arch./compiler combination, see \ref atomic_ops.c |
|
31 | 36 |
*/ |
32 | 37 |
/* |
33 | 38 |
* History: |
... | ... |
@@ -38,9 +43,9 @@ |
38 | 43 |
#ifndef __atomic_ops_init_h |
39 | 44 |
#define __atomic_ops_init_h |
40 | 45 |
|
41 |
-/* init atomic ops */ |
|
46 |
+/*! \brief init atomic ops */ |
|
42 | 47 |
int init_atomic_ops(); |
43 |
-/* destroy atomic ops (e.g. frees the locks, if locks are used) */ |
|
48 |
+/*! \brief destroy atomic ops (e.g. frees the locks, if locks are used) */ |
|
44 | 49 |
void destroy_atomic_ops(); |
45 | 50 |
|
46 | 51 |
#endif |
- atomic operations and memory barriers support for:
- x86
- x86_64
- mips (only in NOSMP mode and if it supports ll and sc)
- mips2 (mips32, isa >= 2)
- mips64
- powerpc
- powerpc64
- sparc <= v8 (only memory barriers, the atomic operations are implemented
using locks because there is no hardware support for them)
- sparc64 - both 32 (v8plus) and 64 bit mode
If there is no support for the compiler/arch. combination, it falls back to
locks.
The code is tested (only basic tests: it runs and the results are ok, but no
parallel tests) on x86, x86_64, mips2, powerpc, sparc64 (both modes).
The sparc version runs ok on sparc64 (so it's most likely ok).
powerpc64 and mips64 not tested due to no access to the corresponding
hardware, but they do compile ok.
For more details see the comments at the beginning of atomic_ops.h.
1 | 1 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,46 @@ |
1 |
+/* |
|
2 |
+ * $Id$ |
|
3 |
+ * |
|
4 |
+ * Copyright (C) 2006 iptelorg GmbH |
|
5 |
+ * |
|
6 |
+ * This file is part of ser, a free SIP server. |
|
7 |
+ * |
|
8 |
+ * ser is free software; you can redistribute it and/or modify |
|
9 |
+ * it under the terms of the GNU General Public License as published by |
|
10 |
+ * the Free Software Foundation; either version 2 of the License, or |
|
11 |
+ * (at your option) any later version |
|
12 |
+ * |
|
13 |
+ * For a license to use the ser software under conditions |
|
14 |
+ * other than those described here, or to purchase support for this |
|
15 |
+ * software, please contact iptel.org by e-mail at the following addresses: |
|
16 |
+ * info@iptel.org |
|
17 |
+ * |
|
18 |
+ * ser is distributed in the hope that it will be useful, |
|
19 |
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
20 |
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
21 |
+ * GNU General Public License for more details. |
|
22 |
+ * |
|
23 |
+ * You should have received a copy of the GNU General Public License |
|
24 |
+ * along with this program; if not, write to the Free Software |
|
25 |
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
26 |
+ */ |
|
27 |
+/* |
|
28 |
+ * atomic_ops init functions |
|
29 |
+ * (needed for lock intializing if no native asm locks are available |
|
30 |
+ * for the current arch./compiler combination, see atomic_ops.c) |
|
31 |
+ */ |
|
32 |
+/* |
|
33 |
+ * History: |
|
34 |
+ * -------- |
|
35 |
+ * 2006-03-30 created by andrei |
|
36 |
+ */ |
|
37 |
+ |
|
38 |
+#ifndef __atomic_ops_init_h |
|
39 |
+#define __atomic_ops_init_h |
|
40 |
+ |
|
41 |
+/* init atomic ops */ |
|
42 |
+int init_atomic_ops(); |
|
43 |
+/* destroy atomic ops (e.g. frees the locks, if locks are used) */ |
|
44 |
+void destroy_atomic_ops(); |
|
45 |
+ |
|
46 |
+#endif |