brintos

brintos / linux-shallow public Read only

0
0
Text · 2.2 KiB · b4d78c1 Raw
99 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2/*3 * IMPORTANT: The following constants must match the ones used and defined in4 * external/qemu/include/hw/misc/goldfish_pipe.h5 */6 7#ifndef GOLDFISH_PIPE_QEMU_H8#define GOLDFISH_PIPE_QEMU_H9 10/* List of bitflags returned in status of CMD_POLL command */11enum PipePollFlags {12	PIPE_POLL_IN	= 1 << 0,13	PIPE_POLL_OUT	= 1 << 1,14	PIPE_POLL_HUP	= 1 << 215};16 17/* Possible status values used to signal errors */18enum PipeErrors {19	PIPE_ERROR_INVAL	= -1,20	PIPE_ERROR_AGAIN	= -2,21	PIPE_ERROR_NOMEM	= -3,22	PIPE_ERROR_IO		= -423};24 25/* Bit-flags used to signal events from the emulator */26enum PipeWakeFlags {27	/* emulator closed pipe */28	PIPE_WAKE_CLOSED		= 1 << 0,29 30	/* pipe can now be read from */31	PIPE_WAKE_READ			= 1 << 1,32 33	/* pipe can now be written to */34	PIPE_WAKE_WRITE			= 1 << 2,35 36	/* unlock this pipe's DMA buffer */37	PIPE_WAKE_UNLOCK_DMA		= 1 << 3,38 39	/* unlock DMA buffer of the pipe shared to this pipe */40	PIPE_WAKE_UNLOCK_DMA_SHARED	= 1 << 4,41};42 43/* Possible pipe closing reasons */44enum PipeCloseReason {45	/* guest sent a close command */46	PIPE_CLOSE_GRACEFUL		= 0,47 48	/* guest rebooted, we're closing the pipes */49	PIPE_CLOSE_REBOOT		= 1,50 51	/* close old pipes on snapshot load */52	PIPE_CLOSE_LOAD_SNAPSHOT	= 2,53 54	/* some unrecoverable error on the pipe */55	PIPE_CLOSE_ERROR		= 3,56};57 58/* Bit flags for the 'flags' field */59enum PipeFlagsBits {60	BIT_CLOSED_ON_HOST = 0,  /* pipe closed by host */61	BIT_WAKE_ON_WRITE  = 1,  /* want to be woken on writes */62	BIT_WAKE_ON_READ   = 2,  /* want to be woken on reads */63};64 65enum PipeRegs {66	PIPE_REG_CMD = 0,67 68	PIPE_REG_SIGNAL_BUFFER_HIGH = 4,69	PIPE_REG_SIGNAL_BUFFER = 8,70	PIPE_REG_SIGNAL_BUFFER_COUNT = 12,71 72	PIPE_REG_OPEN_BUFFER_HIGH = 20,73	PIPE_REG_OPEN_BUFFER = 24,74 75	PIPE_REG_VERSION = 36,76 77	PIPE_REG_GET_SIGNALLED = 48,78};79 80enum PipeCmdCode {81	/* to be used by the pipe device itself */82	PIPE_CMD_OPEN		= 1,83 84	PIPE_CMD_CLOSE,85	PIPE_CMD_POLL,86	PIPE_CMD_WRITE,87	PIPE_CMD_WAKE_ON_WRITE,88	PIPE_CMD_READ,89	PIPE_CMD_WAKE_ON_READ,90 91	/*92	 * TODO(zyy): implement a deferred read/write execution to allow93	 * parallel processing of pipe operations on the host.94	 */95	PIPE_CMD_WAKE_ON_DONE_IO,96};97 98#endif /* GOLDFISH_PIPE_QEMU_H */99