Lines Matching refs:is

80 The state at the top means "nonexistent" and is hence unnamed on the diagram --
96 In the EfiSimpleNetworkStopped state, the virtio-net device is (has been)
99 is necessary for completing the VirtioNetDriverBindingStart transition).
101 The EfiSimpleNetworkStarted is completely identical to the
103 resource-usage sense. This state is mandated / provided by the Simple Network
106 In particular, the EfiSimpleNetworkStarted state is the target of the Shutdown
108 where "[it] is safe for another driver to initialize". (Clearly another UEFI
112 The EfiSimpleNetworkInitialized state is the live state of the virtio NIC / the
131 filter setting than requested is allowed by the UEFI specification).
144 Missing support for these functions is allowed by the UEFI specification and
154 locking / masking is important to implement critical sections (atomic or
155 exclusive access to data or a device). This notion is defined as Task Priority
163 with the Receive member function.) The event is available to clients starting
166 The virtio-net driver is informed about such client polling or blockage by
168 function the driver must interrogate the driver instance state, and if it is
175 This is the highest level allowed for an SNP implementation, and all code
179 The task priority level for the WaitForPacket callback too is set by the
180 driver, the choice is TPL_CALLBACK again. This in effect serializes the
187 firmware state and is about to pass control to the OS, any network driver has
189 reason EXIT_BOOT_SERVICES is emitted and the network driver must abort
192 This callback (VirtioNetExitBoot) is synchronized with the rest of the driver
195 transfer. After the callback returns, no further driver code is expected to
211 in the Virtio specification, the only driver-specific trait here is the static
213 diagram is simplified.
246 each packet, a slice of this area is dedicated; each slice is further
256 the Nth descriptor chain is set up as follows:
264 - a link from the first (head) descriptor in the chain is established to the
273 - The host consumes a descriptor index off the Available Ring. This index is
292 Used Ring is virtually random. (Except right after the initial population in
293 VirtioNetInitRx, when the Available Ring is full and increasing, and the Used
294 Ring is empty.)
296 - If the Available Ring is empty, the host is forced to drop packets. If the
297 Used Ring is empty, VirtioNetReceive returns EFI_NOT_READY (no packet
304 The transmission structure erected by VirtioNetInitTx is similar, it differs
307 - There is no Receive Destination Area.
310 that is shared by all of the head descriptors. This virtio-net request header
311 is never modified by the host.
313 - Each tail descriptor is re-pointed to the caller-supplied packet buffer
315 Available Ring. The caller is responsible to hang on to the unmodified buffer
316 until it is reported transmitted by VirtioNetGetStatus.
321 chains by keeping the indices of their head descriptors in a stack that is
324 - If the stack is empty (that is, each descriptor chain, in isolation, is
329 - Otherwise the index of a free chain's head descriptor is popped from the
330 stack. The linked tail descriptor is re-pointed as discussed above. The head
331 descriptor's index is pushed on the Available Ring.
336 - Client code calls VirtioNetGetStatus. In case the Used Ring is empty, the
337 function reports no Tx completion. Otherwise, a head descriptor's index is
339 code's original packet buffer address is fetched from the tail descriptor
343 - The Len field of the Used Ring Element is not checked. The host is assumed to
345 1514 bytes (inclusive). The Virtio specification suggests this packet size is
354 tracking) the order of head descriptor indices on either Ring is