aboutsummaryrefslogtreecommitdiffstats
path: root/app/nginx/auto/types
diff options
context:
space:
mode:
authorKonstantin Ananyev <konstantin.ananyev@intel.com>2017-10-31 12:40:17 +0000
committerKonstantin Ananyev <konstantin.ananyev@intel.com>2017-10-31 14:19:39 +0000
commite18a033b921d0d79fa8278f853548e6125b93e0c (patch)
treea6a55edf6ddceef824561818c9836914c326340d /app/nginx/auto/types
parent7e18fa1bf263822c46d7431a911b41d6377d5f69 (diff)
Integrate TLDK with NGINX
Created a clone of nginx (from https://github.com/nginx/nginx) to demonstrate and benchmark TLDK library integrated with real world application. A new nginx module is created and and BSD socket-like API is implemented on top of native TLDK API. Note, that right now only minimalistic subset of socket-like API is provided: - accept - close - readv - recv - writev so only limited nginx functionality is available for a moment. Change-Id: Ie1efe9349a0538da4348a48fb8306cbf636b5a92 Signed-off-by: Mohammad Abdul Awal <mohammad.abdul.awal@intel.com> Signed-off-by: Reshma Pattan <reshma.pattan@intel.com> Signed-off-by: Remy Horton <remy.horton@intel.com> Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Diffstat (limited to 'app/nginx/auto/types')
-rw-r--r--app/nginx/auto/types/sizeof76
-rw-r--r--app/nginx/auto/types/typedef82
-rw-r--r--app/nginx/auto/types/uintptr_t50
-rw-r--r--app/nginx/auto/types/value12
4 files changed, 220 insertions, 0 deletions
diff --git a/app/nginx/auto/types/sizeof b/app/nginx/auto/types/sizeof
new file mode 100644
index 0000000..480d8cf
--- /dev/null
+++ b/app/nginx/auto/types/sizeof
@@ -0,0 +1,76 @@
+
+# Copyright (C) Igor Sysoev
+# Copyright (C) Nginx, Inc.
+
+
+echo $ngx_n "checking for $ngx_type size ...$ngx_c"
+
+cat << END >> $NGX_AUTOCONF_ERR
+
+----------------------------------------
+checking for $ngx_type size
+
+END
+
+ngx_size=
+
+cat << END > $NGX_AUTOTEST.c
+
+#include <sys/types.h>
+#include <sys/time.h>
+$NGX_INCLUDE_UNISTD_H
+#include <signal.h>
+#include <stdio.h>
+#include <sys/resource.h>
+$NGX_INCLUDE_INTTYPES_H
+$NGX_INCLUDE_AUTO_CONFIG_H
+
+int main(void) {
+ printf("%d", (int) sizeof($ngx_type));
+ return 0;
+}
+
+END
+
+
+ngx_test="$CC $CC_TEST_FLAGS $CC_AUX_FLAGS \
+ -o $NGX_AUTOTEST $NGX_AUTOTEST.c $NGX_LD_OPT $ngx_feature_libs"
+
+eval "$ngx_test >> $NGX_AUTOCONF_ERR 2>&1"
+
+
+if [ -x $NGX_AUTOTEST ]; then
+ ngx_size=`$NGX_AUTOTEST`
+ echo " $ngx_size bytes"
+fi
+
+
+case $ngx_size in
+ 4)
+ ngx_max_value=2147483647
+ ngx_max_len='(sizeof("-2147483648") - 1)'
+ ;;
+
+ 8)
+ ngx_max_value=9223372036854775807LL
+ ngx_max_len='(sizeof("-9223372036854775808") - 1)'
+ ;;
+
+ *)
+ echo
+ echo "$0: error: can not detect $ngx_type size"
+
+ echo "----------" >> $NGX_AUTOCONF_ERR
+ cat $NGX_AUTOTEST.c >> $NGX_AUTOCONF_ERR
+ echo "----------" >> $NGX_AUTOCONF_ERR
+ echo $ngx_test >> $NGX_AUTOCONF_ERR
+ echo "----------" >> $NGX_AUTOCONF_ERR
+
+ rm -rf $NGX_AUTOTEST*
+
+ exit 1
+esac
+
+
+rm -rf $NGX_AUTOTEST*
+
diff --git a/app/nginx/auto/types/typedef b/app/nginx/auto/types/typedef
new file mode 100644
index 0000000..d54c289
--- /dev/null
+++ b/app/nginx/auto/types/typedef
@@ -0,0 +1,82 @@
+
+# Copyright (C) Igor Sysoev
+# Copyright (C) Nginx, Inc.
+
+
+echo $ngx_n "checking for $ngx_type ...$ngx_c"
+
+cat << END >> $NGX_AUTOCONF_ERR
+
+----------------------------------------
+checking for $ngx_type
+
+END
+
+ngx_found=no
+
+for ngx_try in $ngx_type $ngx_types
+do
+
+ cat << END > $NGX_AUTOTEST.c
+
+#include <sys/types.h>
+#include <signal.h>
+#include <sys/socket.h>
+#include <sys/time.h>
+#include <sys/resource.h>
+#include <netinet/in.h>
+$NGX_INCLUDE_INTTYPES_H
+
+int main(void) {
+ $ngx_try i = 0;
+ return (int) i;
+}
+
+END
+
+ ngx_test="$CC $CC_TEST_FLAGS $CC_AUX_FLAGS \
+ -o $NGX_AUTOTEST $NGX_AUTOTEST.c $NGX_LD_OPT $ngx_feature_libs"
+
+ eval "$ngx_test >> $NGX_AUTOCONF_ERR 2>&1"
+
+ if [ -x $NGX_AUTOTEST ]; then
+ if [ $ngx_try = $ngx_type ]; then
+ echo " found"
+ ngx_found=yes
+ else
+ echo ", $ngx_try used"
+ ngx_found=$ngx_try
+ fi
+ fi
+
+ if [ $ngx_found = no ]; then
+ if [ $ngx_try = $ngx_type ]; then
+ echo $ngx_n " $ngx_try not found$ngx_c"
+ else
+ echo $ngx_n ", $ngx_try not found$ngx_c"
+ fi
+
+ echo "----------" >> $NGX_AUTOCONF_ERR
+ cat $NGX_AUTOTEST.c >> $NGX_AUTOCONF_ERR
+ echo "----------" >> $NGX_AUTOCONF_ERR
+ echo $ngx_test >> $NGX_AUTOCONF_ERR
+ echo "----------" >> $NGX_AUTOCONF_ERR
+ fi
+
+ rm -rf $NGX_AUTOTEST*
+
+ if [ $ngx_found != no ]; then
+ break
+ fi
+done
+
+if [ $ngx_found = no ]; then
+ echo
+ echo "$0: error: can not define $ngx_type"
+
+ exit 1
+fi
+
+if [ $ngx_found != yes ]; then
+ echo "typedef $ngx_found $ngx_type;" >> $NGX_AUTO_CONFIG_H
+fi
diff --git a/app/nginx/auto/types/uintptr_t b/app/nginx/auto/types/uintptr_t
new file mode 100644
index 0000000..a33d6d0
--- /dev/null
+++ b/app/nginx/auto/types/uintptr_t
@@ -0,0 +1,50 @@
+
+# Copyright (C) Igor Sysoev
+# Copyright (C) Nginx, Inc.
+
+
+echo $ngx_n "checking for uintptr_t ...$ngx_c"
+
+cat << END >> $NGX_AUTOCONF_ERR
+
+----------------------------------------
+checking for uintptr_t
+
+END
+
+found=no
+
+cat << END > $NGX_AUTOTEST.c
+
+#include <sys/types.h>
+$NGX_INCLUDE_INTTYPES_H
+
+int main(void) {
+ uintptr_t i = 0;
+ return (int) i;
+}
+
+END
+
+ngx_test="$CC $CC_TEST_FLAGS $CC_AUX_FLAGS \
+ -o $NGX_AUTOTEST $NGX_AUTOTEST.c $NGX_LD_OPT"
+
+eval "$ngx_test >> $NGX_AUTOCONF_ERR 2>&1"
+
+if [ -x $NGX_AUTOTEST ]; then
+ echo " uintptr_t found"
+ found=yes
+else
+ echo $ngx_n " uintptr_t not found" $ngx_c
+fi
+
+rm -rf $NGX_AUTOTEST*
+
+
+if [ $found = no ]; then
+ found="uint`expr 8 \* $ngx_ptr_size`_t"
+ echo ", $found used"
+
+ echo "typedef $found uintptr_t;" >> $NGX_AUTO_CONFIG_H
+ echo "typedef $found intptr_t;" | sed -e 's/u//g' >> $NGX_AUTO_CONFIG_H
+fi
diff --git a/app/nginx/auto/types/value b/app/nginx/auto/types/value
new file mode 100644
index 0000000..ac88a39
--- /dev/null
+++ b/app/nginx/auto/types/value
@@ -0,0 +1,12 @@
+
+# Copyright (C) Igor Sysoev
+# Copyright (C) Nginx, Inc.
+
+
+cat << END >> $NGX_AUTO_CONFIG_H
+
+#ifndef $ngx_param
+#define $ngx_param $ngx_value
+#endif
+
+END