summaryrefslogtreecommitdiffstats
path: root/cpukit/posix/include/rtems/posix/aio_misc.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/posix/include/rtems/posix/aio_misc.h')
-rw-r--r--cpukit/posix/include/rtems/posix/aio_misc.h113
1 files changed, 0 insertions, 113 deletions
diff --git a/cpukit/posix/include/rtems/posix/aio_misc.h b/cpukit/posix/include/rtems/posix/aio_misc.h
deleted file mode 100644
index aeccbad98f..0000000000
--- a/cpukit/posix/include/rtems/posix/aio_misc.h
+++ /dev/null
@@ -1,113 +0,0 @@
-/**
- * @file
- *
- * @brief POSIX Asynchronous Input and Output Private Support
- *
- * This defines private information for the AIO implementation.
- */
-
-/*
- * Copyright 2010, Alin Rus <alin.codejunkie@gmail.com>
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _AIO_MISC_H
-#define _AIO_MISC_H
-
-#include <stdio.h>
-#include <string.h>
-#include <aio.h>
-#include <pthread.h>
-#include <rtems.h>
-#include <rtems/chain.h>
-#include <rtems/system.h>
-#include <rtems/seterr.h>
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
- /* Actual request being processed */
- typedef struct
- {
- rtems_chain_node next_prio; /* chain requests in order of priority */
- int policy; /* If _POSIX_PRIORITIZED_IO and
- _POSIX_PRIORITY_SCHEDULING are defined */
- int priority; /* see above */
- pthread_t caller_thread; /* used for notification */
- struct aiocb *aiocbp; /* aio control block */
- } rtems_aio_request;
-
- typedef struct
- {
- rtems_chain_node next_fd; /* order fd chains in queue */
- rtems_chain_control perfd; /* chain of requests for this fd */
- int fildes; /* file descriptor to be processed */
- int new_fd; /* if this is a newly created chain */
- pthread_mutex_t mutex;
- pthread_cond_t cond;
-
- } rtems_aio_request_chain;
-
- typedef struct
- {
- pthread_mutex_t mutex;
- pthread_cond_t new_req;
- pthread_attr_t attr;
-
- rtems_chain_control work_req; /* chains being worked by active threads */
- rtems_chain_control idle_req; /* fd chains waiting to be processed */
- unsigned int initialized; /* specific value if queue is initialized */
- int active_threads; /* the number of active threads */
- int idle_threads; /* number of idle threads */
-
- } rtems_aio_queue;
-
-extern rtems_aio_queue aio_request_queue;
-
-#define AIO_QUEUE_INITIALIZED 0xB00B
-
-#ifndef AIO_MAX_THREADS
-#define AIO_MAX_THREADS 5
-#endif
-
-#ifndef AIO_MAX_QUEUE_SIZE
-#define AIO_MAX_QUEUE_SIZE 30
-#endif
-
-int rtems_aio_init (void);
-int rtems_aio_enqueue (rtems_aio_request *req);
-rtems_aio_request_chain *rtems_aio_search_fd
-(
- rtems_chain_control *chain,
- int fildes,
- int create
-);
-void rtems_aio_remove_fd (rtems_aio_request_chain *r_chain);
-int rtems_aio_remove_req (rtems_chain_control *chain,
- struct aiocb *aiocbp);
-
-#ifdef RTEMS_DEBUG
-#include <assert.h>
-
-#define AIO_assert(_x) assert(_x)
-#define AIO_printf(_x) printf(_x)
-#else
-#define AIO_assert(_x)
-#define AIO_printf(_x)
-#endif
-
-#define rtems_aio_set_errno_return_minus_one( _error, _aiocbp ) \
- do { (_aiocbp)->error_code = (_error); \
- (_aiocbp)->return_value = -1; \
- rtems_set_errno_and_return_minus_one (_error);} while(0)
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif