/* * Copyright 2011, Alin Rus * * 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. * */ #ifdef HAVE_CONFIG_H #include "config.h" #endif #define TEST_INIT #define CONFIGURE_INIT #include "system.h" #include #include "tmacros.h" #include #include #include #include #include #include #include #include const char rtems_test_name[] = "PSXAIO 3"; /* forward declarations to avoid warnings */ struct aiocb *create_aiocb(int fd); void free_aiocb(struct aiocb *aiocbp); #define FD_COUNT 6 #define BUFSIZE 128 struct aiocb * create_aiocb (int fd) { struct aiocb *aiocbp; aiocbp = malloc (sizeof (struct aiocb)); memset (aiocbp, 0, sizeof (struct aiocb)); aiocbp->aio_buf = malloc (BUFSIZE * sizeof (char)); aiocbp->aio_nbytes = BUFSIZE; aiocbp->aio_offset = 0; aiocbp->aio_reqprio = 0; aiocbp->aio_fildes = fd; return aiocbp; } void free_aiocb (struct aiocb *aiocbp) { free ((char*) aiocbp->aio_buf); free (aiocbp); } void * POSIX_Init (void *argument) { int fd[FD_COUNT]; struct aiocb *aiocbp[FD_COUNT+1]; int status, i, policy = SCHED_FIFO; char filename[BUFSIZE]; struct sched_param param; status = rtems_aio_init (); rtems_test_assert (status == 0); param.sched_priority = 30; status = pthread_setschedparam (pthread_self(), policy, ¶m); rtems_test_assert (status == 0); status = mkdir ("/tmp", S_IRWXU); rtems_test_assert (!status); TEST_BEGIN(); puts (" Init: Open files "); for (i=0; i