mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 18:50:05 +01:00
bitkeeper revision 1.1236.12.14 (422e47e9xlByLicbmgGE7DC-Dy4qJg)
Merge firebug.cl.cam.ac.uk:/auto/groups/xeno-xenod/BK/xen-2.0-testing.bk into firebug.cl.cam.ac.uk:/local/scratch/cl349/netbsd/xen-unstable.bk
This commit is contained in:
commit
a247c266ef
7 files changed
+1824
-18
No files matched your search
@@ -311,6 +311,8 @@
|
||||
413cb3b5rIKB3TbyhK3pbNyVkYysqA netbsd-2.0-xen-sparse/sys/arch/xen/xen/xen_debug.c
|
||||
413cb3b5eKxnzoodEqaWn2wrPnHWnA netbsd-2.0-xen-sparse/sys/arch/xen/xen/xencons.c
|
||||
413cb3b5F56TvQWAmO5TsuzhtzLFPQ netbsd-2.0-xen-sparse/sys/arch/xen/xen/xenkbc.c
|
||||
422e4430vKaHLOOGS7X-SUUe3EBCgw netbsd-2.0-xen-sparse/sys/miscfs/kernfs/kernfs.h
|
||||
422e4430-gOD358H8nGGnNWes08Nng netbsd-2.0-xen-sparse/sys/miscfs/kernfs/kernfs_vnops.c
|
||||
413cb3b53nyOv1OIeDSsCXhBFDXvJA netbsd-2.0-xen-sparse/sys/nfs/files.nfs
|
||||
413aa1d0oNP8HXLvfPuMe6cSroUfSA patches/linux-2.6.10/agpgart.patch
|
||||
3f776bd1Hy9rn69ntXBhPReUFw9IEA tools/Makefile
|
||||
|
||||
@@ -7,18 +7,19 @@
|
||||
TOPDIR ?= $(shell pwd)
|
||||
NETBSD_RELEASE ?= $(patsubst netbsd-%-xen%,%,$(notdir $(TOPDIR)))
|
||||
NETBSD_VER ?= $(patsubst netbsd-%-xen%,%,$(notdir $(TOPDIR)))
|
||||
NETBSD_KERNEL ?= XEN
|
||||
|
||||
clean:
|
||||
@mkdir -p compile/XEN
|
||||
cd compile/XEN && TOPDIR=$(TOPDIR) NETBSD_VER=$(NETBSD_VER) ../../nbmake-xen cleandir
|
||||
@mkdir -p compile/$(NETBSD_KERNEL)
|
||||
cd compile/$(NETBSD_KERNEL) && TOPDIR=$(TOPDIR) NETBSD_VER=$(NETBSD_VER) ../../nbmake-xen cleandir
|
||||
|
||||
config:
|
||||
@mkdir -p compile/XEN
|
||||
cd compile/XEN && TOPDIR=$(TOPDIR) NETBSD_VER=$(NETBSD_VER) ../../nbconfig-xen XEN
|
||||
@mkdir -p compile/$(NETBSD_KERNEL)
|
||||
cd compile/$(NETBSD_KERNEL) && TOPDIR=$(TOPDIR) NETBSD_VER=$(NETBSD_VER) ../../nbconfig-xen $(NETBSD_KERNEL)
|
||||
|
||||
netbsd:
|
||||
cd compile/XEN && TOPDIR=$(TOPDIR) NETBSD_VER=$(NETBSD_VER) ../../nbmake-xen dependall
|
||||
cd compile/$(NETBSD_KERNEL) && TOPDIR=$(TOPDIR) NETBSD_VER=$(NETBSD_VER) ../../nbmake-xen dependall
|
||||
|
||||
install:
|
||||
@mkdir -p $(dir $(INSTALL_PATH)/$(INSTALL_NAME))
|
||||
install -c compile/XEN/netbsd $(INSTALL_PATH)/$(INSTALL_NAME)
|
||||
install -c compile/$(NETBSD_KERNEL)/netbsd $(INSTALL_PATH)/$(INSTALL_NAME)
|
||||
@@ -85,6 +85,9 @@ popd >/dev/null
|
||||
# Get absolute path to the source directory
|
||||
AS=`pwd`
|
||||
|
||||
# Get name of sparse directory
|
||||
SDN=$(basename $AS)
|
||||
|
||||
# Get path to source, relative to destination
|
||||
abs_to_rel ${AD} ${AS}
|
||||
RS=$DESTPATH
|
||||
@@ -96,12 +99,23 @@ for i in `find . -type f -o -type l` ; do rm -f ${AD}/${i#./} ; done
|
||||
cd ${AD}
|
||||
|
||||
# Remove old symlinks
|
||||
for i in `find . -type l`; do rm -f $i; done
|
||||
|
||||
# Create symlinks of files and directories which exist in the sparse source
|
||||
relative_lndir ${RS}
|
||||
rm -f mkbuildtree
|
||||
find sys -type l | while read f
|
||||
do
|
||||
case $(readlink $f) in
|
||||
*/$SDN/*)
|
||||
rm -f $f
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ -f ${AD}/BUILDING ]; then
|
||||
# Create symlinks of files and directories which exist in the sparse source
|
||||
(cd sys && relative_lndir ../${RS}/sys)
|
||||
else
|
||||
# Create symlinks of files and directories which exist in the sparse source
|
||||
relative_lndir ${RS}
|
||||
rm -f mkbuildtree
|
||||
fi
|
||||
|
||||
# Create links to the shared definitions of the Xen interface
|
||||
rm -rf ${AD}/sys/arch/xen/include/xen-public
|
||||
|
||||
@@ -153,7 +153,7 @@ include "arch/xen/conf/GENERIC.local"
|
||||
pseudo-device ccd 4 # concatenated/striped disk devices
|
||||
#pseudo-device cgd 4 # cryptographic disk devices
|
||||
#pseudo-device md 1 # memory disk device (ramdisk)
|
||||
#pseudo-device vnd 4 # disk-like interface to files
|
||||
pseudo-device vnd 4 # disk-like interface to files
|
||||
|
||||
pseudo-device bpfilter 8 # Berkeley packet filter
|
||||
pseudo-device ipfilter # IP filter (firewall) and NAT
|
||||
|
||||
@@ -52,7 +52,6 @@ __KERNEL_RCSID(0, "$NetBSD: hypervisor.c,v 1.7.2.1 2004/05/22 15:58:54 he Exp $"
|
||||
#include <machine/hypervisor.h>
|
||||
#include <machine/evtchn.h>
|
||||
|
||||
#ifdef DOM0OPS
|
||||
#include <sys/dirent.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/tree.h>
|
||||
@@ -60,7 +59,6 @@ __KERNEL_RCSID(0, "$NetBSD: hypervisor.c,v 1.7.2.1 2004/05/22 15:58:54 he Exp $"
|
||||
#include <miscfs/specfs/specdev.h>
|
||||
#include <miscfs/kernfs/kernfs.h>
|
||||
#include <machine/kernfs_machdep.h>
|
||||
#endif
|
||||
|
||||
#if NXENNET > 0
|
||||
#include <net/if.h>
|
||||
@@ -187,9 +185,9 @@ hypervisor_attach(parent, self, aux)
|
||||
hac.hac_xennpx.xa_device = "npx";
|
||||
config_found(self, &hac.hac_xennpx, hypervisor_print);
|
||||
#endif
|
||||
xenkernfs_init();
|
||||
#ifdef DOM0OPS
|
||||
if (xen_start_info.flags & SIF_PRIVILEGED) {
|
||||
xenkernfs_init();
|
||||
xenprivcmd_init();
|
||||
xenmachmem_init();
|
||||
xenvfr_init();
|
||||
@@ -222,8 +220,7 @@ hypervisor_notify_via_evtchn(unsigned int port)
|
||||
(void)HYPERVISOR_event_channel_op(&op);
|
||||
}
|
||||
|
||||
#ifdef DOM0OPS
|
||||
|
||||
#define READ_MODE (S_IRUSR|S_IRGRP|S_IROTH)
|
||||
#define DIR_MODE (S_IRUSR|S_IXUSR|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH)
|
||||
|
||||
kernfs_parentdir_t *kernxen_pkt;
|
||||
@@ -237,5 +234,9 @@ xenkernfs_init()
|
||||
KERNFS_INITENTRY(dkt, DT_DIR, "xen", NULL, KFSsubdir, VDIR, DIR_MODE);
|
||||
kernfs_addentry(NULL, dkt);
|
||||
kernxen_pkt = KERNFS_ENTOPARENTDIR(dkt);
|
||||
|
||||
KERNFS_ALLOCENTRY(dkt, M_TEMP, M_WAITOK);
|
||||
KERNFS_INITENTRY(dkt, DT_REG, "cmdline", xen_start_info.cmd_line,
|
||||
KFSstring, VREG, READ_MODE);
|
||||
kernfs_addentry(kernxen_pkt, dkt);
|
||||
}
|
||||
#endif
|
||||
@@ -0,0 +1,205 @@
|
||||
/* $NetBSD: kernfs.h,v 1.20.2.3 2004/05/23 10:46:05 tron Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1992, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* This code is derived from software donated to Berkeley by
|
||||
* Jan-Simon Pendry.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)kernfs.h 8.6 (Berkeley) 3/29/95
|
||||
*/
|
||||
|
||||
#define _PATH_KERNFS "/kern" /* Default mountpoint */
|
||||
|
||||
#ifdef _KERNEL
|
||||
#include <sys/queue.h>
|
||||
|
||||
/*
|
||||
* The different types of node in a kernfs filesystem
|
||||
*/
|
||||
typedef enum {
|
||||
KFSkern, /* the filesystem itself (.) */
|
||||
KFSroot, /* the filesystem root (..) */
|
||||
KFSnull, /* none aplicable */
|
||||
KFStime, /* boottime */
|
||||
KFSint, /* integer */
|
||||
KFSstring, /* string */
|
||||
KFShostname, /* hostname */
|
||||
KFSavenrun, /* loadavg */
|
||||
KFSdevice, /* device file (rootdev/rrootdev) */
|
||||
KFSmsgbuf, /* msgbuf */
|
||||
KFSipsecsadir, /* ipsec security association (top dir) */
|
||||
KFSipsecspdir, /* ipsec security policy (top dir) */
|
||||
KFSipsecsa, /* ipsec security association entry */
|
||||
KFSipsecsp, /* ipsec security policy entry */
|
||||
KFSsubdir, /* directory */
|
||||
KFSlasttype, /* last used type */
|
||||
KFSmaxtype = (1<<6) - 1 /* last possible type */
|
||||
} kfstype;
|
||||
|
||||
/*
|
||||
* Control data for the kern file system.
|
||||
*/
|
||||
struct kern_target {
|
||||
u_char kt_type;
|
||||
u_char kt_namlen;
|
||||
const char *kt_name;
|
||||
void *kt_data;
|
||||
kfstype kt_tag;
|
||||
u_char kt_vtype;
|
||||
mode_t kt_mode;
|
||||
};
|
||||
|
||||
struct dyn_kern_target {
|
||||
struct kern_target dkt_kt;
|
||||
SIMPLEQ_ENTRY(dyn_kern_target) dkt_queue;
|
||||
};
|
||||
|
||||
struct kernfs_subdir {
|
||||
SIMPLEQ_HEAD(,dyn_kern_target) ks_entries;
|
||||
unsigned int ks_nentries;
|
||||
unsigned int ks_dirs;
|
||||
const struct kern_target *ks_parent;
|
||||
};
|
||||
|
||||
struct kernfs_node {
|
||||
LIST_ENTRY(kernfs_node) kfs_hash; /* hash chain */
|
||||
TAILQ_ENTRY(kernfs_node) kfs_list; /* flat list */
|
||||
struct vnode *kfs_vnode; /* vnode associated with this pfsnode */
|
||||
kfstype kfs_type; /* type of procfs node */
|
||||
mode_t kfs_mode; /* mode bits for stat() */
|
||||
long kfs_fileno; /* unique file id */
|
||||
u_int32_t kfs_value; /* SA id or SP id (KFSint) */
|
||||
const struct kern_target *kfs_kt;
|
||||
void *kfs_v; /* pointer to secasvar/secpolicy/mbuf */
|
||||
long kfs_cookie; /* fileno cookie */
|
||||
};
|
||||
|
||||
struct kernfs_mount {
|
||||
TAILQ_HEAD(, kernfs_node) nodelist;
|
||||
long fileno_cookie;
|
||||
};
|
||||
|
||||
#define UIO_MX 32
|
||||
|
||||
#define KERNFS_FILENO(kt, typ, cookie) \
|
||||
((kt >= &kern_targets[0] && kt < &kern_targets[static_nkern_targets]) \
|
||||
? 2 + ((kt) - &kern_targets[0]) \
|
||||
: (((cookie + 1) << 6) | (typ)))
|
||||
#define KERNFS_TYPE_FILENO(typ, cookie) \
|
||||
(((cookie + 1) << 6) | (typ))
|
||||
|
||||
#define VFSTOKERNFS(mp) ((struct kernfs_mount *)((mp)->mnt_data))
|
||||
#define VTOKERN(vp) ((struct kernfs_node *)(vp)->v_data)
|
||||
#define KERNFSTOV(kfs) ((kfs)->kfs_vnode)
|
||||
|
||||
extern const struct kern_target kern_targets[];
|
||||
extern int nkern_targets;
|
||||
extern const int static_nkern_targets;
|
||||
extern int (**kernfs_vnodeop_p) __P((void *));
|
||||
extern struct vfsops kernfs_vfsops;
|
||||
extern dev_t rrootdev;
|
||||
|
||||
struct secasvar;
|
||||
struct secpolicy;
|
||||
|
||||
int kernfs_root __P((struct mount *, struct vnode **));
|
||||
|
||||
void kernfs_hashinit __P((void));
|
||||
void kernfs_hashreinit __P((void));
|
||||
void kernfs_hashdone __P((void));
|
||||
int kernfs_freevp __P((struct vnode *));
|
||||
int kernfs_allocvp __P((struct mount *, struct vnode **, kfstype,
|
||||
const struct kern_target *, u_int32_t));
|
||||
|
||||
void kernfs_revoke_sa __P((struct secasvar *));
|
||||
void kernfs_revoke_sp __P((struct secpolicy *));
|
||||
|
||||
/*
|
||||
* Data types for the kernfs file operations.
|
||||
*/
|
||||
typedef enum {
|
||||
KERNFS_XREAD,
|
||||
KERNFS_XWRITE,
|
||||
KERNFS_FILEOP_CLOSE,
|
||||
KERNFS_FILEOP_GETATTR,
|
||||
KERNFS_FILEOP_IOCTL,
|
||||
KERNFS_FILEOP_MMAP,
|
||||
KERNFS_FILEOP_OPEN,
|
||||
KERNFS_FILEOP_READ,
|
||||
KERNFS_FILEOP_WRITE,
|
||||
} kfsfileop;
|
||||
|
||||
struct kernfs_fileop {
|
||||
kfstype kf_type;
|
||||
kfsfileop kf_fileop;
|
||||
union {
|
||||
void *_kf_genop;
|
||||
int (*_kf_vop)(void *);
|
||||
int (*_kf_xread)
|
||||
(const struct kernfs_node *, int, char **, size_t,
|
||||
size_t *);
|
||||
int (*_kf_xwrite)
|
||||
(const struct kernfs_node *, char *, size_t);
|
||||
} _kf_opfn;
|
||||
SPLAY_ENTRY(kernfs_fileop) kf_node;
|
||||
};
|
||||
#define kf_genop _kf_opfn
|
||||
#define kf_vop _kf_opfn._kf_vop
|
||||
#define kf_xwrite _kf_opfn._kf_xwrite
|
||||
#define kf_xread _kf_opfn._kf_xread
|
||||
|
||||
typedef struct kern_target kernfs_parentdir_t;
|
||||
typedef struct dyn_kern_target kernfs_entry_t;
|
||||
|
||||
/*
|
||||
* Functions for adding kernfs datatypes and nodes.
|
||||
*/
|
||||
kfstype kernfs_alloctype(int, const struct kernfs_fileop *);
|
||||
#define KERNFS_ALLOCTYPE(kf) kernfs_alloctype(sizeof((kf)) / \
|
||||
sizeof((kf)[0]), (kf))
|
||||
#define KERNFS_ALLOCENTRY(dkt, m_type, m_flags) \
|
||||
dkt = (struct dyn_kern_target *)malloc( \
|
||||
sizeof(struct dyn_kern_target), (m_type), (m_flags))
|
||||
#define KERNFS_INITENTRY(dkt, type, name, data, tag, vtype, mode) do { \
|
||||
(dkt)->dkt_kt.kt_type = (type); \
|
||||
(dkt)->dkt_kt.kt_namlen = strlen((name)); \
|
||||
(dkt)->dkt_kt.kt_name = (name); \
|
||||
(dkt)->dkt_kt.kt_data = (data); \
|
||||
(dkt)->dkt_kt.kt_tag = (tag); \
|
||||
(dkt)->dkt_kt.kt_vtype = (vtype); \
|
||||
(dkt)->dkt_kt.kt_mode = (mode); \
|
||||
} while (/*CONSTCOND*/0)
|
||||
#define KERNFS_ENTOPARENTDIR(dkt) &(dkt)->dkt_kt
|
||||
int kernfs_addentry __P((kernfs_parentdir_t *, kernfs_entry_t *));
|
||||
|
||||
#ifdef SYSCTL_SETUP_PROTO
|
||||
SYSCTL_SETUP_PROTO(sysctl_vfs_kernfs_setup);
|
||||
#endif /* SYSCTL_SETUP_PROTO */
|
||||
|
||||
#endif /* _KERNEL */
|
||||
File diff suppressed because it is too large.
Load diff