[v5,5/8] eal: add headers for compatibility with windows environment
diff mbox series

Message ID 20190326060238.9884-6-anand.rawat@intel.com
State Superseded, archived
Delegated to: Thomas Monjalon
Headers show
Series
  • HelloWorld example for windows
Related show

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Anand Rawat March 26, 2019, 6:02 a.m. UTC
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>
---
 lib/librte_eal/windows/eal/include/fnmatch.h | 43 ++++++++++
 lib/librte_eal/windows/eal/include/pthread.h | 22 ++++++
 lib/librte_eal/windows/eal/include/regex.h   | 83 ++++++++++++++++++++
 lib/librte_eal/windows/eal/include/sched.h   | 41 ++++++++++
 lib/librte_eal/windows/eal/include/unistd.h  |  8 ++
 5 files changed, 197 insertions(+)
 create mode 100644 lib/librte_eal/windows/eal/include/fnmatch.h
 create mode 100644 lib/librte_eal/windows/eal/include/pthread.h
 create mode 100644 lib/librte_eal/windows/eal/include/regex.h
 create mode 100644 lib/librte_eal/windows/eal/include/sched.h
 create mode 100644 lib/librte_eal/windows/eal/include/unistd.h

Comments

Harini Ramakrishnan March 26, 2019, 4:33 p.m. UTC | #1
-----Original Message-----
From: dev <dev-bounces@dpdk.org> On Behalf Of Anand Rawat
Sent: Monday, March 25, 2019 11:03 PM
To: dev@dpdk.org
Cc: anand.rawat@intel.com; pallavi.kadam@intel.com; ranjit.menon@intel.com; jeffrey.b.shaw@intel.com; bruce.richardson@intel.com; thomas@monjalon.net
Subject: [dpdk-dev] [PATCH v5 5/8] eal: add headers for compatibility with windows environment

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>
Acked-by: Harini Ramakrishnan <harini.ramakrishnan@microsoft.com>
---
 lib/librte_eal/windows/eal/include/fnmatch.h | 43 ++++++++++  lib/librte_eal/windows/eal/include/pthread.h | 22 ++++++
 lib/librte_eal/windows/eal/include/regex.h   | 83 ++++++++++++++++++++
 lib/librte_eal/windows/eal/include/sched.h   | 41 ++++++++++
 lib/librte_eal/windows/eal/include/unistd.h  |  8 ++
 5 files changed, 197 insertions(+)
 create mode 100644 lib/librte_eal/windows/eal/include/fnmatch.h
 create mode 100644 lib/librte_eal/windows/eal/include/pthread.h
 create mode 100644 lib/librte_eal/windows/eal/include/regex.h
 create mode 100644 lib/librte_eal/windows/eal/include/sched.h
 create mode 100644 lib/librte_eal/windows/eal/include/unistd.h

