imgact_aout.c (1e1e0b44635dd1f8946929ef8a136ca65afb170a) imgact_aout.c (68940ac1a05aed6f6ec47c8540a640f3eab17f79)
1/*
2 * Copyright (c) 1993, David Greenman
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

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

23 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
25 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
28 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29 * SUCH DAMAGE.
30 *
1/*
2 * Copyright (c) 1993, David Greenman
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

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

23 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
25 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
28 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29 * SUCH DAMAGE.
30 *
31 * $Id: imgact_aout.c,v 1.9 1994/09/25 19:33:31 phk Exp $
31 * $Id: imgact_aout.c,v 1.10 1995/02/14 19:22:27 sos Exp $
32 */
33
34#include <sys/param.h>
35#include <sys/systm.h>
36#include <sys/resourcevar.h>
37#include <sys/exec.h>
38#include <sys/mman.h>
39#include <sys/imgact.h>

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

165 a_out->a_data,
166 VM_PROT_READ | VM_PROT_WRITE | (a_out->a_text ? 0 : VM_PROT_EXECUTE),
167 VM_PROT_ALL, MAP_PRIVATE | MAP_FIXED,
168 (caddr_t) iparams->vnodep,
169 file_offset + a_out->a_text);
170 if (error)
171 return (error);
172
32 */
33
34#include <sys/param.h>
35#include <sys/systm.h>
36#include <sys/resourcevar.h>
37#include <sys/exec.h>
38#include <sys/mman.h>
39#include <sys/imgact.h>

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

165 a_out->a_data,
166 VM_PROT_READ | VM_PROT_WRITE | (a_out->a_text ? 0 : VM_PROT_EXECUTE),
167 VM_PROT_ALL, MAP_PRIVATE | MAP_FIXED,
168 (caddr_t) iparams->vnodep,
169 file_offset + a_out->a_text);
170 if (error)
171 return (error);
172
173 /*
174 * Allocate demand-zeroed area for uninitialized data
175 * "bss" = 'block started by symbol' - named after the IBM 7090
176 * instruction of the same name.
177 */
178 vmaddr = virtual_offset + a_out->a_text + a_out->a_data;
179 error = vm_allocate(&vmspace->vm_map, &vmaddr, bss_size, FALSE);
180 if (error)
181 return (error);
173 if (bss_size != 0) {
174 /*
175 * Allocate demand-zeroed area for uninitialized data
176 * "bss" = 'block started by symbol' - named after the IBM 7090
177 * instruction of the same name.
178 */
179 vmaddr = virtual_offset + a_out->a_text + a_out->a_data;
180 error = vm_map_find(&vmspace->vm_map, NULL, 0, &vmaddr, bss_size, FALSE);
181 if (error)
182 return (error);
183 }
182
183 /* Fill in process VM information */
184 vmspace->vm_tsize = a_out->a_text >> PAGE_SHIFT;
185 vmspace->vm_dsize = (a_out->a_data + bss_size) >> PAGE_SHIFT;
186 vmspace->vm_taddr = (caddr_t) virtual_offset;
187 vmspace->vm_daddr = (caddr_t) virtual_offset + a_out->a_text;
188
189 /* Fill in image_params */

--- 15 unchanged lines hidden ---
184
185 /* Fill in process VM information */
186 vmspace->vm_tsize = a_out->a_text >> PAGE_SHIFT;
187 vmspace->vm_dsize = (a_out->a_data + bss_size) >> PAGE_SHIFT;
188 vmspace->vm_taddr = (caddr_t) virtual_offset;
189 vmspace->vm_daddr = (caddr_t) virtual_offset + a_out->a_text;
190
191 /* Fill in image_params */

--- 15 unchanged lines hidden ---