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:
cl349@firebug.cl.cam.ac.uk committed 2005-03-09 00:48:41 +00:00
commit a247c266ef
7 files changed
+1824 -18

No files matched your search

+2
View File
@@ -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 -6
View File
@@ -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)
+19 -5
View File
@@ -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
+1 -1
View File
@@ -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
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.