hurd/ChangeLog 2018-01-05 Svante Signell * Update copyright years. * fs.defs: Add new argument rendezvous: mach_port_send_t to RPC file_record_lock. 2017-01-05 Svante Signell * Update copyright years and headers. 2016-05-23 Svante Signell * fs.defs: Added description. * hurd_types.defs: Make struct flock_t seven integers long since l_start and l_len are 64bit. * hurd_types.h: typedef flock_t as flock64. 2001-04-10 Neal H Walfield * fs.defs: New RPC file_record_lock. * hurd_types.defs: Import . Index: hurd-0.9.git20181030-3.3/hurd/fs.defs =================================================================== --- hurd-0.9.git20181030-3.3.orig/hurd/fs.defs +++ hurd-0.9.git20181030-3.3/hurd/fs.defs @@ -1,23 +1,22 @@ /* Definitions for the filesystem interface. - Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2002, 2010 + + Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2002, 2010, 2014-2018 Free Software Foundation, Inc. -This file is part of the GNU Hurd. + This file is part of the GNU Hurd. -The GNU Hurd 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. - -The GNU Hurd 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 the GNU Hurd; see the file COPYING. If not, write to -the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ + The GNU Hurd 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. + + The GNU Hurd 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 the GNU Hurd. If not, see . */ /* All these objects also implement the generic IO facilities. */ @@ -358,6 +357,18 @@ routine file_reparent ( skip; /* Was: file_get_children. */ skip; /* Was: file_get_source. */ + +/* Do fcntl type locking on FILE. CMD is from the set F_GETLK64, + F_SETLK64, F_SETLKW64. FLOCK64 is passed by the user and is as + defined by . RENDEZVOUS is MACH_PORT_NULL for per opened + file locking and !MACH_PORT_NULL for per process file locking */ +routine file_record_lock ( + file: file_t; + RPT + cmd: int; + inout flock64: flock_t; + rendezvous: mach_port_send_t); + /* Overlay a task with a file. Necessary initialization, including authentication changes associated with set[ug]id execution must be handled by the filesystem. Filesystems normally implement this by Index: hurd-0.9.git20181030-3.3/hurd/hurd_types.defs =================================================================== --- hurd-0.9.git20181030-3.3.orig/hurd/hurd_types.defs +++ hurd-0.9.git20181030-3.3/hurd/hurd_types.defs @@ -1,22 +1,22 @@ /* MiG type declarations for Hurd interfaces -*- C -*- - Copyright (C) 1993,94,95,96,98,2001,02,17 Free Software Foundation, Inc. -This file is part of the GNU Hurd. + Copyright (C) 1993-1996, 1998, 2001, 2002, 2014-2018 + Free Software Foundation, Inc. -The GNU Hurd 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. - -The GNU Hurd 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 the GNU Hurd; see the file COPYING. If not, write to -the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ + This file is part of the GNU Hurd. + The GNU Hurd 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. + + The GNU Hurd 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 the GNU Hurd. If not, see . */ #ifdef HURD_SERVER /* The Hurd uses protected payloads to quickly look up the object @@ -389,7 +389,7 @@ type idarray_t = array[] of uid_t; type rusage_t = struct[18] of int; /* XXX */ -type flock_t = struct[5] of int; +type flock_t = struct[7] of int; /* l_start and l_len are 64 bit */ type timespec_t = struct[2] of int; @@ -403,3 +403,5 @@ import ; import ; import ; import ; +import ; + Index: hurd-0.9.git20181030-3.3/hurd/hurd_types.h =================================================================== --- hurd-0.9.git20181030-3.3.orig/hurd/hurd_types.h +++ hurd-0.9.git20181030-3.3/hurd/hurd_types.h @@ -1,22 +1,22 @@ /* C declarations for Hurd server interfaces - Copyright (C) 1993, 1994, 1995, 1996, 1998, 1999, 2001, 2002, - 2010, 2017 Free Software Foundation, Inc. -This file is part of the GNU Hurd. + Copyright (C) 1993-1996, 1998, 1999, 2001, 2002, 2010, 2014-2018 + Free Software Foundation, Inc. -The GNU Hurd 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. - -The GNU Hurd 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 the GNU Hurd; see the file COPYING. If not, write to -the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ + This file is part of the GNU Hurd. + + The GNU Hurd 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. + + The GNU Hurd 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 the GNU Hurd. If not, see . */ #ifndef _HURD_TYPES_H #define _HURD_TYPES_H @@ -73,7 +73,7 @@ typedef const uid_t *const_idarray_t; typedef __loff_t *off_array_t; typedef const __loff_t *const_off_array_t; typedef struct rusage rusage_t; -typedef struct flock flock_t; +typedef struct flock64 flock_t; typedef struct utsname utsname_t; #if _FILE_OFFSET_BITS == 64 typedef struct stat io_statbuf_t;