History log of /fuchsia/zircon/system/utest/ramdisk/rules.mk
Revision Date Author Comments
# c288126b 12-Jul-2018 Suraj Malhotra <surajmalhotra@google.com>

[fzl] Move fs::MappedVmo to fzl::MappedVmo

This is a useful utility outside of the scope of just filesystems.

Change-Id: Id9cfa3d40e7d45dd6dd94242c1a85204f1139bfa
Tested: Run `runtests`


# 049ff83d 15-May-2018 Tricia Landers <planders@google.com>

[ramdisk] Fail after block count instead of transaction count.

Test: Ramdisk and zxcrypt tests

Change-Id: Idf80102b6c04dd8c468f347607502672df0b91db


# 96bdcbb7 29-Mar-2018 Aaron Green <aarongreen@google.com>

[ramdisk] Allow deferring txns until waking

This CL adds a flag, RAMDISK_FLAG_RESUME_ON_WAKE. Setting this flag
causes txns received while the ramdisk is asleep to be deferred until
wake_ramdisk is called.

Additionally, get_ramdisk_txns now returns the number of received and
failed transactions as well as those successfully completed.

Finally, a few lines of code were moved around and locks added to
improve the thread safety of concurrent access to various txn counts and
sleep states by the worker thread.

Change-Id: I3d23f197b6cdfe3f410542f80561bfee2242582a


# f3e2126c 12-Sep-2017 Roland McGrath <mcgrathr@google.com>

[zx] Magenta -> Zircon

The Great Renaming is here!

Change-Id: I3229bdeb2a3d0e40fb4db6fec8ca7d971fbffb94


# 59e644b1 07-Sep-2017 George Kulakowski <kulakowski@google.com>

[zircon][mxtl->fbl] Rename mxtl to fbl

Change-Id: Ie21b6498e1bfb0a7fa0315e40b9e5c3ee78646be


# 10a03ab6 03-Aug-2017 Jeff Brown <jeffbrown@google.com>

[mxtl][mxalloc] Redirect all clients of mxalloc to mxtl.

Change-Id: Ib6d88937212ab23612f59add8bd028862308ead5


# e2bf6f8d 09-Jun-2017 Sean Klein <smklein@google.com>

[ramdisk] Allow ramdisk driver to supply ramdisks names

This prevents clients from handling issues of name collision.

Change-Id: I2eff8a162ba804f2ba417c39218584a4840d64e7


# 1fb8124a 16-May-2017 George Kulakowski <kulakowski@google.com>

[mxcpp][mxalloc] Split mxcpp into mxcpp and mxalloc

mxcpp used to provide three things.

(1) is a very minimal C++ runtime environment. This means essentially
the definition of __cxa_pure_virtual, which is a function the compiler
expects to have ambient. This functionality is necessary for code
written in environments which cannot link the standard library (the
kernel and a handful of initial userspace processes).

(2) is the definitions of the standard new and delete
overloads. Again, these are needed for code that wants to call them
but to not link the standard library, but this time only in userspace
(the kernel does not want certain behavior stemming from the standard
overloads). The behavior is slightly different than the standard ones
in failure cases, but not in a way particularly interesting to the
rest of this email.

(3) is the userspace version of our special AllocChecker new
overloads. This mechanism exists for kernelspace, where allocation
failure is real and needs to be handled. This mechanism works
perfectly well in userspace, in that it compiles, even though the
underlying allocator is unlikely to ever return nullptr. It's
therefore essentially harmless in userspace. A handful of small
libraries are used in both userspace and in the kernel, and also use
this mechanism. Note that this feature is essentially copy-pasted
between the kernel and userspace.

This all works perfectly well for the kernel.

Some userspace code also uses these mechanisms, as mentioned. As long
as the standard library isn't linked, there are again no issues.

But as soon as you want both (3) and std::vector, which is a
reasonable thing to want!, there are issues because (1) and (3) come
in the same static library. This causes link failures due to duplicate
__cxa_pure_virtual symbols. This issue is exacerbated by different
behavior in Linux, OS X, and target linkage, in terms of confusion and
it-works-on-my-machine sort of issues.

