|
Revision tags: release/12.4.0, release/13.1.0, release/12.3.0, release/13.0.0, release/12.2.0, release/11.4.0, release/12.1.0, release/11.3.0 |
|
| #
1a017054 |
| 18-Mar-2019 |
Ed Maste <[email protected]> |
sys/stat.h: Improve timespec compatibility with other BSDs
OpenBSD and NetBSD provide macros to directly reference the underlying struct timespec's tv_nsec member. While FreeBSD has such macros for
sys/stat.h: Improve timespec compatibility with other BSDs
OpenBSD and NetBSD provide macros to directly reference the underlying struct timespec's tv_nsec member. While FreeBSD has such macros for tv_sec, the others are missing. Add the following macros:
st->st_atimensec st->st_mtimensec st->st_ctimensec st->st_birthtimensec
Adding these fields will provide programs which reference them better portability to FreeBSD. An example of such a program is makefs(8), which has unused support for subseconds that it has inherited from NetBSD.
Submitted by: Mitchell Horne <[email protected]> Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D19626
show more ...
|
|
Revision tags: release/12.0.0, release/11.2.0 |
|
| #
51369649 |
| 20-Nov-2017 |
Pedro F. Giffuni <[email protected]> |
sys: further adoption of SPDX licensing ID tags.
Mainly focus on files that use BSD 3-Clause license.
The Software Package Data Exchange (SPDX) group provides a specification to make it easier for
sys: further adoption of SPDX licensing ID tags.
Mainly focus on files that use BSD 3-Clause license.
The Software Package Data Exchange (SPDX) group provides a specification to make it easier for automated tools to detect and summarize well known opensource licenses. We are gradually adopting the specification, noting that the tags are considered only advisory and do not, in any way, superceed or replace the license texts.
Special thanks to Wind River for providing access to "The Duke of Highlander" tool: an older (2014) run over FreeBSD tree was useful as a starting point.
show more ...
|
|
Revision tags: release/10.4.0, release/11.1.0 |
|
| #
69921123 |
| 23-May-2017 |
Konstantin Belousov <[email protected]> |
Commit the 64-bit inode project.
Extend the ino_t, dev_t, nlink_t types to 64-bit ints. Modify struct dirent layout to add d_off, increase the size of d_fileno to 64-bits, increase the size of d_na
Commit the 64-bit inode project.
Extend the ino_t, dev_t, nlink_t types to 64-bit ints. Modify struct dirent layout to add d_off, increase the size of d_fileno to 64-bits, increase the size of d_namlen to 16-bits, and change the required alignment. Increase struct statfs f_mntfromname[] and f_mntonname[] array length MNAMELEN to 1024.
ABI breakage is mitigated by providing compatibility using versioned symbols, ingenious use of the existing padding in structures, and by employing other tricks. Unfortunately, not everything can be fixed, especially outside the base system. For instance, third-party APIs which pass struct stat around are broken in backward and forward incompatible ways.
Kinfo sysctl MIBs ABI is changed in backward-compatible way, but there is no general mechanism to handle other sysctl MIBS which return structures where the layout has changed. It was considered that the breakage is either in the management interfaces, where we usually allow ABI slip, or is not important.
Struct xvnode changed layout, no compat shims are provided.
For struct xtty, dev_t tty device member was reduced to uint32_t. It was decided that keeping ABI compat in this case is more useful than reporting 64-bit dev_t, for the sake of pstat.
Update note: strictly follow the instructions in UPDATING. Build and install the new kernel with COMPAT_FREEBSD11 option enabled, then reboot, and only then install new world.
Credits: The 64-bit inode project, also known as ino64, started life many years ago as a project by Gleb Kurtsou (gleb). Kirk McKusick (mckusick) then picked up and updated the patch, and acted as a flag-waver. Feedback, suggestions, and discussions were carried by Ed Maste (emaste), John Baldwin (jhb), Jilles Tjoelker (jilles), and Rick Macklem (rmacklem). Kris Moore (kris) performed an initial ports investigation followed by an exp-run by Antoine Brodin (antoine). Essential and all-embracing testing was done by Peter Holm (pho). The heavy lifting of coordinating all these efforts and bringing the project to completion were done by Konstantin Belousov (kib).
Sponsored by: The FreeBSD Foundation (emaste, kib) Differential revision: https://reviews.freebsd.org/D10439
show more ...
|
| #
fbbd9655 |
| 28-Feb-2017 |
Warner Losh <[email protected]> |
Renumber copyright clause 4
Renumber cluase 4 to 3, per what everybody else did when BSD granted them permission to remove clause 3. My insistance on keeping the same numbering for legal reasons is
Renumber copyright clause 4
Renumber cluase 4 to 3, per what everybody else did when BSD granted them permission to remove clause 3. My insistance on keeping the same numbering for legal reasons is too pedantic, so give up on that point.
Submitted by: Jan Schaumann <[email protected]> Pull Request: https://github.com/freebsd/freebsd/pull/96
show more ...
|
|
Revision tags: release/11.0.1, release/11.0.0, release/10.3.0, release/10.2.0 |
|
| #
2205e0d1 |
| 23-Jan-2015 |
Jilles Tjoelker <[email protected]> |
Add futimens and utimensat system calls.
The core kernel part is patch file utimes.2008.4.diff from [email protected]. I updated the code for API changes, added the manual page and added compatibi
Add futimens and utimensat system calls.
The core kernel part is patch file utimes.2008.4.diff from [email protected]. I updated the code for API changes, added the manual page and added compatibility code for old kernels. There is also audit and Capsicum support.
A new UTIME_* constant might allow setting birthtimes in future.
Differential Revision: https://reviews.freebsd.org/D1426 Submitted by: pluknet (partially) Reviewed by: delphij, pluknet, rwatson Relnotes: yes
show more ...
|
|
Revision tags: release/10.1.0, release/9.3.0 |
|
| #
448f5f73 |
| 11-May-2014 |
Jilles Tjoelker <[email protected]> |
include: Remove checks for __BSD_VISIBLE where redundant with __XSI_VISIBLE or __POSIX_VISIBLE.
Whenever <sys/cdefs.h> sets __BSD_VISIBLE to non-zero, it also sets __POSIX_VISIBLE and __XSI_VISIBLE
include: Remove checks for __BSD_VISIBLE where redundant with __XSI_VISIBLE or __POSIX_VISIBLE.
Whenever <sys/cdefs.h> sets __BSD_VISIBLE to non-zero, it also sets __POSIX_VISIBLE and __XSI_VISIBLE to the newest version supported.
No functional change is intended.
show more ...
|
|
Revision tags: release/10.0.0, release/9.2.0 |
|
| #
7da1a731 |
| 21-Aug-2013 |
Kenneth D. Merry <[email protected]> |
Expand the use of stat(2) flags to allow storing some Windows/DOS and CIFS file attributes as BSD stat(2) flags.
This work is intended to be compatible with ZFS, the Solaris CIFS server's interactio
Expand the use of stat(2) flags to allow storing some Windows/DOS and CIFS file attributes as BSD stat(2) flags.
This work is intended to be compatible with ZFS, the Solaris CIFS server's interaction with ZFS, somewhat compatible with MacOS X, and of course compatible with Windows.
The Windows attributes that are implemented were chosen based on the attributes that ZFS already supports.
The summary of the flags is as follows:
UF_SYSTEM: Command line name: "system" or "usystem" ZFS name: XAT_SYSTEM, ZFS_SYSTEM Windows: FILE_ATTRIBUTE_SYSTEM
This flag means that the file is used by the operating system. FreeBSD does not enforce any special handling when this flag is set.
UF_SPARSE: Command line name: "sparse" or "usparse" ZFS name: XAT_SPARSE, ZFS_SPARSE Windows: FILE_ATTRIBUTE_SPARSE_FILE
This flag means that the file is sparse. Although ZFS may modify this in some situations, there is not generally any special handling for this flag.
UF_OFFLINE: Command line name: "offline" or "uoffline" ZFS name: XAT_OFFLINE, ZFS_OFFLINE Windows: FILE_ATTRIBUTE_OFFLINE
This flag means that the file has been moved to offline storage. FreeBSD does not have any special handling for this flag.
UF_REPARSE: Command line name: "reparse" or "ureparse" ZFS name: XAT_REPARSE, ZFS_REPARSE Windows: FILE_ATTRIBUTE_REPARSE_POINT
This flag means that the file is a Windows reparse point. ZFS has special handling code for reparse points, but we don't currently have the other supporting infrastructure for them.
UF_HIDDEN: Command line name: "hidden" or "uhidden" ZFS name: XAT_HIDDEN, ZFS_HIDDEN Windows: FILE_ATTRIBUTE_HIDDEN
This flag means that the file may be excluded from a directory listing if the application honors it. FreeBSD has no special handling for this flag.
The name and bit definition for UF_HIDDEN are identical to the definition in MacOS X.
UF_READONLY: Command line name: "urdonly", "rdonly", "readonly" ZFS name: XAT_READONLY, ZFS_READONLY Windows: FILE_ATTRIBUTE_READONLY
This flag means that the file may not written or appended, but its attributes may be changed.
ZFS currently enforces this flag, but Illumos developers have discussed disabling enforcement.
The behavior of this flag is different than MacOS X. MacOS X uses UF_IMMUTABLE to represent the DOS readonly permission, but that flag has a stronger meaning than the semantics of DOS readonly permissions.
UF_ARCHIVE: Command line name: "uarch", "uarchive" ZFS_NAME: XAT_ARCHIVE, ZFS_ARCHIVE Windows name: FILE_ATTRIBUTE_ARCHIVE
The UF_ARCHIVED flag means that the file has changed and needs to be archived. The meaning is same as the Windows FILE_ATTRIBUTE_ARCHIVE attribute, and the ZFS XAT_ARCHIVE and ZFS_ARCHIVE attribute.
msdosfs and ZFS have special handling for this flag. i.e. they will set it when the file changes.
sys/param.h: Bump __FreeBSD_version to 1000047 for the addition of new stat(2) flags.
chflags.1: Document the new command line flag names (e.g. "system", "hidden") available to the user.
ls.1: Reference chflags(1) for a list of file flags and their meanings.
strtofflags.c: Implement the mapping between the new command line flag names and new stat(2) flags.
chflags.2: Document all of the new stat(2) flags, and explain the intended behavior in a little more detail. Explain how they map to Windows file attributes.
Different filesystems behave differently with respect to flags, so warn the application developer to take care when using them.
zfs_vnops.c: Add support for getting and setting the UF_ARCHIVE, UF_READONLY, UF_SYSTEM, UF_HIDDEN, UF_REPARSE, UF_OFFLINE, and UF_SPARSE flags.
All of these flags are implemented using attributes that ZFS already supports, so the on-disk format has not changed.
ZFS currently doesn't allow setting the UF_REPARSE flag, and we don't really have the other infrastructure to support reparse points.
msdosfs_denode.c, msdosfs_vnops.c: Add support for getting and setting UF_HIDDEN, UF_SYSTEM and UF_READONLY in MSDOSFS.
It supported SF_ARCHIVED, but this has been changed to be UF_ARCHIVE, which has the same semantics as the DOS archive attribute instead of inverse semantics like SF_ARCHIVED.
After discussion with Bruce Evans, change several things in the msdosfs behavior:
Use UF_READONLY to indicate whether a file is writeable instead of file permissions, but don't actually enforce it.
Refuse to change attributes on the root directory, because it is special in FAT filesystems, but allow most other attribute changes on directories.
Don't set the archive attribute on a directory when its modification time is updated. Windows and DOS don't set the archive attribute in that scenario, so we are now bug-for-bug compatible.
smbfs_node.c, smbfs_vnops.c: Add support for UF_HIDDEN, UF_SYSTEM, UF_READONLY and UF_ARCHIVE in SMBFS.
This is similar to changes that Apple has made in their version of SMBFS (as of smb-583.8, posted on opensource.apple.com), but not quite the same.
We map SMB_FA_READONLY to UF_READONLY, because UF_READONLY is intended to match the semantics of the DOS readonly flag. The MacOS X code maps both UF_IMMUTABLE and SF_IMMUTABLE to SMB_FA_READONLY, but the immutable flags have stronger meaning than the DOS readonly bit.
stat.h: Add definitions for UF_SYSTEM, UF_SPARSE, UF_OFFLINE, UF_REPARSE, UF_ARCHIVE, UF_READONLY and UF_HIDDEN.
The definition of UF_HIDDEN is the same as the MacOS X definition.
Add commented-out definitions of UF_COMPRESSED and UF_TRACKED. They are defined in MacOS X (as of 10.8.2), but we do not implement them (yet).
ufs_vnops.c: Add support for getting and setting UF_ARCHIVE, UF_HIDDEN, UF_OFFLINE, UF_READONLY, UF_REPARSE, UF_SPARSE, and UF_SYSTEM in UFS. Alphabetize the flags that are supported.
These new flags are only stored, UFS does not take any action if the flag is set.
Sponsored by: Spectra Logic Reviewed by: bde (earlier version)
show more ...
|
|
Revision tags: release/8.4.0 |
|
| #
e948704e |
| 21-Mar-2013 |
Pawel Jakub Dawidek <[email protected]> |
Implement chflagsat(2) system call, similar to fchmodat(2), but operates on file flags.
Reviewed by: kib, jilles Sponsored by: The FreeBSD Foundation
|
| #
b4b2596b |
| 21-Mar-2013 |
Pawel Jakub Dawidek <[email protected]> |
- Make 'flags' argument to chflags(2), fchflags(2) and lchflags(2) of type u_long. Before this change it was of type int for syscalls, but prototypes in sys/stat.h and documentation for chflags(2
- Make 'flags' argument to chflags(2), fchflags(2) and lchflags(2) of type u_long. Before this change it was of type int for syscalls, but prototypes in sys/stat.h and documentation for chflags(2) and fchflags(2) (but not for lchflags(2)) stated that it was u_long. Now some related functions use u_long type for flags (strtofflags(3), fflagstostr(3)). - Make path argument of type 'const char *' for consistency.
Discussed on: arch Sponsored by: The FreeBSD Foundation
show more ...
|
|
Revision tags: release/9.1.0 |
|
| #
dec97f1b |
| 22-Jul-2012 |
Konstantin Belousov <[email protected]> |
Put struct ostat and struct nstat under #ifdef _KERNEL. The compatibility definitions are only needed for implementation of the syscalls, they cause namespace pollution and are not useful for applica
Put struct ostat and struct nstat under #ifdef _KERNEL. The compatibility definitions are only needed for implementation of the syscalls, they cause namespace pollution and are not useful for applications.
Noted by: bde MFC after: 1 week
show more ...
|
|
Revision tags: release/8.3.0_cvs, release/8.3.0, release/9.0.0, release/7.4.0_cvs, release/8.2.0_cvs, release/7.4.0, release/8.2.0, release/8.1.0_cvs, release/8.1.0 |
|
| #
510ea843 |
| 28-Mar-2010 |
Ed Schouten <[email protected]> |
Rename st_*timespec fields to st_*tim for POSIX 2008 compliance.
A nice thing about POSIX 2008 is that it finally standardizes a way to obtain file access/modification/change times in sub-second pre
Rename st_*timespec fields to st_*tim for POSIX 2008 compliance.
A nice thing about POSIX 2008 is that it finally standardizes a way to obtain file access/modification/change times in sub-second precision, namely using struct timespec, which we already have for a very long time. Unfortunately POSIX uses different names.
This commit adds compatibility macros, so existing code should still build properly. Also change all source code in the kernel to work without any of the compatibility macros. This makes it all a less ambiguous.
I am also renaming st_birthtime to st_birthtim, even though it was a local extension anyway. It seems Cygwin also has a st_birthtim.
show more ...
|
|
Revision tags: release/7.3.0_cvs, release/7.3.0, release/8.0.0_cvs, release/8.0.0, release/7.2.0_cvs, release/7.2.0 |
|
| #
cc4603df |
| 14-Mar-2009 |
David Schultz <[email protected]> |
Various namespace cleanups, including exposing fchmod() and fchmodat() in the POSIX namespace, and hiding eaccess() and setproctitle(). Also move mknodat() from unistd.h to sys/stat.h where it belong
Various namespace cleanups, including exposing fchmod() and fchmodat() in the POSIX namespace, and hiding eaccess() and setproctitle(). Also move mknodat() from unistd.h to sys/stat.h where it belongs. The *at() syscalls are only in CURRENT, so this shouldn't cause problems.
show more ...
|
| #
6c5fb64c |
| 04-Mar-2009 |
David Schultz <[email protected]> |
Add *at to the POSIX.1-2008 namespace.
|
|
Revision tags: release/7.1.0_cvs, release/7.1.0, release/6.4.0_cvs, release/6.4.0 |
|
| #
ba2983e5 |
| 31-Mar-2008 |
Konstantin Belousov <[email protected]> |
Add the libc glue and headers definitions for the *at() syscalls.
Based on the submission by rdivacky, sponsored by Google Summer of Code 2007 Reviewed by: rwatson, rdivacky Tested by: pho
|
|
Revision tags: release/7.0.0_cvs, release/7.0.0, release/6.3.0_cvs, release/6.3.0 |
|
| #
e3709a56 |
| 28-Nov-2007 |
John Birrell <[email protected]> |
Remove _SOLARIS_C_SOURCE compatibility definitions. Unfortunately the ZFS porting style didn't extend this, instead using a heap of additional header files that don't get installed.
My intention had
Remove _SOLARIS_C_SOURCE compatibility definitions. Unfortunately the ZFS porting style didn't extend this, instead using a heap of additional header files that don't get installed.
My intention had been to allow OpenSolaris external code to build on FreeBSD out of the box (i.e. without a src tree).
show more ...
|
|
Revision tags: release/6.2.0_cvs, release/6.2.0 |
|
| #
3255d301 |
| 04-Aug-2006 |
John Birrell <[email protected]> |
Add OpenSolaris compatibility definitions for stat64 and fstat64 which are only visible if _SOLARIS_C_SOURCE is defined.
Note thar FreeBSD stat() and fstat() are 64-bit functions now and Solaris sti
Add OpenSolaris compatibility definitions for stat64 and fstat64 which are only visible if _SOLARIS_C_SOURCE is defined.
Note thar FreeBSD stat() and fstat() are 64-bit functions now and Solaris still persists with both 32- and 64-bit versions. When I query this, I am referred to: <http://www.unix.org/version2/whatsnew/lfs20mar.html>. But when you look at the main page of unix.org you will see that the Single Unix Specification <http://www.unix.org/version3/> is the most recent standard they are pushing. And there are no stat64() fstat64() functions defined there. I guess this just goes to prove that there are so many standards, you can take your pick.
show more ...
|
|
Revision tags: release/5.5.0_cvs, release/5.5.0, release/6.1.0_cvs, release/6.1.0, release/6.0.0_cvs, release/6.0.0, release/5.4.0_cvs, release/5.4.0 |
|
| #
3eea6658 |
| 22-Mar-2005 |
David Schultz <[email protected]> |
- Declare mknod in stat.h (in addition to unistd.h), as per XSI. - Use blksize_t and blkcnt_t in struct stat. - Hide non-standard fields in stat.h when !__BSD_VISIBLE. - Add restrict qualifiers in st
- Declare mknod in stat.h (in addition to unistd.h), as per XSI. - Use blksize_t and blkcnt_t in struct stat. - Hide non-standard fields in stat.h when !__BSD_VISIBLE. - Add restrict qualifiers in stat.h.
show more ...
|
|
Revision tags: release/4.11.0_cvs, release/4.11.0, release/5.3.0_cvs, release/5.3.0 |
|
| #
f3732fd1 |
| 17-Jun-2004 |
Poul-Henning Kamp <[email protected]> |
Second half of the dev_t cleanup.
The big lines are: NODEV -> NULL NOUDEV -> NODEV udev_t -> dev_t udev2dev() -> findcdev()
Various minor adjustments including handling of userland access to ke
Second half of the dev_t cleanup.
The big lines are: NODEV -> NULL NOUDEV -> NODEV udev_t -> dev_t udev2dev() -> findcdev()
Various minor adjustments including handling of userland access to kernel space struct cdev etc.
show more ...
|
| #
89c9c53d |
| 16-Jun-2004 |
Poul-Henning Kamp <[email protected]> |
Do the dreaded s/dev_t/struct cdev */ Bump __FreeBSD_version accordingly.
|
|
Revision tags: release/4.10.0_cvs, release/4.10.0 |
|
| #
82c6e879 |
| 07-Apr-2004 |
Warner Losh <[email protected]> |
Remove advertising clause from University of California Regent's license, per letter dated July 22, 1999.
Approved by: core
|
|
Revision tags: release/5.2.1_cvs, release/5.2.1, release/5.2.0_cvs, release/5.2.0, release/4.9.0_cvs, release/4.9.0, release/5.1.0_cvs, release/5.1.0 |
|
| #
6f9622a9 |
| 22-May-2003 |
Mike Barcroft <[email protected]> |
Fix two misuses of __BSD_VISIBLE.
Submitted by: bde Approved by: re
|
|
Revision tags: release/4.8.0_cvs, release/4.8.0 |
|
| #
a54ec1d2 |
| 28-Mar-2003 |
Mike Barcroft <[email protected]> |
Move details of dev_t (and udev_t) to <sys/_types.h>.
|
| #
809484cd |
| 19-Mar-2003 |
Mike Barcroft <[email protected]> |
Update some more namespaces (forgotten in the previous revision).
|
| #
13141dbc |
| 14-Mar-2003 |
Mike Barcroft <[email protected]> |
Add missing types, update standard namespaces, and use variable types that don't require <sys/types.h>.
|
| #
864b2849 |
| 07-Mar-2003 |
Andrey A. Chernov <[email protected]> |
Replace u_int with "unsigned int" to prevent following errors:
#include <sys/types.h> #include <sys/stat.h>
main () { }
cc -D_POSIX_C_SOURCE test.c /usr/include/sys/stat.h:127: syntax error before
Replace u_int with "unsigned int" to prevent following errors:
#include <sys/types.h> #include <sys/stat.h>
main () { }
cc -D_POSIX_C_SOURCE test.c /usr/include/sys/stat.h:127: syntax error before "u_int" /usr/include/sys/stat.h:158: syntax error before "u_int"
(u_int becomes invisible for _POSIX_C_SOURCE and some other *_SOURCE modes)
show more ...
|