aboutsummaryrefslogtreecommitdiffstats
path: root/demos/ATSAMA5D2
diff options
context:
space:
mode:
authorisiora <none@example.com>2018-03-21 14:32:08 +0000
committerisiora <none@example.com>2018-03-21 14:32:08 +0000
commit34edfc3a1a584caa158af83b8b261ce4e2f5a436 (patch)
treed70ba0a8ef6ce901b2aefab46153365f5d7abf91 /demos/ATSAMA5D2
parentbbc08d06d1c167232c2c66dc386c1fd353e6a728 (diff)
downloadChibiOS-34edfc3a1a584caa158af83b8b261ce4e2f5a436.tar.gz
ChibiOS-34edfc3a1a584caa158af83b8b261ce4e2f5a436.tar.bz2
ChibiOS-34edfc3a1a584caa158af83b8b261ce4e2f5a436.zip
Added listen.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@11831 110e8d01-0319-4d1e-a829-52ad28d1bb01
Diffstat (limited to 'demos/ATSAMA5D2')
-rw-r--r--demos/ATSAMA5D2/RT-SAMA5D2-XPLAINED-NSEC/daemons/tscommon.h1
-rw-r--r--demos/ATSAMA5D2/RT-SAMA5D2-XPLAINED-NSEC/daemons/tssockskel.c19
-rw-r--r--demos/ATSAMA5D2/RT-SAMA5D2-XPLAINED-SEC/proxies/tscommon.h1
-rw-r--r--demos/ATSAMA5D2/RT-SAMA5D2-XPLAINED-SEC/proxies/tssockstub.c11
-rw-r--r--demos/ATSAMA5D2/RT-SAMA5D2-XPLAINED-SEC/proxies/tssockstub.h1
5 files changed, 32 insertions, 1 deletions
diff --git a/demos/ATSAMA5D2/RT-SAMA5D2-XPLAINED-NSEC/daemons/tscommon.h b/demos/ATSAMA5D2/RT-SAMA5D2-XPLAINED-NSEC/daemons/tscommon.h
index 079c6396e..3a2698451 100644
--- a/demos/ATSAMA5D2/RT-SAMA5D2-XPLAINED-NSEC/daemons/tscommon.h
+++ b/demos/ATSAMA5D2/RT-SAMA5D2-XPLAINED-NSEC/daemons/tscommon.h
@@ -45,6 +45,7 @@
#define STUB_OP_SEND 4
#define STUB_OP_SELECT 5
#define STUB_OP_BIND 6
+#define STUB_OP_LISTEN 7
#define EVT_F_SOCK_NEW_OP 1
diff --git a/demos/ATSAMA5D2/RT-SAMA5D2-XPLAINED-NSEC/daemons/tssockskel.c b/demos/ATSAMA5D2/RT-SAMA5D2-XPLAINED-NSEC/daemons/tssockskel.c
index e3b2246a2..84f0326b9 100644
--- a/demos/ATSAMA5D2/RT-SAMA5D2-XPLAINED-NSEC/daemons/tssockskel.c
+++ b/demos/ATSAMA5D2/RT-SAMA5D2-XPLAINED-NSEC/daemons/tssockskel.c
@@ -257,6 +257,22 @@ static void l_bind(skel_req_t *skreqp) {
returnToRemote(skreqp, result);
}
+/**
+ * @brief listen(int s, int backlog);
+ */
+static void l_listen(skel_req_t *skreqp) {
+ int s, result, backlog;
+
+ s = (int)skreqp->stub_op_p[0];
+ backlog = (int)skreqp->stub_op_p[1];
+
+ /* Call the api exposed by the TCP/IP stack.*/
+ result = listen(s, backlog);
+
+ /* Report the result.*/
+ returnToRemote(skreqp, result);
+}
+
/** @} */
/*===========================================================================*/
@@ -296,6 +312,9 @@ static THD_FUNCTION(TsSockSkelDaemon, arg) {
case STUB_OP_BIND:
l_bind(skreqp);
break;
+ case STUB_OP_LISTEN:
+ l_bind(skreqp);
+ break;
default:
break;
}
diff --git a/demos/ATSAMA5D2/RT-SAMA5D2-XPLAINED-SEC/proxies/tscommon.h b/demos/ATSAMA5D2/RT-SAMA5D2-XPLAINED-SEC/proxies/tscommon.h
index 079c6396e..3a2698451 100644
--- a/demos/ATSAMA5D2/RT-SAMA5D2-XPLAINED-SEC/proxies/tscommon.h
+++ b/demos/ATSAMA5D2/RT-SAMA5D2-XPLAINED-SEC/proxies/tscommon.h
@@ -45,6 +45,7 @@
#define STUB_OP_SEND 4
#define STUB_OP_SELECT 5
#define STUB_OP_BIND 6
+#define STUB_OP_LISTEN 7
#define EVT_F_SOCK_NEW_OP 1
diff --git a/demos/ATSAMA5D2/RT-SAMA5D2-XPLAINED-SEC/proxies/tssockstub.c b/demos/ATSAMA5D2/RT-SAMA5D2-XPLAINED-SEC/proxies/tssockstub.c
index 1862e65c6..00dcd2626 100644
--- a/demos/ATSAMA5D2/RT-SAMA5D2-XPLAINED-SEC/proxies/tssockstub.c
+++ b/demos/ATSAMA5D2/RT-SAMA5D2-XPLAINED-SEC/proxies/tssockstub.c
@@ -364,6 +364,16 @@ int bind(int s, const struct sockaddr *name, socklen_t namelen) {
return (int)callRemote(op);
}
+int listen(int s, int backlog) {
+ stub_op_t *op = getNewOp();
+ op->op_code = STUB_OP_LISTEN;
+ op->op_p[0].dir = OP_PRMDIR_NONE;
+ op->op_p[0].val = (uint32_t)s;
+ op->op_p[1].dir = OP_PRMDIR_NONE;
+ op->op_p[1].val = (uint32_t)backlog;
+ return (int)callRemote(op);
+}
+
#if 0
int accept(int s, struct sockaddr *addr, socklen_t *addrlen);
int shutdown(int s, int how);
@@ -371,7 +381,6 @@ int getpeername (int s, struct sockaddr *name, socklen_t *namelen);
int getsockname (int s, struct sockaddr *name, socklen_t *namelen);
int getsockopt (int s, int level, int optname, void *optval, socklen_t *optlen);
int setsockopt (int s, int level, int optname, const void *optval, socklen_t optlen);
-int listen(int s, int backlog);
int read(int s, void *mem, size_t len);
int recvfrom(int s, void *mem, size_t len, int flags,
struct sockaddr *from, socklen_t *fromlen);
diff --git a/demos/ATSAMA5D2/RT-SAMA5D2-XPLAINED-SEC/proxies/tssockstub.h b/demos/ATSAMA5D2/RT-SAMA5D2-XPLAINED-SEC/proxies/tssockstub.h
index 0bb423a19..937caa29a 100644
--- a/demos/ATSAMA5D2/RT-SAMA5D2-XPLAINED-SEC/proxies/tssockstub.h
+++ b/demos/ATSAMA5D2/RT-SAMA5D2-XPLAINED-SEC/proxies/tssockstub.h
@@ -373,6 +373,7 @@ extern "C" {
int select(int maxfdp1, fd_set *readset, fd_set *writeset, fd_set *exceptset,
struct timeval *timeout);
int bind(int s, const struct sockaddr *name, socklen_t namelen);
+ int listen(int s, int backlog);
in_addr_t inet_addr(const char *cp);
int inet_aton(const char *cp, struct in_addr *addr);
void tsWaitStubSkelReady(void);