From 0bcbb62eb408e6fcbfe78fbc2756dfb1b9ae6a37 Mon Sep 17 00:00:00 2001
From: Uros Majstorovic <majstor@majstor.org>
Date: Fri, 6 Dec 2019 20:04:08 +0100
Subject: net refactor: alloc reverted to take void arg; EOS_NET_FLAGs renamed

---
 code/ecp/fe310/time.c      |  3 ++-
 code/ecp/fe310/transport.c |  2 +-
 code/fe310/eos/event.c     |  4 ++--
 code/fe310/eos/evt_def.h   |  2 --
 code/fe310/eos/i2s.c       |  3 ++-
 code/fe310/eos/net.c       | 18 +++++++++---------
 code/fe310/eos/net.h       | 23 ++++++++++++-----------
 code/fe310/eos/sock.c      |  8 ++++----
 code/fe310/eos/wifi.c      |  8 ++++----
 9 files changed, 36 insertions(+), 35 deletions(-)

(limited to 'code')

diff --git a/code/ecp/fe310/time.c b/code/ecp/fe310/time.c
index dee4285..a5c109d 100644
--- a/code/ecp/fe310/time.c
+++ b/code/ecp/fe310/time.c
@@ -2,6 +2,7 @@
 #include <tr.h>
 
 #include <eos/eos.h>
+#include <eos/net.h>
 #include <eos/event.h>
 #include <eos/timer.h>
 
@@ -18,7 +19,7 @@ static void timer_handler(unsigned char type) {
 }
 
 int ecp_tm_init(ECPContext *ctx) {
-    eos_timer_set_handler(EOS_TIMER_ETYPE_ECP, timer_handler, EOS_EVT_FLAG_NET_BUF_ACQ);
+    eos_timer_set_handler(EOS_TIMER_ETYPE_ECP, timer_handler, EOS_NET_FLAG_BACQ);
     return ECP_OK;
 }
 
diff --git a/code/ecp/fe310/transport.c b/code/ecp/fe310/transport.c
index a49d3b6..6da5139 100644
--- a/code/ecp/fe310/transport.c
+++ b/code/ecp/fe310/transport.c
@@ -85,7 +85,7 @@ ssize_t ecp_tr_send(ECPSocket *sock, ECPBuffer *packet, size_t msg_size, ECPNetA
             buf = packet->buffer-EOS_SOCK_SIZE_UDP_HDR;
             packet->buffer = NULL;
         } else {
-            buf = eos_net_alloc(1);
+            buf = eos_net_alloc();
             memcpy(buf+EOS_SOCK_SIZE_UDP_HDR, packet->buffer, msg_size);
         }
     }
