mirror of
https://github.com/logicog/RTLPlayground.git
synced 2026-08-30 14:52:51 +08:00
first working(?) version
This commit is contained in:
@@ -353,8 +353,10 @@ void dhcp_stop(void) __banked
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void dhcp_callback(void) __banked
|
void dhcp_callback(uint16_t lport) __banked
|
||||||
{
|
{
|
||||||
|
if (lport != HTONS(DHCPC_CLIENT_PORT)) // Is this call for us? If not, ignore it
|
||||||
|
return;
|
||||||
if (!dhcp_state.state)
|
if (!dhcp_state.state)
|
||||||
return;
|
return;
|
||||||
if (uip_closed()) {
|
if (uip_closed()) {
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
void dhcp_start(void) __banked;
|
void dhcp_start(void) __banked;
|
||||||
void dhcp_stop(void) __banked;
|
void dhcp_stop(void) __banked;
|
||||||
// void dhcp_periodic(void) __banked;
|
// void dhcp_periodic(void) __banked;
|
||||||
void dhcp_callback(void) __banked;
|
void dhcp_callback(uint16_t lport) __banked;
|
||||||
|
|
||||||
|
|
||||||
struct dhcp_state {
|
struct dhcp_state {
|
||||||
|
|||||||
@@ -38,7 +38,6 @@ void syslog_start(void) __banked
|
|||||||
print_string("Started syslog to IP ");
|
print_string("Started syslog to IP ");
|
||||||
itoa(syslog_addr[0]); write_char('.'); itoa(syslog_addr[0]>>8); write_char('.');
|
itoa(syslog_addr[0]); write_char('.'); itoa(syslog_addr[0]>>8); write_char('.');
|
||||||
itoa(syslog_addr[1]); write_char('.'); itoa(syslog_addr[1]>>8); write_char('\n');
|
itoa(syslog_addr[1]); write_char('.'); itoa(syslog_addr[1]>>8); write_char('\n');
|
||||||
|
|
||||||
syslog_enabled = 1;
|
syslog_enabled = 1;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -58,8 +57,11 @@ void syslog_stop(void) __banked
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void syslog_callback(void) __banked
|
void syslog_callback(uint16_t lport) __banked
|
||||||
{
|
{
|
||||||
|
if (lport != syslog_conn->lport)
|
||||||
|
return;
|
||||||
|
|
||||||
if ((logptr_r != logptr_w) && full_line_available)
|
if ((logptr_r != logptr_w) && full_line_available)
|
||||||
{
|
{
|
||||||
int16_t log_size = logptr_w - logptr_r;
|
int16_t log_size = logptr_w - logptr_r;
|
||||||
|
|||||||
@@ -8,6 +8,6 @@
|
|||||||
void syslog_init(void) __banked;
|
void syslog_init(void) __banked;
|
||||||
void syslog_start(void) __banked;
|
void syslog_start(void) __banked;
|
||||||
void syslog_stop(void) __banked;
|
void syslog_stop(void) __banked;
|
||||||
void syslog_callback(void) __banked;
|
void syslog_callback(uint16_t lport) __banked;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
+3
-11
@@ -1,17 +1,9 @@
|
|||||||
|
|
||||||
#include "stdint.h"
|
#include "uip/uip.h"
|
||||||
#include "udp_apps.h"
|
#include "udp_apps.h"
|
||||||
|
|
||||||
static uint8_t callbacknr;
|
|
||||||
|
|
||||||
void udp_callbacks(void)
|
void udp_callbacks(void)
|
||||||
{
|
{
|
||||||
// Calling more than one callback from the same UIP_UDP_APPCALL does not work; we use a simple dispatcher
|
dhcp_callback(uip_udp_conn->lport); // let the application decide if this is for it or not
|
||||||
if (callbacknr == 0) {
|
syslog_callback(uip_udp_conn->lport); // let the application decide if this is for it or not
|
||||||
dhcp_callback();
|
|
||||||
callbacknr = 1;
|
|
||||||
} else {
|
|
||||||
syslog_callback();
|
|
||||||
callbacknr = 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user