History log of /libcore/luni/src/main/native/libcore_io_Linux.cpp
Revision Date Author Comments
382bdddf5333e6c5699e9192c88b08066a741d56 09-Apr-2018 Pete Gillin <peteg@google.com> Revert "Add getgroups()/setgroups() to libcore.Os"

These (@hide) methods are unused, and the team who initially requested
them no longer need them. Also, the tests for setgroups recently
started failing (b/77599196).

This reverts commit 44177e6982a62506127a857070a2452956c3f0f1.

Bug: 77599196
Test: Treehugger

(cherry picked from commit 1925ee9be8abc4898626a14e54dde70015e0ed53)

Change-Id: Ia22ae6ab91503b221dd9fc8232c6fe651b25689e
Merged-In: Ia22ae6ab91503b221dd9fc8232c6fe651b25689e
50e20daf19d19acd61bb2ac0fddf4be09814defb 24-Jan-2018 Tobias Thierer <tobiast@google.com> Fix android.system.Os.waitpid() for status == null.

Os.waitpid() is implemented on top of libcore_io_Linux.waitpid().
This native implementation unconditionally dereferenced the
javaStatus pointer; when it was NULL (which is allowed), this
triggered a native crash.

Test: Ran the (unsubmitted) tests from
https://r.android.com/c/platform/libcore/+/593113/4
Specifically, test_waitpid_blocks_nullStatus() triggers a
native crash before this CL but passes after this CL.
Bug: 72154644

Change-Id: Id314b743577566a4eac842884087c4ec9538259a
5310ea4af51082e4a775d31615daaa59754d003e 17-Jan-2018 Przemyslaw Szczepaniak <pszczepaniak@google.com> Add splice(2) syscall support

Splice can be used to speed up file copy operations
by avoiding moving any memory between kernel/user space.

Test: vogar OsTest & BlockGuardOsTest
Bug: 72004777
Change-Id: Ied19a7522eaea75dbc67094e15d54b8cc8e99db4
e3a3a06a94a50d31b7033e496f23becb0f1329c7 01-Nov-2017 Tobias Thierer <tobiast@google.com> Replace libcore.util.Mutable{Int,Long} with Int{32,64}Ref.

Since the new classes Int{32,64}Ref live in the package
android.system, which is fine for libcore to depend on,
there is no longer a need to have libcore.util.Mutable*.

This CL migrates all usages to the new classes.

Test: CtsLibcoreTestCases
Bug: 67901714

Change-Id: Icb55f778e05f6083d6d93b4c50fa76211dfa16c7
44177e6982a62506127a857070a2452956c3f0f1 30-Oct-2017 Enrico Granata <egranata@google.com> Add getgroups()/setgroups() to libcore.Os

Test: vogar OsTest.java
Change-Id: I756b30bed5882ade729ed93be658c56549088266
2c549f1ba3fb683ab1c4ede75bdcb312e8769672 30-Oct-2017 Andreas Gampe <agampe@google.com> Libcore: Move mutable class cache to libcore

These classes and fields are only used in libcore native code. Do
not expose them in JniConstants.

Bug: 68197265
Test: m
Test: m test-art-host
Test: vogar --mode=host libcore/luni/src/test/java/libcore/io/OsTest.java
Change-Id: I8a84fd0fa88e8174bea86a33bf58ad7eba392c82
0db74df8dbd81056d9d53b0ae3b2993fe12b348d 18-Oct-2017 Tobias Thierer <tobiast@google.com> Migrate libcore code to new classes libcore.util.Mutable{Int,Long}.

This is the second attempt to submit this CL. The first time this
CL was submitted [1], it was missing a corresponding change in
libnativehelper and was therefore reverted [2].

[1] commit bb1ca6958f161564fe4744ff9c32c6d0abdc7a41
at http://r.android.com/515035
[2] commit 3e06dd181820f01abaa33d8102aa1d781a867de5
at https://r.android.com/517995/

Original commit message follows:
=== cut ===

The new classes are the libcore-internal versions of the
corresponding classes in android.util.

This CL migrates libcore code to use these classes instead.
The only exception are android.system.Os's static method
signatures which continue to use android.util.Mutable{Int,Long}
since those signatures are part of the Android API. The
implementation of those methods converts between those
types and the libcore-internal ones.

