summaryrefslogtreecommitdiff
path: root/src/aio
AgeCommit message (Collapse)AuthorLines
2013-09-15support configurable page size on mips, powerpc and microblazeSzabolcs Nagy-2/+2
PAGE_SIZE was hardcoded to 4096, which is historically what most systems use, but on several archs it is a kernel config parameter, user space can only know it at execution time from the aux vector. PAGE_SIZE and PAGESIZE are not defined on archs where page size is a runtime parameter, applications should use sysconf(_SC_PAGE_SIZE) to query it. Internally libc code defines PAGE_SIZE to libc.page_size, which is set to aux[AT_PAGESZ] in __init_libc and early in __dynlink as well. (Note that libc.page_size can be accessed without GOT, ie. before relocations are done) Some fpathconf settings are hardcoded to 4096, these should be actually queried from the filesystem using statfs.
2013-06-16fix invalid access in aio notificationRich Felker-1/+1
issue found and patch provided by Jens Gustedt. after the atomic store to the error code field of the aiocb, the application is permitted to free or reuse the storage, so further access is invalid. instead, use the local copy that was already made.
2013-06-16fix uninitialized variable in lio (aio) codeRich Felker-1/+1
2013-01-13fix lio_listio return value in LIO_WAIT modeSzabolcs Nagy-1/+1
2012-12-04use alternate argument syntax for restrict with lio_listioRich Felker-1/+1
for some reason I have not been able to determine, gcc 3.2 rejects the array notation. this seems to be a gcc bug, but since it's easy to work around, let's do the workaround and avoid gratuitously requiring newer compilers.
2012-11-08clean up sloppy nested inclusion from pthread_impl.hRich Felker-0/+6
this mirrors the stdio_impl.h cleanup. one header which is not strictly needed, errno.h, is left in pthread_impl.h, because since pthread functions return their error codes rather than using errno, nearly every single pthread function needs the errno constants. in a few places, rather than bringing in string.h to use memset, the memset was replaced by direct assignment. this seems to generate much better code anyway, and makes many functions which were previously non-leaf functions into leaf functions (possibly eliminating a great deal of bloat on some platforms where non-leaf functions require ugly prologue and/or epilogue).
2012-09-06use restrict everywhere it's required by c99 and/or posix 2008Rich Felker-2/+2
to deal with the fact that the public headers may be used with pre-c99 compilers, __restrict is used in place of restrict, and defined appropriately for any supported compiler. we also avoid the form [restrict] since older versions of gcc rejected it due to a bug in the original c99 standard, and instead use the form *restrict.
2011-09-28stupid typo (caused by rather ugly spelling in POSIX..) in aioRich Felker-1/+1
2011-09-16fix idiotic const-correctness error in lio_listioRich Felker-1/+1
i blame this one on posix for using hideous const-qualified double pointers which are unusable without hideous casts.
2011-09-14fix inconsistent signature for aio_errorRich Felker-1/+1
2011-09-13fix return types for aio_read and aio_write againRich Felker-2/+2
previous fix was backwards and propagated the wrong type rather than the right one...
2011-09-13fix various errors in function signatures/prototypes found by nszRich Felker-1/+1
2011-09-09implement POSIX asynchronous ioRich Felker-0/+338
some features are not yet supported, and only minimal testing has been performed. should be considered experimental at this point.