diff --git a/code/fe310/eos/event.c b/code/fe310/eos/event.c
index cc9c5de..9371ca7 100644
--- a/code/fe310/eos/event.c
+++ b/code/fe310/eos/event.c
@@ -47,7 +47,7 @@ static void evtq_handler_wrapper(unsigned char type, unsigned char *buffer, uint
     uint16_t flag = (uint16_t)1 << ((type & ~EOS_EVT_MASK) - 1);
     int ok;
 
-    ok = eos_net_acquire(evt_handler_wrapper_acq[idx] & flag);
+    ok = _eos_net_acquire(evt_handler_wrapper_acq[idx] & flag);
     if (ok) {
         evt_handler[idx](type, buffer, len);
         eos_net_release();
@@ -83,7 +83,7 @@ void eos_evtq_set_flags(unsigned char type, uint8_t flags) {
     unsigned char idx = ((type & EOS_EVT_MASK) >> 4) - 1;
     uint16_t flag = type & ~EOS_EVT_MASK ? (uint16_t)1 << ((type & ~EOS_EVT_MASK) - 1) : 0xFFFF;
 
-    if ((idx < EOS_EVT_MAX_EVT) && (flags & EOS_EVT_FLAG_NET_BUF_ACQ)) evt_handler_flags_buf_acq[idx] |= flag;
+    if ((idx < EOS_EVT_MAX_EVT) && (flags & EOS_NET_FLAG_BACQ)) evt_handler_flags_buf_acq[idx] |= flag;
 }
 
 void eos_evtq_get(unsigned char type, unsigned char *selector, uint16_t sel_len, unsigned char **buffer, uint16_t *len) {
diff --git a/code/fe310/eos/evt_def.h b/code/fe310/eos/evt_def.h
index ee08d7d..529ee72 100644
--- a/code/fe310/eos/evt_def.h
+++ b/code/fe310/eos/evt_def.h
@@ -1,5 +1,3 @@
-#define EOS_EVT_FLAG_NET_BUF_ACQ    0x1
-
 #define EOS_EVT_TIMER               0x10
 #define EOS_EVT_AUDIO               0x20
 #define EOS_EVT_NET                 0x30
diff --git a/code/fe310/eos/i2s.c b/code/fe310/eos/i2s.c
index 4c36d55..d71a31d 100644
--- a/code/fe310/eos/i2s.c
+++ b/code/fe310/eos/i2s.c
@@ -8,6 +8,7 @@
 #include "eos.h"
 #include "interrupt.h"
 #include "event.h"
+#include "net.h"
 
 #include "i2s.h"
 #include "i2s_def.h"
@@ -114,7 +115,7 @@ extern void _eos_i2s_start_pwm(void);
 
 void eos_i2s_init(void) {
     eos_evtq_set_handler(EOS_EVT_AUDIO, i2s_handler_evt);
-    eos_evtq_set_flags(EOS_EVT_AUDIO | I2S_ETYPE_MIC, EOS_EVT_FLAG_NET_BUF_ACQ);
+    eos_evtq_set_flags(EOS_EVT_AUDIO | I2S_ETYPE_MIC, EOS_NET_FLAG_BACQ);
 
     GPIO_REG(GPIO_INPUT_EN)     &= ~(1 << I2S_PIN_CK);
     GPIO_REG(GPIO_OUTPUT_EN)    |=  (1 << I2S_PIN_CK);
diff --git a/code/fe310/eos/net.c b/code/fe310/eos/net.c
index 9f19b4b..319a3f5 100644
--- a/code/fe310/eos/net.c
+++ b/code/fe310/eos/net.c
@@ -237,8 +237,8 @@ void eos_net_set_handler(unsigned char mtype, eos_evt_fptr_t handler, uint8_t fl
     }
     if (flags) {
         uint16_t flag = (uint16_t)1 << mtype;
-        if (flags & EOS_NET_FLAG_BUF_FREE) evt_handler_flags_buf_free |= flag;
-        if (flags & EOS_NET_FLAG_BUF_ACQ) evt_handler_flags_buf_acq |= flag;
+        if (flags & EOS_NET_FLAG_BFREE) evt_handler_flags_buf_free |= flag;
+        if (flags & EOS_NET_FLAG_BACQ) evt_handler_flags_buf_acq |= flag;
     }
     evt_handler[mtype] = handler;
 }
@@ -298,7 +298,7 @@ void eos_net_stop(void) {
     }
 }
 
-int eos_net_acquire(unsigned char reserved) {
+int _eos_net_acquire(unsigned char reserved) {
     int ret = 0;
 
     if (reserved) {
@@ -322,6 +322,11 @@ int eos_net_acquire(unsigned char reserved) {
     return ret;
 }
 
+void eos_net_acquire(void) {
+    unsigned char acq = _eos_net_acquire(0);
+    if (!acq) _eos_net_acquire(1);
+}
+
 void eos_net_release(void) {
     clear_csr(mstatus, MSTATUS_MIE);
     if (!net_state_next_cnt && net_state_next_buf) {
@@ -331,14 +336,9 @@ void eos_net_release(void) {
     set_csr(mstatus, MSTATUS_MIE);
 }
 
-unsigned char *eos_net_alloc(unsigned char acquired) {
+unsigned char *eos_net_alloc(void) {
     unsigned char *ret = NULL;
 
-    if (!acquired) {
-        unsigned char acq = eos_net_acquire(0);
-        if (!acq) eos_net_acquire(1);
-    }
-
     clear_csr(mstatus, MSTATUS_MIE);
     ret = net_state_next_buf;
     net_state_next_buf = NULL;
diff --git a/code/fe310/eos/net.h b/code/fe310/eos/net.h
index a68cd77..127942c 100644
--- a/code/fe310/eos/net.h
+++ b/code/fe310/eos/net.h
@@ -1,18 +1,18 @@
 #include <stdint.h>
 #include "event.h"
 
-#define EOS_NET_FLAG_BUF_FREE       0x1
-#define EOS_NET_FLAG_BUF_ACQ        0x2
+#define EOS_NET_FLAG_BACQ       0x1
+#define EOS_NET_FLAG_BFREE      0x2
 
-#define EOS_NET_MTYPE_SOCK          1
-#define EOS_NET_MTYPE_AUDIO         2
+#define EOS_NET_MTYPE_SOCK      1
+#define EOS_NET_MTYPE_AUDIO     2
 
-#define EOS_NET_MTYPE_WIFI          5
-#define EOS_NET_MTYPE_CELL          6
-#define EOS_NET_MTYPE_SIP           7
-#define EOS_NET_MTYPE_APP           8
+#define EOS_NET_MTYPE_WIFI      5
+#define EOS_NET_MTYPE_CELL      6
+#define EOS_NET_MTYPE_SIP       7
+#define EOS_NET_MTYPE_APP       8
 
-#define EOS_NET_MAX_MTYPE           8
+#define EOS_NET_MAX_MTYPE       8
 
 void eos_net_xchg_done(void);
 
@@ -20,8 +20,9 @@ void eos_net_init(void);
 void eos_net_start(void);
 void eos_net_stop(void);
 void eos_net_set_handler(unsigned char type, eos_evt_fptr_t handler, uint8_t flags);
-int eos_net_acquire(unsigned char reserved);
+int _eos_net_acquire(unsigned char reserved);
+void eos_net_acquire(void);
 void eos_net_release(void);
-unsigned char *eos_net_alloc(unsigned char acquired);
+unsigned char *eos_net_alloc(void);
 void eos_net_free(unsigned char *buffer, unsigned char more);
 int eos_net_send(unsigned char type, unsigned char *buffer, uint16_t len, unsigned char more);
diff --git a/code/fe310/eos/sock.c b/code/fe310/eos/sock.c
index b690dc4..2c6ba5d 100644
--- a/code/fe310/eos/sock.c
+++ b/code/fe310/eos/sock.c
@@ -48,7 +48,7 @@ void eos_sock_init(void) {
 
 int eos_sock_open_udp(void) {
     unsigned char type = EOS_SOCK_MTYPE_OPEN_DGRAM;
-    unsigned char *buffer = eos_net_alloc(1);
+    unsigned char *buffer = eos_net_alloc();
     uint16_t buf_size;
     int rv, sock;
 
@@ -70,7 +70,7 @@ int eos_sock_open_udp(void) {
 }
 
 void eos_sock_close(int sock) {
-    unsigned char *buffer = eos_net_alloc(1);
+    unsigned char *buffer = eos_net_alloc();
     buffer[0] = EOS_SOCK_MTYPE_CLOSE;
     buffer[1] = sock;
     eos_net_send(EOS_NET_MTYPE_SOCK, buffer, 2, 1);
@@ -100,8 +100,8 @@ void eos_sock_set_handler(int sock, eos_sock_fptr_t handler, uint8_t flags) {
     }
     if (flags) {
         uint16_t flag = (uint16_t)1 << sock;
-        if (flags & EOS_NET_FLAG_BUF_FREE) sock_handler_flags_buf_free |= flag;
-        if (flags & EOS_NET_FLAG_BUF_ACQ) sock_handler_flags_buf_acq |= flag;
+        if (flags & EOS_NET_FLAG_BFREE) sock_handler_flags_buf_free |= flag;
+        if (flags & EOS_NET_FLAG_BACQ) sock_handler_flags_buf_acq |= flag;
     }
     sock_handler[sock] = handler;
 }
diff --git a/code/fe310/eos/wifi.c b/code/fe310/eos/wifi.c
index 95fec7d..67682aa 100644
--- a/code/fe310/eos/wifi.c
+++ b/code/fe310/eos/wifi.c
@@ -46,7 +46,7 @@ void eos_wifi_init(void) {
 void eos_wifi_connect(const char *ssid, const char *pass) {
     int ssid_len = strlen(ssid);
     int pass_len = strlen(pass);
-    unsigned char *buffer = eos_net_alloc(0);
+    unsigned char *buffer = eos_net_alloc();
 
     buffer[0] = EOS_WIFI_MTYPE_CONNECT;
     strcpy(buffer+1, ssid);
@@ -57,7 +57,7 @@ void eos_wifi_connect(const char *ssid, const char *pass) {
 }
 
 void eos_wifi_disconnect(void) {
-    unsigned char *buffer = eos_net_alloc(0);
+    unsigned char *buffer = eos_net_alloc();
     buffer[0] = EOS_WIFI_MTYPE_DISCONNECT;
     eos_net_send(EOS_NET_MTYPE_WIFI, buffer, 1, 0);
 }
@@ -69,8 +69,8 @@ void eos_wifi_set_handler(int mtype, eos_wifi_fptr_t handler, uint8_t flags) {
 
     if (flags) {
         uint16_t flag = (uint16_t)1 << mtype;
-        if (flags & EOS_NET_FLAG_BUF_FREE) wifi_handler_flags_buf_free |= flag;
-        if (flags & EOS_NET_FLAG_BUF_ACQ) wifi_handler_flags_buf_acq |= flag;
+        if (flags & EOS_NET_FLAG_BFREE) wifi_handler_flags_buf_free |= flag;
+        if (flags & EOS_NET_FLAG_BACQ) wifi_handler_flags_buf_acq |= flag;
     }
     wifi_handler[mtype] = handler;
 }
-- 
cgit v1.2.3