48 lines
1.2 KiB
Markdown
48 lines
1.2 KiB
Markdown
# PR_PopIOLayer
|
|
|
|
Removes a layer from the stack.
|
|
|
|
## Syntax
|
|
|
|
```{code}
|
|
#include <prio.h>
|
|
|
|
PRFileDesc *PR_PopIOLayer(
|
|
PRFileDesc *stack,
|
|
PRDescIdentity id);
|
|
```
|
|
|
|
### Parameters
|
|
|
|
The function has the following parameters:
|
|
|
|
`stack`
|
|
|
|
: A pointer to a {ref}`PRFileDesc` object representing the stack from
|
|
which the specified layer is to be removed.
|
|
|
|
`id`
|
|
|
|
: Identity of the layer to be removed from the stack.
|
|
|
|
### Returns
|
|
|
|
The function returns one of the following values:
|
|
|
|
- If the layer is successfully removed from the stack, a pointer to the
|
|
removed layer.
|
|
- If the layer is not found in the stack or cannot be popped (for
|
|
example, the bottommost layer), the function returns `NULL` with
|
|
the error code `PR_INVALID_ARGUMENT_ERROR`.
|
|
|
|
## Description
|
|
|
|
{ref}`PR_PopIOLayer` pops the specified layer from the stack. If the object
|
|
to be removed is found, {ref}`PR_PopIOLayer` returns a pointer to the
|
|
removed object The object then becomes the responsibility of the caller.
|
|
|
|
Even if the identity indicates the top layer of the stack, the reference
|
|
returned is not the file descriptor for the stack and that file
|
|
descriptor remains valid. In other words, `stack` continues to point
|
|
to the top of the stack after the function returns.
|