This patch splits mxcpp into: mxcpp, containing (1) __cxa_pure_virtual
and (2) only if in userspace, the standard new and delete overloads;
and mxalloc, containing (3) AllocChecker. mxcpp is mutually exclusive
of the standard library. mxalloc can be linked against both code using
the standard library, and against code using mxcpp.

This patch also deduplicates the AllocChecker between userspace and
kernel, and moves the InlineArray class into the kernel (its only
callsites are in the kernel).

Change-Id: Id42d5d019ee977d44d6cb89ce7ab6884f7a56cd1


# 91125e0a 23-Apr-2017 Roland McGrath <mcgrathr@google.com>

[ulib] Make mxtl, mxcpp, and mx libraries static-only

mxtl is actually a header-only library, so don't build a
shared object for it.

The mxtl and mx libraries are already built only as static
libraries in the Fuchsia GN build. Their code is very small.
Make the Magenta make build follow suit.

Change-Id: Ia79e5a996a981a8b046370d4ece9597f8e5bd1c2


# 16656ae0 05-Apr-2017 Brian Swetland <swetland@google.com>

[build] flatten the build

Previously we treated kernel/, system/, and third_party/ as
overlays on a shared namespace. This required the concept
of "canonical" module names, and a lot of complexity to ensure
that things didn't collide and the build worked.

This change gets rid of that, no longer passes -I to make,
so that include directives from our *.mk files do not magically
wildcard across various paths, etc.

The most user-visible change is that everywhere where a module
name is specified (MODULE_DEPS, MODULE_LIBS, etc), full module
names like kernel/lib/io or system/ulib/mxio must be used instead
of previously-allowed "short" names like lib/io and ulib/mxio.

The build output still has a similar shape, but the first segment
of the module path (kernel/, system/, or third_party/) is no
longer elided under $(BUILDDIR)

Change-Id: I525aba1da1c86eb7a86007bddc669f7eeebfedd5


# b0e8a723 13-Feb-2017 Sean Klein <smklein@google.com>

[block][ramdisk] Add FIFO support to block device

- Implemented ulib/block library to support FIFO-based block
protocol.
- Added "udev/block", acting as a global block device. Added
MX_PROTOCOL_BLOCK_CORE, which will be implemented by all
"hardware-specific" block devices. "udev/block" binds
to any hardware-specific devies that implement this protocol.
udev/block calls into the ulib/block library, which deals
with the client / server interaction.
- Updated utest/ramdisk to test the ulib/block protocol.
- Updated all uses of opening the ramdisk, so it can be accessed
through the superset of the udev/block interface.

Change-Id: I85d4d1ba70eed5c2b0bdcfbe5ff23d88afcd60cf


# 12242caa 07-Mar-2017 Brian Swetland <swetland@google.com>

[build][musl] refer to musl libc as ulib/c

This makes the build rules and the intermediate
output files easier to understand, without having
to modify the path where musl libc lives.

The biggest observeable difference is the build
intermediate files:

$ ls build-magenta-pc-x86-64/ulib/c
config-module.h libc.abi.h libc.abi.stamp libc.so libc.so.id libc.so.strip
libc.a libc.abi.o libc.a.opts libc.so.abi libc.so.opts third_party

which previously were at build-magenta-pc-x86/ulib/musl
and named libmusl.*

and the replacing of ulib/musl with ulib/c in the library
dependencies of all the rules.mk files (the vast bulk of
this change)

Change-Id: If9c5d522099d2c9ac5bdb666b8e67a2eb3d316ee


# 2c85f349 10-Jan-2017 Sean Klein <smklein@google.com>

[udev/ramdisk] Added ramdisk

- Added device which appears like persistent storage, but is only backed
by a memory-mapped VMO. This device will be useful for testing
filesystem correctness without relying on underlying storage.
- Added simple ramdisk tests

Change-Id: Ifb83f158803672cedbf6538dc07665737accdb56