summaryrefslogtreecommitdiffstats
path: root/sys/ia64/ia64
diff options
context:
space:
mode:
authormarcel <marcel@FreeBSD.org>2012-08-18 22:59:06 +0000
committermarcel <marcel@FreeBSD.org>2012-08-18 22:59:06 +0000
commit12f7f0563e109a9981ad4cb41bfd3e227e4fe036 (patch)
treedceefb44462be712e1d3fc8b47b8f2082ab49c49 /sys/ia64/ia64
parent5028d10ff9fc400816f6b6c53f1231a377de2fe9 (diff)
downloadFreeBSD-src-12f7f0563e109a9981ad4cb41bfd3e227e4fe036.zip
FreeBSD-src-12f7f0563e109a9981ad4cb41bfd3e227e4fe036.tar.gz
Remove support for SKI: HP's Itanium simulator. It's pretty much not
used, serves very little value given that FreeBSD runs on real H/W for a long time. Note that SKI is open-source (see http://ski.sourceforge.net), so if there's interest and value again, then this code can be revived. Discussed with: jhb
Diffstat (limited to 'sys/ia64/ia64')
-rw-r--r--sys/ia64/ia64/ssc.c192
-rw-r--r--sys/ia64/ia64/sscdisk.c203
2 files changed, 0 insertions, 395 deletions
diff --git a/sys/ia64/ia64/ssc.c b/sys/ia64/ia64/ssc.c
deleted file mode 100644
index 95a6165..0000000
--- a/sys/ia64/ia64/ssc.c
+++ /dev/null
@@ -1,192 +0,0 @@
-/*-
- * Copyright (c) 2000 Doug Rabson
- * All rights reserved.
- *
- * 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
- *
- * $FreeBSD$
- */
-#include <sys/param.h>
-#include <sys/bus.h>
-#include <sys/conf.h>
-#include <sys/cons.h>
-#include <sys/kernel.h>
-#include <sys/lock.h>
-#include <sys/module.h>
-#include <sys/mutex.h>
-#include <sys/priv.h>
-#include <sys/proc.h>
-#include <sys/systm.h>
-#include <sys/tty.h>
-#include <machine/md_var.h>
-
-#include <vm/vm.h>
-#include <vm/vm_param.h>
-#include <vm/vm_kern.h>
-#include <vm/vm_page.h>
-#include <vm/vm_map.h>
-#include <vm/vm_object.h>
-#include <vm/vm_extern.h>
-#include <vm/vm_pageout.h>
-#include <vm/vm_pager.h>
-
-#define SSC_GETCHAR 21
-#define SSC_PUTCHAR 31
-
-#define SSC_POLL_HZ 50
-
-static tsw_open_t ssc_open;
-static tsw_outwakeup_t ssc_outwakeup;
-static tsw_close_t ssc_close;
-
-static struct ttydevsw ssc_class = {
- .tsw_flags = TF_NOPREFIX,
- .tsw_open = ssc_open,
- .tsw_outwakeup = ssc_outwakeup,
- .tsw_close = ssc_close,
-};
-
-static int polltime;
-static struct callout_handle ssc_timeouthandle
- = CALLOUT_HANDLE_INITIALIZER(&ssc_timeouthandle);
-
-static void ssc_timeout(void *);
-
-static u_int64_t
-ssc(u_int64_t in0, u_int64_t in1, u_int64_t in2, u_int64_t in3, int which)
-{
- register u_int64_t ret0 __asm("r8");
-
- __asm __volatile("mov r15=%1\n\t"
- "break 0x80001"
- : "=r"(ret0)
- : "r"(which), "r"(in0), "r"(in1), "r"(in2), "r"(in3));
- return ret0;
-}
-
-static void
-ssc_cnprobe(struct consdev *cp)
-{
-
- strcpy(cp->cn_name, "ssccons");
- cp->cn_pri = CN_INTERNAL;
-}
-
-static void
-ssc_cninit(struct consdev *cp)
-{
-}
-
-static void
-ssc_cnterm(struct consdev *cp)
-{
-}
-
-static void
-ssc_cngrab(struct consdev *cp)
-{
-}
-
-static void
-ssc_cnungrab(struct consdev *cp)
-{
-}
-
-static void
-ssc_cnattach(void *arg)
-{
- struct tty *tp;
-
- tp = tty_alloc(&ssc_class, NULL);
- tty_makedev(tp, NULL, "ssccons");
-}
-
-SYSINIT(ssc_cnattach, SI_SUB_DRIVERS, SI_ORDER_ANY, ssc_cnattach, 0);
-
-static void
-ssc_cnputc(struct consdev *cp, int c)
-{
- ssc(c, 0, 0, 0, SSC_PUTCHAR);
-}
-
-static int
-ssc_cngetc(struct consdev *cp)
-{
- int c;
- c = ssc(0, 0, 0, 0, SSC_GETCHAR);
- if (!c)
- return -1;
- return c;
-}
-
-static int
-ssc_open(struct tty *tp)
-{
-
- polltime = hz / SSC_POLL_HZ;
- if (polltime < 1)
- polltime = 1;
- ssc_timeouthandle = timeout(ssc_timeout, tp, polltime);
-
- return (0);
-}
-
-static void
-ssc_close(struct tty *tp)
-{
-
- untimeout(ssc_timeout, tp, ssc_timeouthandle);
-}
-
-static void
-ssc_outwakeup(struct tty *tp)
-{
- char buf[128];
- size_t len, c;
-
- for (;;) {
- len = ttydisc_getc(tp, buf, sizeof buf);
- if (len == 0)
- break;
-
- c = 0;
- while (len-- > 0)
- ssc_cnputc(NULL, buf[c++]);
- }
-}
-
-static void
-ssc_timeout(void *v)
-{
- struct tty *tp = v;
- int c;
-
- tty_lock(tp);
- while ((c = ssc_cngetc(NULL)) != -1)
- ttydisc_rint(tp, c, 0);
- ttydisc_rint_done(tp);
- tty_unlock(tp);
-
- ssc_timeouthandle = timeout(ssc_timeout, tp, polltime);
-}
-
-CONSOLE_DRIVER(ssc);
diff --git a/sys/ia64/ia64/sscdisk.c b/sys/ia64/ia64/sscdisk.c
deleted file mode 100644
index 146be7f..0000000
--- a/sys/ia64/ia64/sscdisk.c
+++ /dev/null
@@ -1,203 +0,0 @@
-/*-
- * ----------------------------------------------------------------------------
- * "THE BEER-WARE LICENSE" (Revision 42):
- * <phk@FreeBSD.ORG> wrote this file. As long as you retain this notice you
- * can do whatever you want with this stuff. If we meet some day, and you think
- * this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp
- * ----------------------------------------------------------------------------
- *
- * $FreeBSD$
- *
- */
-
-#include "opt_md.h"
-#include "opt_ski.h"
-
-#include <sys/param.h>
-#include <sys/systm.h>
-#include <sys/bio.h>
-#include <sys/conf.h>
-#include <sys/kernel.h>
-#include <sys/linker.h>
-#include <sys/lock.h>
-#include <sys/malloc.h>
-#include <sys/mutex.h>
-#include <sys/queue.h>
-#include <sys/sysctl.h>
-#include <sys/proc.h>
-#include <vm/vm.h>
-#include <vm/vm_kern.h>
-#include <vm/vm_page.h>
-#include <vm/vm_map.h>
-#include <vm/vm_extern.h>
-#include <vm/vm_object.h>
-#include <vm/vm_pager.h>
-#include <machine/md_var.h>
-#include <geom/geom_disk.h>
-
-#ifndef SKI_ROOT_FILESYSTEM
-#define SKI_ROOT_FILESYSTEM "ia64-root.fs"
-#endif
-
-#define SSC_OPEN 50
-#define SSC_CLOSE 51
-#define SSC_READ 52
-#define SSC_WRITE 53
-#define SSC_GET_COMPLETION 54
-#define SSC_WAIT_COMPLETION 55
-
-struct disk_req {
- unsigned long addr;
- unsigned len;
-};
-
-struct disk_stat {
- int fd;
- unsigned count;
-};
-
-static u_int64_t
-ssc(u_int64_t in0, u_int64_t in1, u_int64_t in2, u_int64_t in3, int which)
-{
- register u_int64_t ret0 __asm("r8");
-
- __asm __volatile("mov r15=%1\n\t"
- "break 0x80001"
- : "=r"(ret0)
- : "r"(which), "r"(in0), "r"(in1), "r"(in2), "r"(in3));
- return ret0;
-}
-
-#ifndef SSC_NSECT
-#define SSC_NSECT 409600
-#endif
-
-static MALLOC_DEFINE(M_SSC, "ssc_disk", "Simulator Disk");
-
-static d_strategy_t sscstrategy;
-
-static LIST_HEAD(, ssc_s) ssc_softc_list = LIST_HEAD_INITIALIZER(ssc_softc_list);
-static struct mtx ssc_list_lock;
-MTX_SYSINIT(ssc_list, &ssc_list_lock, "ssc list", MTX_DEF);
-
-struct ssc_s {
- int unit;
- LIST_ENTRY(ssc_s) list;
- struct bio_queue_head bio_queue;
- struct disk *disk;
- struct mtx lock;
- int busy;
- int fd;
-};
-
-static int sscunits;
-
-static void
-sscstrategy(struct bio *bp)
-{
- struct ssc_s *sc;
- struct disk_req req;
- struct disk_stat stat;
- u_long len, va, off;
-
- sc = bp->bio_disk->d_drv1;
-
- mtx_lock(&sc->lock);
- bioq_disksort(&sc->bio_queue, bp);
-
- if (sc->busy) {
- mtx_unlock(&sc->lock);
- return;
- }
- sc->busy++;
-
- for (;;) {
- bp = bioq_takefirst(&sc->bio_queue);
- if (!bp)
- break;
-
- mtx_unlock(&sc->lock);
- va = (u_long) bp->bio_data;
- len = bp->bio_bcount;
- off = bp->bio_pblkno << DEV_BSHIFT;
- while (len > 0) {
- u_int t;
- if ((va & PAGE_MASK) + len > PAGE_SIZE)
- t = PAGE_SIZE - (va & PAGE_MASK);
- else
- t = len;
- req.len = t;
- req.addr = ia64_tpa(va);
- ssc(sc->fd, 1, ia64_tpa((long) &req), off,
- (bp->bio_cmd == BIO_READ) ? SSC_READ : SSC_WRITE);
- stat.fd = sc->fd;
- ssc(ia64_tpa((long)&stat), 0, 0, 0,
- SSC_WAIT_COMPLETION);
- va += t;
- len -= t;
- off += t;
- }
- bp->bio_resid = 0;
- biodone(bp);
- mtx_lock(&sc->lock);
- }
-
- sc->busy = 0;
- mtx_unlock(&sc->lock);
- return;
-}
-
-static struct ssc_s *
-ssccreate(int unit)
-{
- struct ssc_s *sc;
- int fd;
-
- fd = ssc(ia64_tpa((u_int64_t) SKI_ROOT_FILESYSTEM),
- 1, 0, 0, SSC_OPEN);
- if (fd == -1)
- return (NULL);
-
- sc = malloc(sizeof(*sc), M_SSC, M_WAITOK | M_ZERO);
-
- mtx_lock(&ssc_list_lock);
- if (unit == -1)
- unit = sscunits++;
- /* Make sure this unit isn't already in action */
- LIST_FOREACH(sc, &ssc_softc_list, list) {
- if (sc->unit == unit) {
- mtx_unlock(&ssc_list_lock);
- free(sc, M_SSC);
- return (NULL);
- }
- }
- LIST_INSERT_HEAD(&ssc_softc_list, sc, list);
- sc->unit = unit;
- mtx_unlock(&ssc_list_lock);
- bioq_init(&sc->bio_queue);
- mtx_init(&sc->lock, "ssc", NULL, MTX_DEF);
-
- sc->disk = disk_alloc();
- sc->disk->d_drv1 = sc;
- sc->disk->d_fwheads = 0;
- sc->disk->d_fwsectors = 0;
- sc->disk->d_maxsize = DFLTPHYS;
- sc->disk->d_mediasize = (off_t)SSC_NSECT * DEV_BSIZE;
- sc->disk->d_name = "sscdisk";
- sc->disk->d_sectorsize = DEV_BSIZE;
- sc->disk->d_strategy = sscstrategy;
- sc->disk->d_unit = sc->unit;
- disk_create(sc->disk, DISK_VERSION);
- sc->fd = fd;
- if (sc->unit == 0)
- rootdevnames[0] = "ufs:/dev/sscdisk0";
- return (sc);
-}
-
-static void
-ssc_drvinit(void *unused)
-{
- ssccreate(-1);
-}
-
-SYSINIT(sscdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE, ssc_drvinit,NULL);
OpenPOWER on IntegriCloud