class MultiPageRequest

Defined at line 628 of file ../../zircon/kernel/vm/include/vm/page_source.h

Wrapper around tracking multiple different page requests that might need waiting. Only one

individual request is allowed to considered 'active' at a time as the one that next needs waiting

on. Tracking whether a request is active is, depending on the request type, partially automatic

and partially requiring additional input from the user.

The PageRequest and LazyPageRequest access methods do not currently have a way to enforce that

those specific types of requests are made with the returned objects, however this could change

and callers are expected to use the correct method.

TODO(adanis): Implement an enforcement strategy.

Public Methods

zx_status_t Wait (bool suspendable)

Wait on the currently active page request. The waiting thread is suspendable by default.

Defined at line 624 of file ../../zircon/kernel/vm/page_source.cc

void MultiPageRequest ()

Defined at line 630 of file ../../zircon/kernel/vm/include/vm/page_source.h

void MultiPageRequest (bool early_wake)

Defined at line 631 of file ../../zircon/kernel/vm/include/vm/page_source.h

void CancelRequests ()

Cancel all requests and have no active request.

Defined at line 636 of file ../../zircon/kernel/vm/page_source.cc

AnonymousPageRequest * GetAnonymous ()

Retrieve the anonymous page request. The caller may or may not arm the AnonymousPageRequest, if

it does the anonymous request becomes considered active and no other request may be retrieved.

Defined at line 638 of file ../../zircon/kernel/vm/include/vm/page_source.h

PageRequest * GetReadRequest ()

Retrieve and commit to initializing the page request for read. After calling this it is assumed

that the page request will be made waitable and no other request may be retrieved.

Defined at line 645 of file ../../zircon/kernel/vm/include/vm/page_source.h

LazyPageRequest * GetLazyDirtyRequest ()

Retrieve a lazy accessor to page request. If a dirty request is generated the caller must

then call MadeDirtyRequest so that this helper knows that the page request is active and

should be waited on.

Defined at line 654 of file ../../zircon/kernel/vm/include/vm/page_source.h

void MadeDirtyRequest ()

Indicate that the page request retrieved by GetLazyDirtyRequest was used and should be waited

on.

Defined at line 661 of file ../../zircon/kernel/vm/include/vm/page_source.h