diff --git a/lib/librte_eal/windows/eal/include/fnmatch.h b/lib/librte_eal/windows/eal/include/fnmatch.h
new file mode 100644
index 000000000..c2e2131b1
--- /dev/null
+++ b/lib/librte_eal/windows/eal/include/fnmatch.h
@@ -0,0 +1,43 @@
+/* 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
+
+/**
+ * This function is used for searhing a given string source
+ * with the given regular expression pattern.
+ *
+ * @param pattern
+ *	regular expression notation decribing the pattern to match
+ *
+ * @param string
+ *	source string to searcg for the pattern
+ *
+ * @param flag
+ *	containing information about the pattern
+ *
+ * @return
+ *	if the pattern is found then return 0 or else FNM_NOMATCH
+ */
+static inline int fnmatch(__rte_unused const char *pattern,
+		__rte_unused const char *string,
+		__rte_unused int flags)
+{
+	/* TODO */
+	/* This is a stub, not the expected result */
+	return FNM_NOMATCH;
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _FNMATCH_H_ */
diff --git a/lib/librte_eal/windows/eal/include/pthread.h b/lib/librte_eal/windows/eal/include/pthread.h
new file mode 100644
index 000000000..a62b25bf6
--- /dev/null
+++ b/lib/librte_eal/windows/eal/include/pthread.h
@@ -0,0 +1,22 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2019 Intel Corporation
+ */
+
+#ifndef _PTHREAD_H_
+#define _PTHREAD_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* defining pthread_t type on windows */ typedef uintptr_t pthread_t;
+
+/* defining pthread_attr_t type on windows */ typedef void 
+*pthread_attr_t;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PTHREAD_H_ */
diff --git a/lib/librte_eal/windows/eal/include/regex.h b/lib/librte_eal/windows/eal/include/regex.h
new file mode 100644
index 000000000..daa102f74
--- /dev/null
+++ b/lib/librte_eal/windows/eal/include/regex.h
@@ -0,0 +1,83 @@
+/* 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
+
+/* defining regex_t for windows */
+typedef void *regex_t;
+/* defining regmatch_t for windows */
+typedef void *regmatch_t;
+
+/**
+ * The regcomp() function will compile the regular expression
+ * contained in the string pointed to by the pattern argument
+ * and place the results in the structure pointed to by preg.
+ * The cflags argument is the bitwise inclusive OR of zero or
+ * more of the flags
+ */
+static inline int regcomp(__rte_unused regex_t *preg,
+		__rte_unused const char *regex, __rte_unused int cflags) {
+	/* TODO */
+	/* This is a stub, not the expected result */
+	return REG_ESPACE;
+}
+
+/**
+ * The regexec() function compares the null-terminated string
+ * specified by string with the compiled regular expression
+ * preg initialised by a previous call to regcomp(). If it finds
+ * a match, regexec() returns 0; otherwise it returns non-zero
+ * indicating either no match or an error. The eflags argument
+ * is the bitwise inclusive OR of zero or more of the flags.
+ */
+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) {
+	/* TODO */
+	/* This is a stub, not the expected result */
+	return REG_NOMATCH;
+}
+
+/**
+ * The regerror() function provides a mapping from error codes
+ * returned by regcomp() and regexec() to unspecified printable strings.
+ */
+static inline size_t regerror(__rte_unused int errcode,
+		__rte_unused const regex_t *preg, char *errbuf,
+		__rte_unused size_t errbuf_size)
+{
+	/* TODO */
+	/* This is a stub, not the expected result */
+	if (errbuf) {
+		*errbuf = '\0';
+		return 1;
+	}
+	return 0;
+}
+
+/**
+ * The regfree() function frees any memory allocated by regcomp()
+ * associated with preg.
+ */
+static inline void regfree(__rte_unused regex_t *preg) {
+	/* TODO */
+	/* This is a stub, not the expected result */ }
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _REGEX_H_ */
diff --git a/lib/librte_eal/windows/eal/include/sched.h b/lib/librte_eal/windows/eal/include/sched.h
new file mode 100644
index 000000000..b105c43c3
--- /dev/null
+++ b/lib/librte_eal/windows/eal/include/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/unistd.h b/lib/librte_eal/windows/eal/include/unistd.h
new file mode 100644
index 000000000..fe3d9b579
--- /dev/null
+++ b/lib/librte_eal/windows/eal/include/unistd.h
@@ -0,0 +1,8 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2019 Intel Corporation
+ */
+
+/* Added to support common code on windows */ #ifndef _UNISTD_H_ 
+#define _UNISTD_H_ #endif /* _UNISTD_H_ */
--
2.17.1.windows.2

Patch
diff mbox series

