MCPcopy Create free account
hub / github.com/F-Stack/f-stack / pipe_free_kmem

Function pipe_free_kmem

freebsd/kern/sys_pipe.c:1595–1616  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1593}
1594
1595static void
1596pipe_free_kmem(struct pipe *cpipe)
1597{
1598
1599 KASSERT(!mtx_owned(PIPE_MTX(cpipe)),
1600 ("pipe_free_kmem: pipe mutex locked"));
1601
1602 if (cpipe->pipe_buffer.buffer != NULL) {
1603 atomic_subtract_long(&amountpipekva, cpipe->pipe_buffer.size);
1604 vm_map_remove(pipe_map,
1605 (vm_offset_t)cpipe->pipe_buffer.buffer,
1606 (vm_offset_t)cpipe->pipe_buffer.buffer + cpipe->pipe_buffer.size);
1607 cpipe->pipe_buffer.buffer = NULL;
1608 }
1609#ifndef PIPE_NODIRECT
1610 {
1611 cpipe->pipe_pages.cnt = 0;
1612 cpipe->pipe_pages.pos = 0;
1613 cpipe->pipe_pages.npages = 0;
1614 }
1615#endif
1616}
1617
1618/*
1619 * shutdown the pipe

Callers 3

pipe_paircreateFunction · 0.85
pipespace_newFunction · 0.85
pipecloseFunction · 0.85

Calls 2

atomic_subtract_longFunction · 0.85
vm_map_removeFunction · 0.85

Tested by

no test coverage detected