Added a parameter for the maximum number of dirents for sys_read_dir().

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@59 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler 2002-07-10 21:47:38 +00:00
parent f8d7610714
commit c1f7f96bbf
1 changed files with 6 additions and 6 deletions

View File

@ -209,21 +209,21 @@ user_ioctl(int fd, ulong op, void *buffer, size_t length)
ssize_t
user_read_dir(int fd, struct dirent *buffer,size_t bufferSize)
user_read_dir(int fd, struct dirent *buffer,size_t bufferSize,uint32 maxCount)
{
struct file_descriptor *descriptor;
ssize_t retval;
CHECK_USER_ADDR(buffer)
PRINT(("user_read_dir(fd = %d, buffer = 0x%p, bufferSize = %ld)\n",fd,buffer,bufferSize));
PRINT(("user_read_dir(fd = %d, buffer = 0x%p, bufferSize = %ld, count = %d)\n",fd,buffer,bufferSize,maxCount));
descriptor = get_fd(get_current_io_context(false), fd);
if (descriptor == NULL)
return EBADF;
if (descriptor->ops->fd_read_dir) {
uint32 count;
uint32 count = maxCount;
retval = descriptor->ops->fd_read_dir(descriptor,buffer,bufferSize,&count);
if (retval >= 0)
retval = count;
@ -389,19 +389,19 @@ sys_ioctl(int fd, ulong op, void *buffer, size_t length)
ssize_t
sys_read_dir(int fd, struct dirent *buffer,size_t bufferSize)
sys_read_dir(int fd, struct dirent *buffer,size_t bufferSize,uint32 maxCount)
{
struct file_descriptor *descriptor;
ssize_t retval;
PRINT(("sys_read_dir(fd = %d, buffer = 0x%p, bufferSize = %ld)\n",fd,buffer,bufferSize));
PRINT(("sys_read_dir(fd = %d, buffer = 0x%p, bufferSize = %ld, count = %u)\n",fd,buffer,bufferSize,maxCount));
descriptor = get_fd(get_current_io_context(false), fd);
if (descriptor == NULL)
return EBADF;
if (descriptor->ops->fd_read_dir) {
uint32 count;
uint32 count = maxCount;
retval = descriptor->ops->fd_read_dir(descriptor,buffer,bufferSize,&count);
if (retval >= 0)
retval = count;