diff --git a/lib/librte_eal/windows/eal/include/fnmatch.h b/lib/librte_eal/windows/eal/include/fnmatch.h
new file mode 100644
index 000000000..c2e2131b1
--- /dev/null
+++ b/lib/librte_eal/windows/eal/include/fnmatch.h
@@ -0,0 +1,43 @@ 
+/* 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
+
+/**
+ * This function is used for searhing a given string source
+ * with the given regular expression pattern.
+ *
+ * @param pattern
+ *	regular expression notation decribing the pattern to match
+ *
+ * @param string
+ *	source string to searcg for the pattern
+ *
+ * @param flag
+ *	containing information about the pattern
+ *
+ * @return
+ *	if the pattern is found then return 0 or else FNM_NOMATCH
+ */
+static inline int fnmatch(__rte_unused const char *pattern,
+		__rte_unused const char *string,
+		__rte_unused int flags)
+{
+	/* TODO */
+	/* This is a stub, not the expected result */
+	return FNM_NOMATCH;
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _FNMATCH_H_ */
diff --git a/lib/librte_eal/windows/eal/include/pthread.h b/lib/librte_eal/windows/eal/include/pthread.h
new file mode 100644
index 000000000..a62b25bf6
--- /dev/null
+++ b/lib/librte_eal/windows/eal/include/pthread.h
@@ -0,0 +1,22 @@ 
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2019 Intel Corporation
+ */
+
+#ifndef _PTHREAD_H_
+#define _PTHREAD_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* defining pthread_t type on windows */
+typedef uintptr_t pthread_t;
+
+/* defining pthread_attr_t type on windows */
+typedef void *pthread_attr_t;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PTHREAD_H_ */
diff --git a/lib/librte_eal/windows/eal/include/regex.h b/lib/librte_eal/windows/eal/include/regex.h
new file mode 100644
index 000000000..daa102f74
--- /dev/null
+++ b/lib/librte_eal/windows/eal/include/regex.h
@@ -0,0 +1,83 @@ 
+/* 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
+
+/* defining regex_t for windows */
+typedef void *regex_t;
+/* defining regmatch_t for windows */
+typedef void *regmatch_t;
+
+/**
+ * The regcomp() function will compile the regular expression
+ * contained in the string pointed to by the pattern argument
+ * and place the results in the structure pointed to by preg.
+ * The cflags argument is the bitwise inclusive OR of zero or
+ * more of the flags
+ */
+static inline int regcomp(__rte_unused regex_t *preg,
+		__rte_unused const char *regex, __rte_unused int cflags)
+{
+	/* TODO */
+	/* This is a stub, not the expected result */
+	return REG_ESPACE;
+}
+
+/**
+ * The regexec() function compares the null-terminated string
+ * specified by string with the compiled regular expression
+ * preg initialised by a previous call to regcomp(). If it finds
+ * a match, regexec() returns 0; otherwise it returns non-zero
+ * indicating either no match or an error. The eflags argument
+ * is the bitwise inclusive OR of zero or more of the flags.
+ */
+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)
+{
+	/* TODO */
+	/* This is a stub, not the expected result */
+	return REG_NOMATCH;
+}
+
+/**
+ * The regerror() function provides a mapping from error codes
+ * returned by regcomp() and regexec() to unspecified printable strings.
+ */
+static inline size_t regerror(__rte_unused int errcode,
+		__rte_unused const regex_t *preg, char *errbuf,
+		__rte_unused size_t errbuf_size)
+{
+	/* TODO */
+	/* This is a stub, not the expected result */
+	if (errbuf) {
+		*errbuf = '\0';
+		return 1;
+	}
+	return 0;
+}
+
+/**
+ * The regfree() function frees any memory allocated by regcomp()
+ * associated with preg.
+ */
+static inline void regfree(__rte_unused regex_t *preg)
+{
+	/* TODO */
+	/* This is a stub, not the expected result */
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _REGEX_H_ */
diff --git a/lib/librte_eal/windows/eal/include/sched.h b/lib/librte_eal/windows/eal/include/sched.h
new file mode 100644
index 000000000..b105c43c3
--- /dev/null
+++ b/lib/librte_eal/windows/eal/include/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/unistd.h b/lib/librte_eal/windows/eal/include/unistd.h
new file mode 100644
index 000000000..fe3d9b579
--- /dev/null
+++ b/lib/librte_eal/windows/eal/include/unistd.h
@@ -0,0 +1,8 @@ 
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2019 Intel Corporation
+ */
+
+/* Added to support common code on windows */
+#ifndef _UNISTD_H_
+#define _UNISTD_H_
+#endif /* _UNISTD_H_ */