DEFINE_XEN_FLEX_RING(xencons) defines common helper functions such as
xencons_queued() to tell the current size of the ring buffer,
xencons_mask() to mask off the index, which are useful helper functions.
pl011 emulation code will use these helper functions.
io/console.h includes io/ring.h which defines DEFINE_XEN_FLEX_RING.
In console/daemon/io.c, string.h had to be included before io/console.h
because ring.h uses string functions.
Signed-off-by: Bhupinder Thakur <bhupinder.thakur@linaro.org>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
Acked-by: Wei Liu <wei.liu2@citrix.com>
Acked-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
#include "utils.h"
#include "io.h"
+#include <string.h>
#include <xenevtchn.h>
#include <xengnttab.h>
#include <xenstore.h>
#include <stdlib.h>
#include <errno.h>
-#include <string.h>
#include <poll.h>
#include <fcntl.h>
#include <unistd.h>
PUBLIC_ANSI_HEADERS := $(filter-out public/%ctl.h public/xsm/% public/%hvm/save.h $(PUBLIC_C99_HEADERS), $(PUBLIC_HEADERS))
public/io/9pfs.h-prereq := string
+public/io/console.h-prereq := string
public/io/pvcalls.h-prereq := string
headers.chk: $(PUBLIC_ANSI_HEADERS) Makefile
#ifndef __XEN_PUBLIC_IO_CONSOLE_H__
#define __XEN_PUBLIC_IO_CONSOLE_H__
+#include "ring.h"
+
typedef uint32_t XENCONS_RING_IDX;
#define MASK_XENCONS_IDX(idx, ring) ((idx) & (sizeof(ring)-1))
XENCONS_RING_IDX out_cons, out_prod;
};
+#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
+DEFINE_XEN_FLEX_RING(xencons);
+#endif
+
#endif /* __XEN_PUBLIC_IO_CONSOLE_H__ */
/*