New IPC interface, lwip receives data from rndis.
This commit is contained in:
@@ -42,6 +42,7 @@ INC_DIR = -I$(KERNEL_ROOT)/services/drivers/usb/ \
|
||||
-I$(KERNEL_ROOT)/services/lib/memory \
|
||||
-I$(KERNEL_ROOT)/services/lib/serial \
|
||||
-I$(KERNEL_ROOT)/services/lib/usyscall \
|
||||
-I$(KERNEL_ROOT)/services/net/libnet \
|
||||
-I$(KERNEL_ROOT)/services/boards/$(BOARD) \
|
||||
-I$(KERNEL_ROOT)/services/app
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
include $(KERNEL_ROOT)/services/drivers/usb/components/usb.mk
|
||||
|
||||
objs = usb_host.o
|
||||
objs += $(KERNEL_ROOT)/services/net/libnet/lwip_rndis_service.o
|
||||
|
||||
all: ${objs}
|
||||
@echo "generate $^"
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
#include "usb_host.h"
|
||||
#include "usb_mem.h"
|
||||
#include "usyscall.h"
|
||||
#include "libipc.h"
|
||||
#include "rndis_service.h"
|
||||
#include "lwip_rndis_service.h"
|
||||
|
||||
/* IPC rndis server */
|
||||
int IPC_DO_SERVE_FUNC(Ipc_usbh_rndis_eth_tx)(void *dataptr, size_t *tot_len){
|
||||
@@ -28,9 +30,32 @@ int ipc_rndis_server_init(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* IPC lwip client */
|
||||
struct Session *g_session_lwip = NULL;
|
||||
|
||||
int ipc_lwip_client_init(void)
|
||||
{
|
||||
struct Session *session;
|
||||
|
||||
session = usb_malloc(sizeof(struct Session));
|
||||
if(connect_session(session, "LWIPServer", 4096) < 0) {
|
||||
printf("connect session failed\n");
|
||||
return -1;
|
||||
}
|
||||
g_session_lwip = session;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int lwip_rndis_data_recv(void *dataptr, size_t len)
|
||||
{
|
||||
struct Session* session = g_session_lwip;
|
||||
return ipc_lwip_rndis_data_recv(session, dataptr, len);
|
||||
}
|
||||
|
||||
/* usb main*/
|
||||
int main(){
|
||||
ipc_lwip_client_init();
|
||||
ipc_rndis_server_init();
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user