Commit 9464aa0d authored by Leonardo Lai's avatar Leonardo Lai

stub

parents
**/*.marker
**/*.o
**/*.ro
**/*cmake*
**/CMakeLists.txt
build/
#
# Created by leoll2 on 9/25/20.
# Copyright (c) 2020 Leonardo Lai. All rights reserved.
#
ROOTDIR?=${CURDIR}/..
PREFIX=/usr/local
PREFIX_LIB=${PREFIX}/lib
PREFIX_INCLUDE=/usr/local/include
PREFIX_BIN=/usr/local/bin
UDPDK_VERSION=0.1
ifeq ($(RTE_SDK),)
$(error "Please define RTE_SDK environment variable")
endif
ifeq ($(RTE_TARGET),)
$(error "Please define RTE_TARGET environment variable")
endif
UDPDK_DPDK=${RTE_SDK}/${RTE_TARGET}
CFLAGS= -march=native -O2
CFLAGS+= -Wall -Wno-deprecated-declarations -Werror
CFLAGS+= -fno-common -finline-limit=8000
CFLAGS+= --param inline-unit-growth=100
CFLAGS+= --param large-function-growth=1000
DPDK_CFLAGS= -DRTE_MACHINE_CPUFLAG_SSE -DRTE_MACHINE_CPUFLAG_SSE2 -DRTE_MACHINE_CPUFLAG_SSE3
DPDK_CFLAGS+= -DRTE_MACHINE_CPUFLAG_SSSE3 -DRTE_MACHINE_CPUFLAG_SSE4_1 -DRTE_MACHINE_CPUFLAG_SSE4_2
DPDK_CFLAGS+= -DRTE_COMPILE_TIME_CPUFLAGS=RTE_CPUFLAG_SSE,RTE_CPUFLAG_SSE2,RTE_CPUFLAG_SSE3,RTE_CPUFLAG_SSSE3,RTE_CPUFLAG_SSE4_1,RTE_CPUFLAG_SSE4_2
DPDK_CFLAGS+= -I${UDPDK_DPDK}/include
UDPDK_C= ${CC} -c $(DPDK_CFLAGS) ${CFLAGS} ${WERROR} $<
UDPDK_SRCS+= \
udpdk_syscall.c \
udpdk_init.c
SRCS= ${UDPDK_SRCS}
OBJS+= $(patsubst %.c,%.o,${SRCS})
all: libudpdk.a
libudpdk.a: ${OBJS}
${LD} -d -r -o $*.ro ${OBJS}
nm $*.ro | grep -v ' U ' | cut -d ' ' -f 3 > $*_localize_list.tmp
objcopy --localize-symbols=$*_localize_list.tmp $*.ro
rm $*_localize_list.tmp
objcopy --globalize-symbols=udpdk_api.symlist $*.ro
rm -f $@
ar -cqs $@ $*.ro
rm -f $*.ro
${OBJS}: %.o: %.c
${UDPDK_C}
.PHONY: clean
clean:
rm -f libudpdk.a
rm -f ${OBJS} ${PROGRAM}
install:
rm -rf ${PREFIX_LIB}/libudpdk.a.${UDPDK_VERSION}
rm -rf ${PREFIX_LIB}/libudpdk.a
rm -rf ${PREFIX_INCLUDE}/udpdk_api.h
cp -f libudpdk.a ${PREFIX_LIB}/libudpdk.a.${UDPDK_VERSION}
ln -sf ${PREFIX_LIB}/libudpdk.a.${UDPDK_VERSION} ${PREFIX_LIB}/libudpdk.a
cp -f udpdk_api.h ${PREFIX_INCLUDE}/udpdk_api.h
uninstall:
rm -rf ${PREFIX_LIB}/libudpdk.a.${UDPDK_VERSION}
rm -rf ${PREFIX_LIB}/libudpdk.a
rm -rf ${PREFIX_INCLUDE}/udpdk_api.h
//
// Created by leoll2 on 9/25/20.
// Copyright (c) 2020 Leonardo Lai. All rights reserved.
//
#ifndef UDPDK_API_H
#define UDPDK_API_H
#ifdef __cplusplus
extern "C" {
#endif
#include <sys/socket.h>
#include <sys/types.h>
#include <unistd.h>
#include "udpdk_types.h"
int udpdk_init(int argc, char *argv[]);
void udpdk_cleanup(void);
int udpdk_socket(int domain, int type, int protocol);
int udpdk_bind(int s, const struct sockaddr *addr, socklen_t addrlen);
ssize_t udpdk_sendto(int sockfd, const void *buf, size_t len, int flags,
const struct sockaddr *dest_addr, socklen_t addrlen);
ssize_t udpdk_recvfrom(int s, void *buf, size_t len, int flags,
struct sockaddr *src_addr, socklen_t *addrlen);
int udpdk_close(int s);
#ifdef __cplusplus
}
#endif
#endif //UDPDK_API_H
udpdk_init
udpdk_cleanup
udpdk_socket
udpdk_bind
udpdk_sendto
udpdk_recvfrom
udpdk_close
\ No newline at end of file
//
// Created by leoll2 on 9/25/20.
// Copyright (c) 2020 Leonardo Lai. All rights reserved.
//
#include <rte_common.h>
#include <rte_eal.h>
#include <rte_ethdev.h>
#include <rte_launch.h>
#include "rte_log.h"
#include <rte_memory.h>
#include "udpdk_api.h"
#define RTE_LOGTYPE_INIT RTE_LOGTYPE_USER1
static int init_mbuf_pools(void)
{
// TODO implement
return 0;
}
int udpdk_init(int argc, char *argv[])
{
// TODO implement
return 0;
}
void udpdk_cleanup(void)
{
// TODO implement
}
\ No newline at end of file
//
// Created by leoll2 on 9/25/20.
// Copyright (c) 2020 Leonardo Lai. All rights reserved.
//
#include "udpdk_api.h"
int udpdk_socket(int domain, int type, int protocol)
{
// TODO implement
return 0;
}
int udpdk_bind(int s, const struct sockaddr *addr, socklen_t addrlen)
{
// TODO implement
return 0;
}
ssize_t udpdk_sendto(int sockfd, const void *buf, size_t len, int flags,
const struct sockaddr *dest_addr, socklen_t addrlen)
{
// TODO implement
return 0;
}
ssize_t udpdk_recvfrom(int s, void *buf, size_t len, int flags,
struct sockaddr *src_addr, socklen_t *addrlen)
{
// TODO implement
return 0;
}
int udpdk_close(int s)
{
// TODO implement
return 0;
}
\ No newline at end of file
//
// Created by leoll2 on 9/25/20.
// Copyright (c) 2020 Leonardo Lai. All rights reserved.
//
#ifndef UDPDK_TYPES_H
#define UDPDK_TYPES_H
#endif //UDPDK_TYPES_H
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment