/*
- * Copyright (C) 2006-2007 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2006-2008 Andre Noll <maan@systemlinux.org>
*
* Licensed under the GPL v2. For licencing details see COPYING.
*/
return ret;
}
+/**
+ * Set a file descriptor to blocking mode.
+ *
+ * \param fd The file descriptor.
+ *
+ * \return Standard.
+ */
+int mark_fd_blocking(int fd)
+{
+ int flags = fcntl(fd, F_GETFL);
+ if (flags < 0)
+ return -ERRNO_TO_PARA_ERROR(errno);
+ flags = fcntl(fd, F_SETFL, ((long)flags) & ~O_NONBLOCK);
+ if (flags < 0)
+ return -ERRNO_TO_PARA_ERROR(errno);
+ return 1;
+}
+
/**
* Set a file descriptor to non-blocking mode.
*
*
* \return Standard.
*/
-int mark_fd_nonblock(int fd)
+int mark_fd_nonblocking(int fd)
{
int flags = fcntl(fd, F_GETFL);
if (flags < 0)
}
/**
- * Map a file into memory.
+ * Open a file and map it into memory.
*
* \param path Name of the regular file to map.
* \param open_mode Either \p O_RDONLY or \p O_RDWR.
- * \param obj On success, the mapping is returned here.
+ * \param map On success, the mapping is returned here.
+ * \param size size of the mapping.
+ * \param fd_ptr The file descriptor of the mapping.
*
- * \return Positive on success, negative on errors. Possible errors include: \p
- * E_FSTAT, any errors returned by para_open(), \p E_EMPTY, \p E_MMAP.
+ * If \a fd_ptr is \p NULL, the file descriptor resulting from the underlying
+ * open call is closed after mmap(). Otherwise the file is kept open and the
+ * file descriptor is returned in \a fd_ptr.
+ *
+ * \return Standard.
*
* \sa para_open(), mmap(2).
*/