Deleted Added
full compact
uipc_cow.c (112316) uipc_cow.c (112382)
1/*-
2 * Copyright (c) 1997, Duke University
3 * All rights reserved.
4 *
5 * Author:
6 * Andrew Gallatin <gallatin@cs.duke.edu>
7 *
8 * Redistribution and use in source and binary forms, with or without

--- 15 unchanged lines hidden (view full) ---

24 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITSOR BUSINESS
27 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
28 * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
29 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
30 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 *
1/*-
2 * Copyright (c) 1997, Duke University
3 * All rights reserved.
4 *
5 * Author:
6 * Andrew Gallatin <gallatin@cs.duke.edu>
7 *
8 * Redistribution and use in source and binary forms, with or without

--- 15 unchanged lines hidden (view full) ---

24 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITSOR BUSINESS
27 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
28 * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
29 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
30 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 *
32 * $FreeBSD: head/sys/kern/uipc_cow.c 112316 2003-03-16 07:19:12Z alc $
32 * $FreeBSD: head/sys/kern/uipc_cow.c 112382 2003-03-18 18:27:33Z gallatin $
33 */
34/*
35 * This is a set of routines for enabling and disabling copy on write
36 * protection for data written into sockets.
37 */
38
39#include <sys/param.h>
40#include <sys/systm.h>

--- 83 unchanged lines hidden (view full) ---

124 pa=pmap_extract(map->pmap, uva);
125 if(!pa) {
126 socow_stats.fail_not_mapped++;
127 splx(s);
128 return(0);
129 }
130 pp = PHYS_TO_VM_PAGE(pa);
131
33 */
34/*
35 * This is a set of routines for enabling and disabling copy on write
36 * protection for data written into sockets.
37 */
38
39#include <sys/param.h>
40#include <sys/systm.h>

--- 83 unchanged lines hidden (view full) ---

124 pa=pmap_extract(map->pmap, uva);
125 if(!pa) {
126 socow_stats.fail_not_mapped++;
127 splx(s);
128 return(0);
129 }
130 pp = PHYS_TO_VM_PAGE(pa);
131
132 sf = sf_buf_alloc();
133 sf->m = pp;
134 pmap_qenter(sf->kva, &pp, 1);
135
136 /*
137 * set up COW
138 */
139 vm_page_lock_queues();
140 vm_page_cowsetup(pp);
141
142 /*
143 * wire the page for I/O
144 */
145 vm_page_wire(pp);
146 vm_page_unlock_queues();
147
132 /*
133 * set up COW
134 */
135 vm_page_lock_queues();
136 vm_page_cowsetup(pp);
137
138 /*
139 * wire the page for I/O
140 */
141 vm_page_wire(pp);
142 vm_page_unlock_queues();
143
144 /*
145 * Allocate an sf buf
146 */
147 sf = sf_buf_alloc();
148 sf->m = pp;
149 pmap_qenter(sf->kva, &pp, 1);
150
148 /*
149 * attach to mbuf
150 */
151 m0->m_data = (caddr_t)sf->kva;
152 m0->m_len = PAGE_SIZE;
153 MEXTADD(m0, sf->kva, PAGE_SIZE, socow_iodone, sf, 0, EXT_SFBUF);
154 socow_stats.success++;
155

--- 13 unchanged lines hidden ---
151 /*
152 * attach to mbuf
153 */
154 m0->m_data = (caddr_t)sf->kva;
155 m0->m_len = PAGE_SIZE;
156 MEXTADD(m0, sf->kva, PAGE_SIZE, socow_iodone, sf, 0, EXT_SFBUF);
157 socow_stats.success++;
158

--- 13 unchanged lines hidden ---