about summary refs log tree commit diff
path: root/src/libstd/sys
AgeCommit message (Collapse)AuthorLines
2016-11-22Add a method for setting permissions directly on an open file.Steven Allen-0/+32
On unix like systems, the underlying file corresponding to any given path may change at any time. This function makes it possible to set the permissions of the a file corresponding to a `File` object even if its path changes.
2016-11-21Auto merge of #37677 - jsen-:master, r=alexcrichtonbors-8/+26
libstd: support creation of anonymous pipe on WinXP/2K3 `PIPE_REJECT_REMOTE_CLIENTS` flag is not supported on Windows < VISTA, and every invocation of `anon_pipe` including attempts to pipe `std::process::Child`'s stdio fails. This PR should work around this issue by performing a runtime check of windows version and conditionally omitting this flag on "XP and friends". Getting the version should be probably moved out of the function `anon_pipe` itself (the OS version does not often change during runtime :) ), but: - I didn't find any precedent for this and assuming there's not much overhead (I hope windows does not perform any heuristics to find out it's own version, just fills couple of fields in the struct). - the code path is not especially performance sensitive anyway.
2016-11-20support creation of anonymous pipe on WinXP/2K3jsen--8/+26
2016-11-10doc: fix typosTshepang Lekhonkhobe-1/+1
2016-11-04std: Track change to cprng syscall signature (Fuchsia)Raph Levien-8/+20
The mx_cprng_draw syscall has changed signature to separate the status and size return values, rather than multiplexing them into a single value with errors interpreted as a negative value. This patch tracks that change.
2016-11-01Document sys_common and sysBrian Anderson-0/+22
2016-11-01std: Move sys_common to libstd/sys_commonBrian Anderson-3928/+0
Make the directory structure reflect the module structure. I've always found the existing structure confusing.
2016-11-01std: Move platform-specific out of sys_common::utilBrian Anderson-27/+26
2016-11-01std: Move platform-specific code out of libstd/lib.rsBrian Anderson-3/+22
2016-11-01std: Move a plattform-specific constant to sys::stdioBrian Anderson-0/+8
2016-11-01std: Move elf TLS to sys::fast_thread_localBrian Anderson-0/+168
2016-10-28Auto merge of #37385 - raphlinus:fuchsia_random, r=alexcrichtonbors-1/+53
Add support for kernel randomness for Fuchsia Wire up cprng syscall as provider for rand::os::OsRng on Fuchsia.
2016-10-24Add support for kernel randomness for FuchsiaRaph Levien-1/+53
Wire up cprng syscall as provider for rand::os::OsRng on Fuchsia.
2016-10-22Fix tidy warningRaph Levien-1/+1
Prefer FIXME to TODO
2016-10-22Fix missing DirEntryExt::inoRaph Levien-2/+2
The DirEntryExt::ino() implementation was omitted from the first iteration of this patch, because a dependency needed to be configured. The fix is straightforward enough.
2016-10-22Add Fuchsia supportRaph Levien-5/+30
Adds support for the x86_64-unknown-fuchsia target, which covers the Fuchsia operating system.
2016-10-16impl Debug for ReadDirDavid Henningsson-0/+16
It is good practice to implement Debug for public types, and indicating what directory you're reading seems useful. Signed-off-by: David Henningsson <diwic@ubuntu.com>
2016-10-14Auto merge of #35704 - tbu-:pr_pread_pwrite, r=alexcrichtonbors-7/+250
Implement `read_offset` and `write_offset` These functions allow to read from and write to a file from multiple threads without changing the per-file cursor, avoiding the race between the seek and the read.
2016-10-14Android: Fix unused-imports warningTobias Bucher-1/+2
2016-10-14Only use Android fallback for {ftruncate,pread,pwrite} on 32 bitTobias Bucher-0/+24
2016-10-12Rollup merge of #36995 - nrc:stable, r=@nikomatsakisAlex Crichton-3/+2
stabilise ?, attributes on stmts, deprecate Reflect r? @nikomatsakis
2016-10-12Remove unnecessary `unsafe` blockTobias Bucher-20/+16
2016-10-12Deprecate `Reflect`Nick Cameron-3/+2
[tracking issue](https://github.com/rust-lang/rust/issues/27749)
2016-10-11Fix Android compilation `io::Error` -> `io::ErrorKind`Tobias Bucher-2/+2
2016-10-09use MSG_NOSIGNAL on all relevant platformsMathieu Poumeyrol-6/+18
2016-10-09Use `try_into` and move some functionsTobias Bucher-29/+37
2016-10-09Dynamically detect presence of `p{read,write}64` on AndroidTobias Bucher-23/+68
2016-10-09Implement reading and writing atomically at certain offsetsTobias Bucher-1/+170
These functions allow to read from and write to a file in one atomic action from multiple threads, avoiding the race between the seek and the read. The functions are named `{read,write}_at` on non-Windows (which don't change the file cursor), and `seek_{read,write}` on Windows (which change the file cursor).
2016-10-08Use less `size_t` casts in libstd since it's now defined as `usize`Tobias Bucher-37/+31
2016-10-06Rollup merge of #36965 - kallisti5:master, r=alexcrichtonJonathan Turner-1/+1
Haiku: Fix IPv6 target_os check
2016-10-05Auto merge of #36944 - brson:modos, r=alexcrichtonbors-3/+3
Fix mod declarations on untested platforms r? @alexcrichton
2016-10-04Haiku: Fix IPv6 target_os checkAlexander von Gluck IV-1/+1
2016-10-04Rollup merge of #36902 - ollie27:stab_impls, r=alexcrichtonManish Goregaokar-8/+8
std: Correct stability attributes for some implementations These are displayed by rustdoc so should be correct.
2016-10-03Fix mod declarations on untested platformsBrian Anderson-3/+3
2016-10-02Move platform-specific arg handling to sys::argsBrian Anderson-278/+290
2016-10-02Add a platform-abstraction tidy scriptBrian Anderson-1/+2
This is intended to maintain existing standards of code organization in hopes that the standard library will continue to be refactored to isolate platform-specific bits, making porting easier; where "standard library" roughly means "all the dependencies of the std and test crates". This generally means placing restrictions on where `cfg(unix)`, `cfg(windows)`, `cfg(target_os)` and `cfg(target_env)` may appear, the basic objective being to isolate platform-specific code to the platform-specific `std::sys` modules, and to the allocation, unwinding, and libc crates. Following are the basic rules, though there are currently exceptions: - core may not have platform-specific code - liballoc_system may have platform-specific code - liballoc_jemalloc may have platform-specific code - libpanic_abort may have platform-specific code - libpanic_unwind may have platform-specific code - other crates in the std facade may not - std may have platform-specific code in the following places - sys/unix/ - sys/windows/ - os/ There are plenty of exceptions today though, noted in the whitelist.
2016-10-01std: Correct stability attributes for some implementationsOliver Middleton-8/+8
These are displayed by rustdoc so should be correct.
2016-10-01std: Move platform specific stdio code into sysBrian Anderson-0/+4
2016-10-01std: Move platform specific memchr code into sysBrian Anderson-0/+305
2016-10-01std: Move platform specific env code into sysBrian Anderson-0/+194
2016-10-01std: Move platform specific path code into sysBrian Anderson-0/+139
2016-10-01Auto merge of #36824 - kali:master, r=alexcrichtonbors-5/+27
SO_NOSIGPIPE and MSG_NOSIGNAL (rebased #36426) I'm not sure what happened when I pushed a rebased branch on #36426 , github closed it...
2016-09-30Call emcc with ERROR_ON_UNDEFINED_SYMBOLSBrian Anderson-5/+18
2016-09-30Ignore various entire test modules on emscriptenBrian Anderson-19/+3
2016-09-30Ignore lots and lots of std tests on emscriptenBrian Anderson-0/+18
2016-09-28use MSG_NOSIGNAL from liblibcMathieu Poumeyrol-10/+6
2016-09-28MSG_NOSIGNAL on linuxMathieu Poumeyrol-4/+18
2016-09-28set SO_NOSIGPIPE on apple platformsMathieu Poumeyrol-1/+13
2016-09-28[breaking-change] std: change `encode_utf{8,16}()` to take a buffer and ↵tormol-9/+12
return a slice They panic if the buffer is too small.
2016-09-26Rollup merge of #36754 - tmiasko:getaddrinfo-errors, r=alexcrichtonJonathan Turner-2/+7
When getaddrinfo returns EAI_SYSTEM retrieve actual error from errno. Fixes issue #36546. This change also updates libc to earliest version that includes EAI_SYSTEM constant. Previously, in cases where `EAI_SYSTEM` has been returned from getaddrinfo, the resulting `io::Error` would be broadly described as "System error": Error { repr: Custom(Custom { kind: Other, error: StringError("failed to lookup address information: System error") }) } After change a more detailed error is crated based on particular value of errno, for example: Error { repr: Os { code: 64, message: "Machine is not on the network" } } The only downside is that the prefix "failed to lookup address information" is no longer included in the error message.