/* Upon allocation, all the space are in the tail room of the buffer. Call this function to move some space to the header room. This function is quite limited in that it can only reserve space from the first block of an empty NET_BUF not built from the external. But it should be enough for the network stack. */
VOID EFIAPI NetbufReserve(IN OUT NET_BUF *Nbuf, IN UINT32 Len)
/* Upon allocation, all the space are in the tail room of the buffer. Call this function to move some space to the header room. This function is quite limited in that it can only reserve space from the first block of an empty NET_BUF not built from the external. But it should be enough for the network stack. */
VOID EFIAPI NetbufReserve(IN OUT NET_BUF *Nbuf, IN UINT32 Len)
{
  NET_CHECK_SIGNATURE (Nbuf, NET_BUF_SIGNATURE);
  NET_CHECK_SIGNATURE (Nbuf->Vector, NET_VECTOR_SIGNATURE);
  ASSERT ((Nbuf->BlockOpNum == 1) && (Nbuf->TotalSize == 0));
  ASSERT ((Nbuf->Vector->Free == NULL) && (Nbuf->Vector->Len >= Len));
  Nbuf->BlockOp[0].Head += Len;
  Nbuf->BlockOp[0].Tail += Len;
  ASSERT (Nbuf->BlockOp[0].Tail <= Nbuf->BlockOp[0].BlockTail);
}