Deleted Added
full compact
mem.c (133035) mem.c (133129)
1/*-
2 * Copyright (c) 1988 University of Utah.
3 * Copyright (c) 1982, 1986, 1990 The Regents of the University of California.
4 * All rights reserved.
5 *
6 * This code is derived from software contributed to Berkeley by
7 * the Systems Programming Group of the University of Utah Computer
8 * Science Department, and code derived from software contributed to

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

32 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
33 * SUCH DAMAGE.
34 *
35 * from: Utah $Hdr: mem.c 1.13 89/10/08$
36 * from: @(#)mem.c 7.2 (Berkeley) 5/9/91
37 */
38
39#include <sys/cdefs.h>
1/*-
2 * Copyright (c) 1988 University of Utah.
3 * Copyright (c) 1982, 1986, 1990 The Regents of the University of California.
4 * All rights reserved.
5 *
6 * This code is derived from software contributed to Berkeley by
7 * the Systems Programming Group of the University of Utah Computer
8 * Science Department, and code derived from software contributed to

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

32 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
33 * SUCH DAMAGE.
34 *
35 * from: Utah $Hdr: mem.c 1.13 89/10/08$
36 * from: @(#)mem.c 7.2 (Berkeley) 5/9/91
37 */
38
39#include <sys/cdefs.h>
40__FBSDID("$FreeBSD: head/sys/amd64/amd64/mem.c 133035 2004-08-02 20:36:47Z markm $");
40__FBSDID("$FreeBSD: head/sys/amd64/amd64/mem.c 133129 2004-08-04 18:30:31Z markm $");
41
42/*
43 * Memory special file
44 */
45
46#include <sys/param.h>
47#include <sys/conf.h>
48#include <sys/fcntl.h>

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

66#include <vm/vm_extern.h>
67
68#include <machine/memdev.h>
69
70/*
71 * Used in /dev/mem drivers and elsewhere
72 */
73MALLOC_DEFINE(M_MEMDESC, "memdesc", "memory range descriptors");
41
42/*
43 * Memory special file
44 */
45
46#include <sys/param.h>
47#include <sys/conf.h>
48#include <sys/fcntl.h>

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

66#include <vm/vm_extern.h>
67
68#include <machine/memdev.h>
69
70/*
71 * Used in /dev/mem drivers and elsewhere
72 */
73MALLOC_DEFINE(M_MEMDESC, "memdesc", "memory range descriptors");
74struct mem_range_softc mem_range_softc;
75
74
76void
77mem_range_AP_init(void)
78{
79 if (mem_range_softc.mr_op && mem_range_softc.mr_op->initAP)
80 mem_range_softc.mr_op->initAP(&mem_range_softc);
81}
82
83/* ARGSUSED */
84int
85memrw(struct cdev *dev, struct uio *uio, int flags)
86{
87 int o;
88 u_long c = 0, v;
89 struct iovec *iov;
90 int error = 0;

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

218 if (error == 0)
219 error = mem_range_attr_set(md, &mo->mo_arg[0]);
220 free(md, M_MEMDESC);
221 break;
222 }
223 return (error);
224}
225
75/* ARGSUSED */
76int
77memrw(struct cdev *dev, struct uio *uio, int flags)
78{
79 int o;
80 u_long c = 0, v;
81 struct iovec *iov;
82 int error = 0;

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

210 if (error == 0)
211 error = mem_range_attr_set(md, &mo->mo_arg[0]);
212 free(md, M_MEMDESC);
213 break;
214 }
215 return (error);
216}
217
226/*
227 * Implementation-neutral, kernel-callable functions for manipulating
228 * memory range attributes.
229 */
230int
231mem_range_attr_get(struct mem_range_desc *mrd, int *arg)
232{
233 /* can we handle this? */
234 if (mem_range_softc.mr_op == NULL)
235 return (EOPNOTSUPP);
236
237 if (*arg == 0)
238 *arg = mem_range_softc.mr_ndesc;
239 else
240 bcopy(mem_range_softc.mr_desc, mrd,
241 (*arg) * sizeof(struct mem_range_desc));
242 return (0);
243}
244
245int
246mem_range_attr_set(struct mem_range_desc *mrd, int *arg)
247{
248 /* can we handle this? */
249 if (mem_range_softc.mr_op == NULL)
250 return (EOPNOTSUPP);
251
252 return (mem_range_softc.mr_op->set(&mem_range_softc, mrd, arg));
253}
254
255void
256dev_mem_md_init(void)
257{
258 if (mem_range_softc.mr_op != NULL)
259 mem_range_softc.mr_op->init(&mem_range_softc);
260}
218void
219dev_mem_md_init(void)
220{
221 if (mem_range_softc.mr_op != NULL)
222 mem_range_softc.mr_op->init(&mem_range_softc);
223}