This further reduces the dependency of libcore code onto
android.* packages.

Test: Treehugger
Bug: 67901714
Change-Id: Ic06e9824098984a2807adef8d5c257f6b0465a63
3e06dd181820f01abaa33d8102aa1d781a867de5 23-Oct-2017 Tobias Thierer <tobiast@google.com> Revert "Migrate libcore code to new classes libcore.util.Mutable{Int,Long}."

This reverts commit bb1ca6958f161564fe4744ff9c32c6d0abdc7a41.

Reason for revert: Likely cause of the below error that causes the device to not
boot successfully. Reverting while I work out the reason.

"JNI DETECTED ERROR IN APPLICATION: attempt to access field int android.util.MutableInt.value from an object argument of type libcore
.util.MutableInt: 0x70339504"

Change-Id: I3b55cde24e3594c0fda8f0261a003f880c2869aa
bb1ca6958f161564fe4744ff9c32c6d0abdc7a41 18-Oct-2017 Tobias Thierer <tobiast@google.com> Migrate libcore code to new classes libcore.util.Mutable{Int,Long}.

The new classes are the libcore-internal versions of the
corresponding classes in android.util.

This CL migrates libcore code to use these classes instead.
The only exception are android.system.Os's static method
signatures which continue to use android.util.Mutable{Int,Long}
since those signatures are part of the Android API. The
implementation of those methods converts between those
types and the libcore-internal ones.

This further reduces the dependency of libcore code onto
android.* packages.

Test: Treehugger
Bug: 67901714

Change-Id: Id072a1e830aba92a60c405836b4f74ab6a7ce172
77ffbdbe73a31f4de07c95dfd978af3c6679cc7f 03-Oct-2017 Przemyslaw Szczepaniak <pszczepaniak@google.com> Further checks for error coditions in linux.io.Linux JNI

Test: make & flash
Bug: 66910813
Change-Id: Ided44139628b938372941bf9dc7812490dfdf396
(cherry picked from commit fe1c2f9ea0666a129a25b7806c2f9e7af2daf4ba)
fe1c2f9ea0666a129a25b7806c2f9e7af2daf4ba 03-Oct-2017 Przemyslaw Szczepaniak <pszczepaniak@google.com> Further checks for error coditions in linux.io.Linux JNI

Test: make & flash
Bug: 66910813
Change-Id: Ided44139628b938372941bf9dc7812490dfdf396
911eb92d1b68610848ab63733788bc9c1b9b440a 26-Sep-2017 Przemyslaw Szczepaniak <pszczepaniak@google.com> Add missing checks for error coditions in linux.io.Linux JNI

Test: make & flash
Bug: 66907045
Bug: 66910813
Change-Id: Iaca77f5df448ea3839e89f275e91c0a60fdd0601
(cherry picked from commit 93a973589d69b7e4a725c058761b79a5d6600796)
93a973589d69b7e4a725c058761b79a5d6600796 26-Sep-2017 Przemyslaw Szczepaniak <pszczepaniak@google.com> Add missing checks for error coditions in linux.io.Linux JNI

Test: make & flash
Bug: 66907045
Bug: 66910813
Change-Id: Iaca77f5df448ea3839e89f275e91c0a60fdd0601
3c3ee8a421312ee7507ba3f07c3e1b1ba50cc4d7 29-Aug-2017 Przemyslaw Szczepaniak <pszczepaniak@google.com> Fix JNI error in Linux.(pipe2|sendfile).

JNI code in libcore.io.Linux.pipe2 and sendfile
were calling JNIEnv methods even if there was a pending
exception created by throwIfMinusOne helper method.
Fixed the code to return quickly if there's a pending errno
exception.

Test: libcore.io.OsTest
Bug: 65051835
Change-Id: Id921da9e1592b10889c495edb6b4c9919d181e3f
(cherry picked from commit 57a65ad7f0be5b9d0364d36208752f66e9f13596)
57a65ad7f0be5b9d0364d36208752f66e9f13596 29-Aug-2017 Przemyslaw Szczepaniak <pszczepaniak@google.com> Fix JNI error in Linux.(pipe2|sendfile).

