/drivers/staging/tidspbridge/include/dspbridge/chnldefs.h
https://bitbucket.org/wisechild/galaxy-nexus · C++ Header · 63 lines · 29 code · 10 blank · 24 comment · 0 complexity · a0ff2cb533c32c2db83d453e093677a9 MD5 · raw file
- /*
- * chnldefs.h
- *
- * DSP-BIOS Bridge driver support functions for TI OMAP processors.
- *
- * System-wide channel objects and constants.
- *
- * Copyright (C) 2005-2006 Texas Instruments, Inc.
- *
- * This package is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * THIS PACKAGE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- */
- #ifndef CHNLDEFS_
- #define CHNLDEFS_
- /* Channel id option. */
- #define CHNL_PICKFREE (~0UL) /* Let manager pick a free channel. */
- /* Channel modes */
- #define CHNL_MODETODSP 0 /* Data streaming to the DSP. */
- #define CHNL_MODEFROMDSP 1 /* Data streaming from the DSP. */
- /* GetIOCompletion flags */
- #define CHNL_IOCINFINITE 0xffffffff /* Wait forever for IO completion. */
- #define CHNL_IOCNOWAIT 0x0 /* Dequeue an IOC, if available. */
- /* IO Completion Record status: */
- #define CHNL_IOCSTATCOMPLETE 0x0000 /* IO Completed. */
- #define CHNL_IOCSTATCANCEL 0x0002 /* IO was cancelled */
- #define CHNL_IOCSTATTIMEOUT 0x0008 /* Wait for IOC timed out. */
- #define CHNL_IOCSTATEOS 0x8000 /* End Of Stream reached. */
- /* Macros for checking I/O Completion status: */
- #define CHNL_IS_IO_COMPLETE(ioc) (!(ioc.status & ~CHNL_IOCSTATEOS))
- #define CHNL_IS_IO_CANCELLED(ioc) (ioc.status & CHNL_IOCSTATCANCEL)
- #define CHNL_IS_TIMED_OUT(ioc) (ioc.status & CHNL_IOCSTATTIMEOUT)
- /* Channel attributes: */
- struct chnl_attr {
- u32 uio_reqs; /* Max # of preallocated I/O requests. */
- void *event_obj; /* User supplied auto-reset event object. */
- char *str_event_name; /* Ptr to name of user event object. */
- void *reserved1; /* Reserved for future use. */
- u32 reserved2; /* Reserved for future use. */
- };
- /* I/O completion record: */
- struct chnl_ioc {
- void *buf; /* Buffer to be filled/emptied. */
- u32 byte_size; /* Bytes transferred. */
- u32 buf_size; /* Actual buffer size in bytes */
- u32 status; /* Status of IO completion. */
- u32 arg; /* User argument associated with buf. */
- };
- #endif /* CHNLDEFS_ */