/* libdiskfs implementation of io.defs: io_pathconf Copyright (C) 1992, 1993, 1994, 1995, 1999 Free Software Foundation This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include #include "priv.h" #include "io_S.h" /* Implement io_pathconf as described in . */ kern_return_t diskfs_S_io_pathconf (struct protid *cred, int name, int *value) { if (!cred) return EOPNOTSUPP; switch (name) { case _PC_LINK_MAX: *value = diskfs_link_max; break; case _PC_MAX_CANON: case _PC_MAX_INPUT: case _PC_PIPE_BUF: case _PC_VDISABLE: case _PC_SOCK_MAXBUF: *value = -1; break; case _PC_NAME_MAX: /* string_t constrains the upper bound. */ *value = diskfs_name_max > 1024 ? 1024 : diskfs_name_max; break; case _PC_CHOWN_RESTRICTED: case _PC_NO_TRUNC: /* look at string_t trunc behavior in MiG */ case _PC_SYNC_IO: case _PC_ASYNC_IO: *value = 1; break; case _PC_PRIO_IO: *value = 0; break; case _PC_FILESIZEBITS: *value = 32; break; default: return EINVAL; } return 0; }