JNI code in libcore.io.Linux.pipe2 and sendfile
were calling JNIEnv methods even if there was a pending
exception created by throwIfMinusOne helper method.
Fixed the code to return quickly if there's a pending errno
exception.

Test: libcore.io.OsTest
Bug: 65051835
Change-Id: Id921da9e1592b10889c495edb6b4c9919d181e3f
d0ef510dd06c9b59da94ff0a35d5154a20e82149 10-Aug-2017 Victor Chang <vichang@google.com> Remove setsockoptGroupSourceReq and StructGroupSourceReq

- setsockoptGroupSourceReq is dead code after removing
the corresponding socket options in Iobridge

Test: cts-tradefed run cts-dev --module CtsLibcoreTestCases
Test: cts-tradefed run cts-dev --module CtsLibcoreOjTestCases
Bug: 32071916
Change-Id: I18edca5d674a9b806356ecc40313be8dbb6e4eb5
e785612bdf3b0112b5a1854bdf241f0ef87a3171 10-Aug-2017 Narayan Kamath <narayan@google.com> Linux: Add proper casts for varargs call.

Test: vogar --mode=host --variant=x[32|64] OsTest
Bug: 64473964

(cherry picked from commit c30e11473bdb65fca5dd876753238462676a417e)

Change-Id: I5e3b216a01fc2a20dac79a7ac5196851d0f5dbeb
e873cd1285c04da110758df066b4bd40ad6eb93d 07-Aug-2017 Narayan Kamath <narayan@google.com> Linux: Implement getrlimit

Bug: 63004717
Test: vogar OsTest

(cherry picked from commit c5307105db3c8a091a7b1a47b344bdfa8d3f54d0)

Change-Id: Iebf8b87ceec9591097d05e9cd522d81624182452
c30e11473bdb65fca5dd876753238462676a417e 10-Aug-2017 Narayan Kamath <narayan@google.com> Linux: Add proper casts for varargs call.

Test: vogar --mode=host --variant=x[32|64] OsTest
Bug: 64473964
Change-Id: Ida010ebe697c979b51a7900b697590d0440fada8
c5307105db3c8a091a7b1a47b344bdfa8d3f54d0 07-Aug-2017 Narayan Kamath <narayan@google.com> Linux: Implement getrlimit

Bug: 63004717
Test: vogar OsTest
Change-Id: I6a44f2a1281b4cc2344629f5eabc160619151b56
cab01ac294bb8ded259851673baa4c6ca226f828 19-Jul-2017 Steven Moreland <smoreland@google.com> libcore: use proper nativehelper headers

libnativeheader exports headers under nativeheader. These were
available before incorrectly as global headers in order to give
access to jni.h.

Test: modules using libcore find headers
Bug: 63762847
Change-Id: Ic5873017bcf4d1c6e0873d7030ce56ee597b580d
108091b6787f37a23862c7c9bb965ccf932430ab 11-Jul-2017 Przemyslaw Szczepaniak <pszczepaniak@google.com> Added StructStat nanosecond precision fields.

Since Linux 2.6 the kernel supports nanosecond precision
(with timespec struct) for times of: last access, last
modification and last status change in stat struct.

Test: CtsLibcoreTestCases
Bug: 62949898
Change-Id: Ie3f13f621bc64dd20f01fdc0c10906f02f41909c
5744e4a762ca12243b47dd8aed24d87d963b4d3b 17-Mar-2017 Andreas Gampe <agampe@google.com> Libcore: Add support for capabilities

Add support for capget and capset, as well as related prctl constants,
to android.system.Os.

Bug: 36232535
Test: m
Test: manual
Change-Id: I28c741bef2f9e047400dae83b69fc22fd3527498
0965ac3ceff49f3c090c417c0e30ea51c6f294a7 15-Mar-2017 Andreas Gampe <agampe@google.com> Libcore: Rename Posix to Linux

We refer in Os to Linux manpages. Future changes will add Linux-specific
APIs to Os. Be honest and rename the class.

Bug: 36232535
Test: m
Test: m test-art-host
Test: Device boots
Change-Id: Ie9d4536d03499a75efaf2bcf16d41bacc97ac943