From: Anand Rawat <anand.rawat@intel.com>
To: dev@dpdk.org
Cc: pallavi.kadam@intel.com, ranjit.menon@intel.com,
jeffrey.b.shaw@intel.com, thomas@monjalon.net
Subject: [dpdk-dev] [PATCH v2 3/6] eal: add headers for compatibility with windows environment
Date: Tue, 5 Mar 2019 20:16:31 -0800 [thread overview]
Message-ID: <20190306041634.12976-4-anand.rawat@intel.com> (raw)
In-Reply-To: <20190306041634.12976-1-anand.rawat@intel.com>
Added headers to support windows environment for common source.
These headers will have windows specific implementions of the
system library apis provided in linux and freebsd.
Signed-off-by: Anand Rawat <anand.rawat@intel.com>
Signed-off-by: Pallavi Kadam <pallavi.kadam@intel.com>
Reviewed-by: Jeff Shaw <jeffrey.b.shaw@intel.com>
Reviewed-by: Ranjit Menon <ranjit.menon@intel.com>
---
.../windows/eal/include/exec-env/fnmatch.h | 25 ++
.../windows/eal/include/exec-env/pthread.h | 19 ++
.../windows/eal/include/exec-env/regex.h | 50 +++
.../windows/eal/include/exec-env/sched.h | 41 +++
.../windows/eal/include/exec-env/sys/queue.h | 320 ++++++++++++++++++
.../windows/eal/include/exec-env/unistd.h | 7 +
6 files changed, 462 insertions(+)
create mode 100644 lib/librte_eal/windows/eal/include/exec-env/fnmatch.h
create mode 100644 lib/librte_eal/windows/eal/include/exec-env/pthread.h
create mode 100644 lib/librte_eal/windows/eal/include/exec-env/regex.h
create mode 100644 lib/librte_eal/windows/eal/include/exec-env/sched.h
create mode 100644 lib/librte_eal/windows/eal/include/exec-env/sys/queue.h
create mode 100644 lib/librte_eal/windows/eal/include/exec-env/unistd.h
diff --git a/lib/librte_eal/windows/eal/include/exec-env/fnmatch.h b/lib/librte_eal/windows/eal/include/exec-env/fnmatch.h
new file mode 100644
index 000000000..1422ba56a
--- /dev/null
+++ b/lib/librte_eal/windows/eal/include/exec-env/fnmatch.h
@@ -0,0 +1,25 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2019 Intel Corporation
+ */
+
+#ifndef _FNMATCH_H_
+#define _FNMATCH_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define FNM_NOMATCH 1
+
+static inline int fnmatch(__rte_unused const char *pattern,
+ __rte_unused const char *string,
+ __rte_unused int flags)
+{
+ return FNM_NOMATCH;
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _FNMATCH_H_ */
diff --git a/lib/librte_eal/windows/eal/include/exec-env/pthread.h b/lib/librte_eal/windows/eal/include/exec-env/pthread.h
new file mode 100644
index 000000000..431550577
--- /dev/null
+++ b/lib/librte_eal/windows/eal/include/exec-env/pthread.h
@@ -0,0 +1,19 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2019 Intel Corporation
+ */
+
+#ifndef _PTHREAD_H_
+#define _PTHREAD_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef uintptr_t pthread_t;
+typedef void *pthread_attr_t;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PTHREAD_H_ */
diff --git a/lib/librte_eal/windows/eal/include/exec-env/regex.h b/lib/librte_eal/windows/eal/include/exec-env/regex.h
new file mode 100644
index 000000000..efd3f1ecd
--- /dev/null
+++ b/lib/librte_eal/windows/eal/include/exec-env/regex.h
@@ -0,0 +1,50 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2019 Intel Corporation
+ */
+
+#ifndef _REGEX_H_
+#define _REGEX_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define REG_NOMATCH 1
+#define REG_ESPACE 12
+
+typedef void *regex_t;
+typedef void *regmatch_t;
+
+static inline int regcomp(__rte_unused regex_t *preg,
+ __rte_unused const char *regex, __rte_unused int cflags)
+{
+ return REG_ESPACE;
+}
+
+static inline int regexec(__rte_unused const regex_t *preg,
+ __rte_unused const char *string, __rte_unused size_t nmatch,
+ __rte_unused regmatch_t pmatch[], __rte_unused int eflags)
+{
+ return REG_NOMATCH;
+}
+
+static inline size_t regerror(__rte_unused int errcode,
+ __rte_unused const regex_t *preg, char *errbuf,
+ __rte_unused size_t errbuf_size)
+{
+ if (errbuf) {
+ *errbuf = '\0';
+ return 1;
+ }
+ return 0;
+}
+
+static inline void regfree(__rte_unused regex_t *preg)
+{
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _REGEX_H_ */
diff --git a/lib/librte_eal/windows/eal/include/exec-env/sched.h b/lib/librte_eal/windows/eal/include/exec-env/sched.h
new file mode 100644
index 000000000..b105c43c3
--- /dev/null
+++ b/lib/librte_eal/windows/eal/include/exec-env/sched.h
@@ -0,0 +1,41 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2019 Intel Corporation
+ */
+
+#ifndef _SCHED_H_
+#define _SCHED_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef CPU_SET_SIZE
+#define CPU_SET_SIZE RTE_MAX_LCORE
+#endif
+
+#define _BITS_PER_SET (sizeof(long long) * 8)
+#define _BIT_SET_MASK (_BITS_PER_SET - 1)
+
+#define _NUM_SETS(b) (((b) + _BIT_SET_MASK) / _BITS_PER_SET)
+#define _WHICH_SET(b) ((b) / _BITS_PER_SET)
+#define _WHICH_BIT(b) ((b) & (_BITS_PER_SET - 1))
+
+typedef struct _rte_cpuset_s {
+ long long _bits[_NUM_SETS(CPU_SET_SIZE)];
+} rte_cpuset_t;
+
+#define CPU_SET(b, s) ((s)->_bits[_WHICH_SET(b)] |= (1LL << _WHICH_BIT(b)))
+
+#define CPU_ZERO(s) \
+ do { \
+ unsigned int _i; \
+ \
+ for (_i = 0; _i < _NUM_SETS(CPU_SET_SIZE); _i++) \
+ (s)->_bits[_i] = 0LL; \
+ } while (0)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SCHED_H_ */
diff --git a/lib/librte_eal/windows/eal/include/exec-env/sys/queue.h b/lib/librte_eal/windows/eal/include/exec-env/sys/queue.h
new file mode 100644
index 000000000..5ee4916ad
--- /dev/null
+++ b/lib/librte_eal/windows/eal/include/exec-env/sys/queue.h
@@ -0,0 +1,320 @@
+/*-
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ * Copyright (c) 1991, 1993
+ * The Regents of the University of California. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ */
+
+#ifndef _SYS_QUEUE_H_
+#define _SYS_QUEUE_H_
+
+/*
+ * This file defines tail queues.
+ *
+ * A tail queue is headed by a pair of pointers, one to the head of the
+ * list and the other to the tail of the list. The elements are doubly
+ * linked so that an arbitrary element can be removed without a need to
+ * traverse the list. New elements can be added to the list before or
+ * after an existing element, at the head of the list, or at the end of
+ * the list. A tail queue may be traversed in either direction.
+ *
+ * Below is a summary of implemented functions where:
+ * + means the macro is available
+ * - means the macro is not available
+ * s means the macro is available but is slow (runs in O(n) time)
+ *
+ * TAILQ
+ * _HEAD +
+ * _CLASS_HEAD +
+ * _HEAD_INITIALIZER +
+ * _ENTRY +
+ * _CLASS_ENTRY +
+ * _INIT +
+ * _EMPTY +
+ * _FIRST +
+ * _NEXT +
+ * _PREV +
+ * _LAST +
+ * _LAST_FAST +
+ * _FOREACH +
+ * _FOREACH_FROM +
+ * _FOREACH_SAFE +
+ * _FOREACH_FROM_SAFE +
+ * _FOREACH_REVERSE +
+ * _FOREACH_REVERSE_FROM +
+ * _FOREACH_REVERSE_SAFE +
+ * _FOREACH_REVERSE_FROM_SAFE +
+ * _INSERT_HEAD +
+ * _INSERT_BEFORE +
+ * _INSERT_AFTER +
+ * _INSERT_TAIL +
+ * _CONCAT +
+ * _REMOVE_AFTER -
+ * _REMOVE_HEAD -
+ * _REMOVE +
+ * _SWAP +
+ *
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define QMD_TRACE_ELEM(elem)
+#define QMD_TRACE_HEAD(head)
+#define TRACEBUF
+#define TRACEBUF_INITIALIZER
+
+#define TRASHIT(x)
+#define QMD_IS_TRASHED(x) 0
+
+#define QMD_SAVELINK(name, link)
+
+#ifdef __cplusplus
+/*
+ * In C++ there can be structure lists and class lists:
+ */
+#define QUEUE_TYPEOF(type) type
+#else
+#define QUEUE_TYPEOF(type) struct type
+#endif
+
+/*
+ * Tail queue declarations.
+ */
+#define TAILQ_HEAD(name, type) \
+struct name { \
+ struct type *tqh_first; /* first element */ \
+ struct type **tqh_last; /* addr of last next element */ \
+ TRACEBUF \
+}
+
+#define TAILQ_CLASS_HEAD(name, type) \
+struct name { \
+ class type *tqh_first; /* first element */ \
+ class type **tqh_last; /* addr of last next element */ \
+ TRACEBUF \
+}
+
+#define TAILQ_HEAD_INITIALIZER(head) \
+ { NULL, &(head).tqh_first, TRACEBUF_INITIALIZER }
+
+#define TAILQ_ENTRY(type) \
+struct { \
+ struct type *tqe_next; /* next element */ \
+ struct type **tqe_prev; /* address of previous next element */ \
+ TRACEBUF \
+}
+
+#define TAILQ_CLASS_ENTRY(type) \
+struct { \
+ class type *tqe_next; /* next element */ \
+ class type **tqe_prev; /* address of previous next element */ \
+ TRACEBUF \
+}
+
+/*
+ * Tail queue functions.
+ */
+#define QMD_TAILQ_CHECK_HEAD(head, field)
+#define QMD_TAILQ_CHECK_TAIL(head, headname)
+#define QMD_TAILQ_CHECK_NEXT(elm, field)
+#define QMD_TAILQ_CHECK_PREV(elm, field)
+
+#define TAILQ_CONCAT(head1, head2, field) do { \
+ if (!TAILQ_EMPTY(head2)) { \
+ *(head1)->tqh_last = (head2)->tqh_first; \
+ (head2)->tqh_first->field.tqe_prev = (head1)->tqh_last; \
+ (head1)->tqh_last = (head2)->tqh_last; \
+ TAILQ_INIT((head2)); \
+ QMD_TRACE_HEAD(head1); \
+ QMD_TRACE_HEAD(head2); \
+ } \
+} while (0)
+
+#define TAILQ_EMPTY(head) ((head)->tqh_first == NULL)
+
+#define TAILQ_FIRST(head) ((head)->tqh_first)
+
+#define TAILQ_FOREACH(var, head, field) \
+ for ((var) = TAILQ_FIRST((head)); \
+ (var); \
+ (var) = TAILQ_NEXT((var), field))
+
+#define TAILQ_FOREACH_FROM(var, head, field) \
+ for ((var) = ((var) ? (var) : TAILQ_FIRST((head))); \
+ (var); \
+ (var) = TAILQ_NEXT((var), field))
+
+#define TAILQ_FOREACH_SAFE(var, head, field, tvar) \
+ for ((var) = TAILQ_FIRST((head)); \
+ (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
+ (var) = (tvar))
+
+#define TAILQ_FOREACH_FROM_SAFE(var, head, field, tvar) \
+ for ((var) = ((var) ? (var) : TAILQ_FIRST((head))); \
+ (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
+ (var) = (tvar))
+
+#define TAILQ_FOREACH_REVERSE(var, head, headname, field) \
+ for ((var) = TAILQ_LAST((head), headname); \
+ (var); \
+ (var) = TAILQ_PREV((var), headname, field))
+
+#define TAILQ_FOREACH_REVERSE_FROM(var, head, headname, field) \
+ for ((var) = ((var) ? (var) : TAILQ_LAST((head), headname)); \
+ (var); \
+ (var) = TAILQ_PREV((var), headname, field))
+
+#define TAILQ_FOREACH_REVERSE_SAFE(var, head, headname, field, tvar) \
+ for ((var) = TAILQ_LAST((head), headname); \
+ (var) && ((tvar) = TAILQ_PREV((var), headname, field), 1); \
+ (var) = (tvar))
+
+#define TAILQ_FOREACH_REVERSE_FROM_SAFE(var, head, headname, field, tvar) \
+ for ((var) = ((var) ? (var) : TAILQ_LAST((head), headname)); \
+ (var) && ((tvar) = TAILQ_PREV((var), headname, field), 1); \
+ (var) = (tvar))
+
+#define TAILQ_INIT(head) do { \
+ TAILQ_FIRST((head)) = NULL; \
+ (head)->tqh_last = &TAILQ_FIRST((head)); \
+ QMD_TRACE_HEAD(head); \
+} while (0)
+
+#define TAILQ_INSERT_AFTER(head, listelm, elm, field) do { \
+ QMD_TAILQ_CHECK_NEXT(listelm, field); \
+ TAILQ_NEXT((elm), field) = TAILQ_NEXT((listelm), field); \
+ if (TAILQ_NEXT((listelm), field) != NULL) \
+ TAILQ_NEXT((elm), field)->field.tqe_prev = \
+ &TAILQ_NEXT((elm), field); \
+ else { \
+ (head)->tqh_last = &TAILQ_NEXT((elm), field); \
+ QMD_TRACE_HEAD(head); \
+ } \
+ TAILQ_NEXT((listelm), field) = (elm); \
+ (elm)->field.tqe_prev = &TAILQ_NEXT((listelm), field); \
+ QMD_TRACE_ELEM(&(elm)->field); \
+ QMD_TRACE_ELEM(&(listelm)->field); \
+} while (0)
+
+#define TAILQ_INSERT_BEFORE(listelm, elm, field) do { \
+ QMD_TAILQ_CHECK_PREV(listelm, field); \
+ (elm)->field.tqe_prev = (listelm)->field.tqe_prev; \
+ TAILQ_NEXT((elm), field) = (listelm); \
+ *(listelm)->field.tqe_prev = (elm); \
+ (listelm)->field.tqe_prev = &TAILQ_NEXT((elm), field); \
+ QMD_TRACE_ELEM(&(elm)->field); \
+ QMD_TRACE_ELEM(&(listelm)->field); \
+} while (0)
+
+#define TAILQ_INSERT_HEAD(head, elm, field) do { \
+ QMD_TAILQ_CHECK_HEAD(head, field); \
+ TAILQ_NEXT((elm), field) = TAILQ_FIRST((head)); \
+ if (TAILQ_FIRST((head)) != NULL) \
+ TAILQ_FIRST((head))->field.tqe_prev = \
+ &TAILQ_NEXT((elm), field); \
+ else \
+ (head)->tqh_last = &TAILQ_NEXT((elm), field); \
+ TAILQ_FIRST((head)) = (elm); \
+ (elm)->field.tqe_prev = &TAILQ_FIRST((head)); \
+ QMD_TRACE_HEAD(head); \
+ QMD_TRACE_ELEM(&(elm)->field); \
+} while (0)
+
+#define TAILQ_INSERT_TAIL(head, elm, field) do { \
+ QMD_TAILQ_CHECK_TAIL(head, field); \
+ TAILQ_NEXT((elm), field) = NULL; \
+ (elm)->field.tqe_prev = (head)->tqh_last; \
+ *(head)->tqh_last = (elm); \
+ (head)->tqh_last = &TAILQ_NEXT((elm), field); \
+ QMD_TRACE_HEAD(head); \
+ QMD_TRACE_ELEM(&(elm)->field); \
+} while (0)
+
+#define TAILQ_LAST(head, headname) \
+ (*(((struct headname *)((head)->tqh_last))->tqh_last))
+
+/*
+ * The FAST function is fast in that it causes no data access other
+ * then the access to the head. The standard LAST function above
+ * will cause a data access of both the element you want and
+ * the previous element. FAST is very useful for instances when
+ * you may want to prefetch the last data element.
+ */
+#define TAILQ_LAST_FAST(head, type, field) \
+ (TAILQ_EMPTY(head) ? NULL : __containerof((head)->tqh_last, \
+ QUEUE_TYPEOF(type), field.tqe_next))
+
+#define TAILQ_NEXT(elm, field) ((elm)->field.tqe_next)
+
+#define TAILQ_PREV(elm, headname, field) \
+ (*(((struct headname *)((elm)->field.tqe_prev))->tqh_last))
+
+#define TAILQ_REMOVE(head, elm, field) do { \
+ QMD_SAVELINK(oldnext, (elm)->field.tqe_next); \
+ QMD_SAVELINK(oldprev, (elm)->field.tqe_prev); \
+ QMD_TAILQ_CHECK_NEXT(elm, field); \
+ QMD_TAILQ_CHECK_PREV(elm, field); \
+ if ((TAILQ_NEXT((elm), field)) != NULL) \
+ TAILQ_NEXT((elm), field)->field.tqe_prev = \
+ (elm)->field.tqe_prev; \
+ else { \
+ (head)->tqh_last = (elm)->field.tqe_prev; \
+ QMD_TRACE_HEAD(head); \
+ } \
+ *(elm)->field.tqe_prev = TAILQ_NEXT((elm), field); \
+ TRASHIT(*oldnext); \
+ TRASHIT(*oldprev); \
+ QMD_TRACE_ELEM(&(elm)->field); \
+} while (0)
+
+#define TAILQ_SWAP(head1, head2, type, field) do { \
+ QUEUE_TYPEOF(type) * swap_first = (head1)->tqh_first; \
+ QUEUE_TYPEOF(type) * *swap_last = (head1)->tqh_last; \
+ (head1)->tqh_first = (head2)->tqh_first; \
+ (head1)->tqh_last = (head2)->tqh_last; \
+ (head2)->tqh_first = swap_first; \
+ (head2)->tqh_last = swap_last; \
+ swap_first = (head1)->tqh_first; \
+ if (swap_first != NULL) \
+ swap_first->field.tqe_prev = &(head1)->tqh_first; \
+ else \
+ (head1)->tqh_last = &(head1)->tqh_first; \
+ swap_first = (head2)->tqh_first; \
+ if (swap_first != NULL) \
+ swap_first->field.tqe_prev = &(head2)->tqh_first; \
+ else \
+ (head2)->tqh_last = &(head2)->tqh_first; \
+} while (0)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_QUEUE_H_ */
diff --git a/lib/librte_eal/windows/eal/include/exec-env/unistd.h b/lib/librte_eal/windows/eal/include/exec-env/unistd.h
new file mode 100644
index 000000000..4973fc793
--- /dev/null
+++ b/lib/librte_eal/windows/eal/include/exec-env/unistd.h
@@ -0,0 +1,7 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2019 Intel Corporation
+ */
+
+#ifndef _UNISTD_H_
+#define _UNISTD_H_
+#endif /* _UNISTD_H_ */
--
2.17.1.windows.2
next prev parent reply other threads:[~2019-03-06 4:16 UTC|newest]
Thread overview: 327+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-03-06 4:16 [dpdk-dev] [PATCH v2 0/6] HelloWorld example for windows Anand Rawat
2019-03-06 4:16 ` [dpdk-dev] [PATCH v2 1/6] eal: eal stub to add windows support Anand Rawat
2019-03-06 10:03 ` Thomas Monjalon
2019-03-06 11:20 ` Bruce Richardson
2019-03-06 11:36 ` Thomas Monjalon
2019-03-06 11:52 ` Richardson, Bruce
2019-03-07 1:04 ` Anand Rawat
2019-03-07 8:59 ` Thomas Monjalon
2019-03-07 1:19 ` Anand Rawat
2019-03-06 4:16 ` [dpdk-dev] [PATCH v2 2/6] eal: add header files to support windows Anand Rawat
2019-03-06 11:31 ` Thomas Monjalon
2019-03-07 3:27 ` Anand Rawat
2019-03-07 8:45 ` Thomas Monjalon
2019-03-07 10:24 ` Bruce Richardson
2019-03-07 11:33 ` Thomas Monjalon
2019-03-07 11:53 ` Richardson, Bruce
2019-03-06 4:16 ` Anand Rawat [this message]
2019-03-06 4:16 ` [dpdk-dev] [PATCH v2 4/6] eal: add minimum viable code for eal on windows Anand Rawat
2019-03-06 4:16 ` [dpdk-dev] [PATCH v2 5/6] examples: add meson changes for windows Anand Rawat
2019-03-06 4:16 ` [dpdk-dev] [PATCH v2 6/6] doc: add documention " Anand Rawat
2019-03-07 17:03 ` Kovacevic, Marko
2019-03-07 18:46 ` Anand Rawat
2019-03-11 12:45 ` Jerin Jacob Kollanukkaran
2019-03-11 13:51 ` Richardson, Bruce
2019-03-11 15:30 ` Raslan Darawsheh
2019-03-11 15:46 ` Jerin Jacob Kollanukkaran
2019-03-14 0:04 ` Anand Rawat
2019-03-14 0:04 ` Anand Rawat
2019-03-06 8:29 ` [dpdk-dev] [PATCH v2 0/6] HelloWorld example " Thomas Monjalon
2019-03-06 22:45 ` Anand Rawat
2019-03-06 23:03 ` Thomas Monjalon
2019-03-20 0:40 ` [dpdk-dev] [PATCH v3 0/8] " Anand Rawat
2019-03-20 0:40 ` Anand Rawat
2019-03-20 0:40 ` [dpdk-dev] [PATCH v3 1/8] eal: eal stub to add windows support Anand Rawat
2019-03-20 0:40 ` Anand Rawat
2019-03-20 0:40 ` [dpdk-dev] [PATCH v3 2/8] eal: add header files to support windows Anand Rawat
2019-03-20 0:40 ` Anand Rawat
2019-03-20 0:40 ` [dpdk-dev] [PATCH v3 3/8] kvargs: adding a module definition file Anand Rawat
2019-03-20 0:40 ` Anand Rawat
2019-03-20 0:40 ` [dpdk-dev] [PATCH v3 4/8] eal: sys/queue.h implementation for windows Anand Rawat
2019-03-20 0:40 ` Anand Rawat
2019-03-20 0:40 ` [dpdk-dev] [PATCH v3 5/8] eal: add headers for compatibility with windows environment Anand Rawat
2019-03-20 0:40 ` Anand Rawat
2019-03-20 0:40 ` [dpdk-dev] [PATCH v3 6/8] eal: add minimum viable code for eal on windows Anand Rawat
2019-03-20 0:40 ` Anand Rawat
2019-03-20 0:40 ` [dpdk-dev] [PATCH v3 7/8] doc: add documention for windows Anand Rawat
2019-03-20 0:40 ` Anand Rawat
2019-03-20 0:40 ` [dpdk-dev] [PATCH v3 8/8] build: meson changes to build on windows Anand Rawat
2019-03-20 0:40 ` Anand Rawat
2019-03-22 22:54 ` [dpdk-dev] [PATCH v4 0/8] HelloWorld example for windows Anand Rawat
2019-03-22 22:54 ` Anand Rawat
2019-03-22 22:54 ` [dpdk-dev] [PATCH v4 1/8] eal: eal stub to add windows support Anand Rawat
2019-03-22 22:54 ` Anand Rawat
2019-03-22 22:54 ` [dpdk-dev] [PATCH v4 2/8] eal: add header files to support windows Anand Rawat
2019-03-22 22:54 ` Anand Rawat
2019-03-22 22:55 ` [dpdk-dev] [PATCH v4 3/8] kvargs: adding a module definition file Anand Rawat
2019-03-22 22:55 ` Anand Rawat
2019-03-22 22:55 ` [dpdk-dev] [PATCH v4 4/8] eal: sys/queue.h implementation for windows Anand Rawat
2019-03-22 22:55 ` Anand Rawat
2019-03-22 22:55 ` [dpdk-dev] [PATCH v4 5/8] eal: add headers for compatibility with windows environment Anand Rawat
2019-03-22 22:55 ` Anand Rawat
2019-03-22 22:55 ` [dpdk-dev] [PATCH v4 6/8] eal: add minimum viable code for eal on windows Anand Rawat
2019-03-22 22:55 ` Anand Rawat
2019-03-22 22:55 ` [dpdk-dev] [PATCH v4 7/8] doc: add documention for windows Anand Rawat
2019-03-22 22:55 ` Anand Rawat
2019-03-23 16:51 ` Jerin Jacob Kollanukkaran
2019-03-23 16:51 ` Jerin Jacob Kollanukkaran
2019-03-25 10:24 ` Bruce Richardson
2019-03-25 10:24 ` Bruce Richardson
2019-03-25 17:43 ` Pallavi Kadam
2019-03-25 17:43 ` Pallavi Kadam
2019-03-22 22:55 ` [dpdk-dev] [PATCH v4 8/8] build: meson changes to build on windows Anand Rawat
2019-03-22 22:55 ` Anand Rawat
2019-03-25 10:32 ` Bruce Richardson
2019-03-25 10:32 ` Bruce Richardson
2019-03-25 18:47 ` [dpdk-dev] [PATCH v4 0/8] HelloWorld example for windows Harini Ramakrishnan
2019-03-25 18:47 ` Harini Ramakrishnan
2019-03-26 6:02 ` [dpdk-dev] [PATCH v5 " Anand Rawat
2019-03-26 6:02 ` Anand Rawat
2019-03-26 6:02 ` [dpdk-dev] [PATCH v5 1/8] eal: eal stub to add windows support Anand Rawat
2019-03-26 6:02 ` Anand Rawat
2019-03-26 16:29 ` Harini Ramakrishnan
2019-03-26 16:29 ` Harini Ramakrishnan
[not found] ` <MWHPR21MB0638113CDE9F61F8EC3E63D0EF5F0@MWHPR21MB0638.namprd21.prod.outlook.com>
2019-03-26 22:50 ` Omar Cardona
2019-03-26 22:50 ` Omar Cardona
2019-03-26 6:02 ` [dpdk-dev] [PATCH v5 2/8] eal: add header files to support windows Anand Rawat
2019-03-26 6:02 ` Anand Rawat
2019-03-26 10:20 ` Jerin Jacob Kollanukkaran
2019-03-26 10:20 ` Jerin Jacob Kollanukkaran
2019-03-27 21:23 ` Ranjit Menon
2019-03-27 21:23 ` Ranjit Menon
2019-03-27 22:29 ` Thomas Monjalon
2019-03-27 22:29 ` Thomas Monjalon
2019-03-27 23:10 ` Anand Rawat
2019-03-27 23:10 ` Anand Rawat
2019-03-27 23:27 ` Thomas Monjalon
2019-03-27 23:27 ` Thomas Monjalon
2019-03-26 16:30 ` Harini Ramakrishnan
2019-03-26 16:30 ` Harini Ramakrishnan
2019-03-26 6:02 ` [dpdk-dev] [PATCH v5 3/8] kvargs: adding a module definition file Anand Rawat
2019-03-26 6:02 ` Anand Rawat
2019-03-26 10:32 ` Jerin Jacob Kollanukkaran
2019-03-26 10:32 ` Jerin Jacob Kollanukkaran
2019-03-26 10:58 ` Bruce Richardson
2019-03-26 10:58 ` Bruce Richardson
2019-03-26 13:37 ` [dpdk-dev] [EXT] " Jerin Jacob Kollanukkaran
2019-03-26 13:37 ` Jerin Jacob Kollanukkaran
2019-03-26 13:55 ` Thomas Monjalon
2019-03-26 13:55 ` Thomas Monjalon
2019-03-26 14:41 ` Bruce Richardson
2019-03-26 14:41 ` Bruce Richardson
2019-03-26 15:07 ` Thomas Monjalon
2019-03-26 15:07 ` Thomas Monjalon
2019-03-26 15:17 ` Bruce Richardson
2019-03-26 15:17 ` Bruce Richardson
2019-03-26 15:22 ` Thomas Monjalon
2019-03-26 15:22 ` Thomas Monjalon
2019-03-26 14:40 ` Bruce Richardson
2019-03-26 14:40 ` Bruce Richardson
2019-03-26 15:35 ` Jerin Jacob Kollanukkaran
2019-03-26 15:35 ` Jerin Jacob Kollanukkaran
2019-03-26 16:46 ` Bruce Richardson
2019-03-26 16:46 ` Bruce Richardson
2019-03-26 23:13 ` Anand Rawat
2019-03-26 23:13 ` Anand Rawat
2019-03-26 16:31 ` [dpdk-dev] " Harini Ramakrishnan
2019-03-26 16:31 ` Harini Ramakrishnan
2019-03-26 19:02 ` Stephen Hemminger
2019-03-26 19:02 ` Stephen Hemminger
2019-03-26 6:02 ` [dpdk-dev] [PATCH v5 4/8] eal: sys/queue.h implementation for windows Anand Rawat
2019-03-26 6:02 ` Anand Rawat
2019-03-26 16:31 ` Harini Ramakrishnan
2019-03-26 16:31 ` Harini Ramakrishnan
2019-03-26 19:06 ` Stephen Hemminger
2019-03-26 19:06 ` Stephen Hemminger
2019-03-26 20:52 ` Thomas Monjalon
2019-03-26 20:52 ` Thomas Monjalon
2019-03-26 21:14 ` Jeff Shaw
2019-03-26 21:14 ` Jeff Shaw
2019-03-26 21:47 ` Thomas Monjalon
2019-03-26 21:47 ` Thomas Monjalon
2019-03-26 21:54 ` Jeff Shaw
2019-03-26 21:54 ` Jeff Shaw
2019-03-26 22:23 ` Thomas Monjalon
2019-03-26 22:23 ` Thomas Monjalon
2019-03-26 22:34 ` Jeff Shaw
2019-03-26 22:34 ` Jeff Shaw
2019-03-26 23:00 ` Thomas Monjalon
2019-03-26 23:00 ` Thomas Monjalon
2019-03-26 23:43 ` Jeff Shaw
2019-03-26 23:43 ` Jeff Shaw
2019-03-26 23:54 ` Thomas Monjalon
2019-03-26 23:54 ` Thomas Monjalon
2019-03-27 21:16 ` Anand Rawat
2019-03-27 21:16 ` Anand Rawat
2019-03-26 6:02 ` [dpdk-dev] [PATCH v5 5/8] eal: add headers for compatibility with windows environment Anand Rawat
2019-03-26 6:02 ` Anand Rawat
2019-03-26 16:33 ` Harini Ramakrishnan
2019-03-26 16:33 ` Harini Ramakrishnan
2019-03-26 6:02 ` [dpdk-dev] [PATCH v5 6/8] eal: add minimum viable code for eal on windows Anand Rawat
2019-03-26 6:02 ` Anand Rawat
2019-03-26 16:32 ` Harini Ramakrishnan
2019-03-26 16:32 ` Harini Ramakrishnan
2019-03-26 6:02 ` [dpdk-dev] [PATCH v5 7/8] doc: add documention for windows Anand Rawat
2019-03-26 6:02 ` Anand Rawat
2019-03-26 10:27 ` Jerin Jacob Kollanukkaran
2019-03-26 10:27 ` Jerin Jacob Kollanukkaran
2019-03-26 10:37 ` David Marchand
2019-03-26 10:37 ` David Marchand
2019-03-26 18:29 ` Anand Rawat
2019-03-26 18:29 ` Anand Rawat
2019-03-26 16:33 ` Harini Ramakrishnan
2019-03-26 16:33 ` Harini Ramakrishnan
2019-03-26 6:02 ` [dpdk-dev] [PATCH v5 8/8] build: meson changes to build on windows Anand Rawat
2019-03-26 6:02 ` Anand Rawat
2019-03-26 16:34 ` Harini Ramakrishnan
2019-03-26 16:34 ` Harini Ramakrishnan
2019-03-26 16:28 ` [dpdk-dev] [PATCH v5 0/8] HelloWorld example for windows Harini Ramakrishnan
2019-03-26 16:28 ` Harini Ramakrishnan
[not found] ` <MWHPR21MB06380D6FA7CF5513DDC3820AEF5F0@MWHPR21MB0638.namprd21.prod.outlook.com>
2019-03-26 22:43 ` Omar Cardona
2019-03-26 22:43 ` Omar Cardona
2019-03-28 2:21 ` [dpdk-dev] [PATCH v6 " Anand Rawat
2019-03-28 2:21 ` Anand Rawat
2019-03-28 2:21 ` [dpdk-dev] [PATCH v6 1/8] eal: eal stub to add windows support Anand Rawat
2019-03-28 2:21 ` Anand Rawat
2019-03-28 19:27 ` Harini Ramakrishnan
2019-03-28 19:27 ` Harini Ramakrishnan
2019-03-28 2:21 ` [dpdk-dev] [PATCH v6 2/8] eal: add header files to support os specifics Anand Rawat
2019-03-28 2:21 ` Anand Rawat
2019-03-28 19:27 ` Harini Ramakrishnan
2019-03-28 19:27 ` Harini Ramakrishnan
2019-03-28 2:21 ` [dpdk-dev] [PATCH v6 3/8] build: add module definition file for windows Anand Rawat
2019-03-28 2:21 ` Anand Rawat
2019-03-28 19:29 ` Harini Ramakrishnan
2019-03-28 19:29 ` Harini Ramakrishnan
2019-03-28 2:21 ` [dpdk-dev] [PATCH v6 4/8] eal: sys/queue.h implementation " Anand Rawat
2019-03-28 2:21 ` Anand Rawat
2019-03-28 2:30 ` Varghese, Vipin
2019-03-28 2:30 ` Varghese, Vipin
2019-03-28 2:39 ` Anand Rawat
2019-03-28 2:39 ` Anand Rawat
2019-03-28 3:29 ` Varghese, Vipin
2019-03-28 3:29 ` Varghese, Vipin
2019-03-28 19:30 ` Harini Ramakrishnan
2019-03-28 19:30 ` Harini Ramakrishnan
2019-03-28 2:21 ` [dpdk-dev] [PATCH v6 5/8] eal: add headers for compatibility with windows Anand Rawat
2019-03-28 2:21 ` Anand Rawat
2019-03-28 19:29 ` Harini Ramakrishnan
2019-03-28 19:29 ` Harini Ramakrishnan
2019-03-28 2:21 ` [dpdk-dev] [PATCH v6 6/8] eal: add minimum viable code for eal on windows Anand Rawat
2019-03-28 2:21 ` Anand Rawat
2019-03-28 19:32 ` Harini Ramakrishnan
2019-03-28 19:32 ` Harini Ramakrishnan
2019-03-28 2:21 ` [dpdk-dev] [PATCH v6 7/8] doc: add documentation for windows Anand Rawat
2019-03-28 2:21 ` Anand Rawat
2019-03-28 19:31 ` Harini Ramakrishnan
2019-03-28 19:31 ` Harini Ramakrishnan
2019-03-28 2:21 ` [dpdk-dev] [PATCH v6 8/8] build: meson changes to build on windows Anand Rawat
2019-03-28 2:21 ` Anand Rawat
2019-03-28 15:10 ` Thomas Monjalon
2019-03-28 15:10 ` Thomas Monjalon
2019-03-28 19:30 ` Harini Ramakrishnan
2019-03-28 19:30 ` Harini Ramakrishnan
2019-03-28 19:28 ` [dpdk-dev] [PATCH v6 0/8] HelloWorld example for windows Harini Ramakrishnan
2019-03-28 19:28 ` Harini Ramakrishnan
2019-03-28 23:24 ` [dpdk-dev] [PATCH v7 " Anand Rawat
2019-03-28 23:24 ` Anand Rawat
2019-03-28 23:24 ` [dpdk-dev] [PATCH v7 1/8] eal: eal stub to add windows support Anand Rawat
2019-03-28 23:24 ` Anand Rawat
2019-04-01 16:17 ` Bruce Richardson
2019-04-01 16:17 ` Bruce Richardson
2019-04-01 16:34 ` Bruce Richardson
2019-04-01 16:34 ` Bruce Richardson
2019-04-01 17:06 ` Anand Rawat
2019-04-01 17:06 ` Anand Rawat
2019-04-01 20:10 ` Bruce Richardson
2019-04-01 20:10 ` Bruce Richardson
2019-03-28 23:24 ` [dpdk-dev] [PATCH v7 2/8] eal: add header files to support os specifics Anand Rawat
2019-03-28 23:24 ` Anand Rawat
2019-04-01 23:09 ` Thomas Monjalon
2019-04-01 23:09 ` Thomas Monjalon
2019-04-02 3:52 ` Anand Rawat
2019-04-02 3:52 ` Anand Rawat
2019-03-28 23:24 ` [dpdk-dev] [PATCH v7 3/8] build: add module definition file for windows Anand Rawat
2019-03-28 23:24 ` Anand Rawat
2019-03-28 23:24 ` [dpdk-dev] [PATCH v7 4/8] eal: sys/queue.h implementation " Anand Rawat
2019-03-28 23:24 ` Anand Rawat
2019-03-28 23:24 ` [dpdk-dev] [PATCH v7 5/8] eal: add headers for compatibility with windows Anand Rawat
2019-03-28 23:24 ` Anand Rawat
2019-03-28 23:24 ` [dpdk-dev] [PATCH v7 6/8] eal: add minimum viable code for eal on windows Anand Rawat
2019-03-28 23:24 ` Anand Rawat
2019-03-28 23:24 ` [dpdk-dev] [PATCH v7 7/8] doc: add documentation for windows Anand Rawat
2019-03-28 23:24 ` Anand Rawat
2019-03-29 0:06 ` Harini Ramakrishnan
2019-03-29 0:06 ` Harini Ramakrishnan
2019-04-01 23:22 ` Thomas Monjalon
2019-04-01 23:22 ` Thomas Monjalon
2019-04-02 1:01 ` Pallavi Kadam
2019-04-02 1:01 ` Pallavi Kadam
2019-04-02 7:15 ` Thomas Monjalon
2019-04-02 7:15 ` Thomas Monjalon
2019-03-28 23:24 ` [dpdk-dev] [PATCH v7 8/8] build: meson changes to build on windows Anand Rawat
2019-03-28 23:24 ` Anand Rawat
2019-04-01 23:25 ` Thomas Monjalon
2019-04-01 23:25 ` Thomas Monjalon
2019-04-02 3:47 ` Anand Rawat
2019-04-02 3:47 ` Anand Rawat
2019-03-29 0:12 ` [dpdk-dev] [PATCH v7 0/8] HelloWorld example for windows Harini Ramakrishnan
2019-03-29 0:12 ` Harini Ramakrishnan
2019-04-02 3:54 ` [dpdk-dev] [PATCH v8 00/10] HelloWorld example for Windows Anand Rawat
2019-04-02 3:54 ` Anand Rawat
2019-04-02 3:54 ` [dpdk-dev] [PATCH v8 01/10] eal: eal stub to add windows support Anand Rawat
2019-04-02 3:54 ` Anand Rawat
2019-04-02 3:54 ` [dpdk-dev] [PATCH v8 02/10] meson: required changes for windows Anand Rawat
2019-04-02 3:54 ` Anand Rawat
2019-04-02 23:04 ` Thomas Monjalon
2019-04-02 23:04 ` Thomas Monjalon
2019-04-02 23:23 ` Pallavi Kadam
2019-04-02 23:23 ` Pallavi Kadam
2019-04-02 3:54 ` [dpdk-dev] [PATCH v8 03/10] eal: add new rte_os.h header to build system Anand Rawat
2019-04-02 3:54 ` Anand Rawat
2019-04-02 19:56 ` Thomas Monjalon
2019-04-02 19:56 ` Thomas Monjalon
2019-04-02 20:47 ` Thomas Monjalon
2019-04-02 20:47 ` Thomas Monjalon
2019-04-02 22:11 ` Anand Rawat
2019-04-02 22:11 ` Anand Rawat
2019-04-02 22:32 ` Thomas Monjalon
2019-04-02 22:32 ` Thomas Monjalon
2019-04-02 22:34 ` Anand Rawat
2019-04-02 22:34 ` Anand Rawat
2019-04-02 3:54 ` [dpdk-dev] [PATCH v8 04/10] eal: update common headers to use rte_os.h Anand Rawat
2019-04-02 3:54 ` Anand Rawat
2019-04-02 3:54 ` [dpdk-dev] [PATCH v8 05/10] build: add module definition file for windows Anand Rawat
2019-04-02 3:54 ` Anand Rawat
2019-04-02 23:03 ` Thomas Monjalon
2019-04-02 23:03 ` Thomas Monjalon
2019-04-02 3:54 ` [dpdk-dev] [PATCH v8 06/10] eal: sys/queue.h implementation " Anand Rawat
2019-04-02 3:54 ` Anand Rawat
2019-04-02 3:54 ` [dpdk-dev] [PATCH v8 07/10] eal: add headers for compatibility with windows Anand Rawat
2019-04-02 3:54 ` Anand Rawat
2019-04-02 3:54 ` [dpdk-dev] [PATCH v8 08/10] eal: add minimum viable code for eal on windows Anand Rawat
2019-04-02 3:54 ` Anand Rawat
2019-04-02 20:06 ` Thomas Monjalon
2019-04-02 20:06 ` Thomas Monjalon
2019-04-02 21:21 ` Pallavi Kadam
2019-04-02 21:21 ` Pallavi Kadam
2019-04-02 21:38 ` Thomas Monjalon
2019-04-02 21:38 ` Thomas Monjalon
2019-04-02 21:46 ` Pallavi Kadam
2019-04-02 21:46 ` Pallavi Kadam
2019-04-02 22:39 ` Thomas Monjalon
2019-04-02 22:39 ` Thomas Monjalon
2019-04-02 22:57 ` Anand Rawat
2019-04-02 22:57 ` Anand Rawat
2019-04-02 3:54 ` [dpdk-dev] [PATCH v8 09/10] doc: add documentation for windows Anand Rawat
2019-04-02 3:54 ` Anand Rawat
2019-04-02 3:54 ` [dpdk-dev] [PATCH v8 10/10] build: meson changes to build on windows Anand Rawat
2019-04-02 3:54 ` Anand Rawat
2019-04-02 22:51 ` Thomas Monjalon
2019-04-02 22:51 ` Thomas Monjalon
2019-04-02 23:01 ` Anand Rawat
2019-04-02 23:01 ` Anand Rawat
2019-04-02 23:25 ` [dpdk-dev] [PATCH v8 00/10] HelloWorld example for Windows Thomas Monjalon
2019-04-02 23:25 ` Thomas Monjalon
2019-04-02 23:49 ` Anand Rawat
2019-04-02 23:49 ` Anand Rawat
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190306041634.12976-4-anand.rawat@intel.com \
--to=anand.rawat@intel.com \
--cc=dev@dpdk.org \
--cc=jeffrey.b.shaw@intel.com \
--cc=pallavi.kadam@intel.com \
--cc=ranjit.menon@intel.com \
--cc=thomas@monjalon.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).