summaryrefslogtreecommitdiff
path: root/usr/src/lib/efcode
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/lib/efcode')
-rw-r--r--usr/src/lib/efcode/Makefile17
-rw-r--r--usr/src/lib/efcode/engine/package.c11
-rw-r--r--usr/src/lib/efcode/jupiter/Makefile28
-rw-r--r--usr/src/lib/efcode/jupiter/Makefile.com34
-rw-r--r--usr/src/lib/efcode/jupiter/jupiter.c437
-rw-r--r--usr/src/lib/efcode/jupiter/sparcv9/Makefile33
-rw-r--r--usr/src/lib/efcode/packages/memalloc.c25
7 files changed, 557 insertions, 28 deletions
diff --git a/usr/src/lib/efcode/Makefile b/usr/src/lib/efcode/Makefile
index 4806e7a9bc..660a81d0e2 100644
--- a/usr/src/lib/efcode/Makefile
+++ b/usr/src/lib/efcode/Makefile
@@ -2,9 +2,8 @@
# CDDL HEADER START
#
# The contents of this file are subject to the terms of the
-# Common Development and Distribution License, Version 1.0 only
-# (the "License"). You may not use this file except in compliance
-# with the License.
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
#
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
# or http://www.opensolaris.org/os/licensing.
@@ -20,16 +19,16 @@
# CDDL HEADER END
#
#
-# Copyright 2004 Sun Microsystems, Inc. All rights reserved.
+# Copyright 2006 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
-#
-# ident "%Z%%M% %I% %E% SMI"
+#ident "%Z%%M% %I% %E% SMI"
#
include ../Makefile.lib
-SUBDIRS = engine fcdriver extend packages pci gp2 upa interpreter efdaemon
+SUBDIRS = engine fcdriver extend packages pci gp2 upa interpreter efdaemon \
+ jupiter
TESTDIRS = fcode_test
EFCODEDIRS= $(ROOTLIBDIR)/efcode $(ROOTLIBDIR)/efcode/$(MACH64)
@@ -62,10 +61,10 @@ FRC:
# Interdependencies between shared objects follow.
#
-extend fcdriver packages pci gp2 upa interpreter efdaemon: engine
+extend fcdriver packages pci gp2 upa interpreter efdaemon jupiter: engine
fcdriver: packages
-gp2 pci interpreter: fcdriver
+gp2 pci interpreter jupiter: fcdriver
interpreter: packages extend
diff --git a/usr/src/lib/efcode/engine/package.c b/usr/src/lib/efcode/engine/package.c
index b32773f45d..be241d01ac 100644
--- a/usr/src/lib/efcode/engine/package.c
+++ b/usr/src/lib/efcode/engine/package.c
@@ -2,9 +2,8 @@
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License"). You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
@@ -20,8 +19,8 @@
* CDDL HEADER END
*/
/*
- * Copyright (c) 2000 by Sun Microsystems, Inc.
- * All rights reserved.
+ * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
*/
#pragma ident "%Z%%M% %I% %E% SMI"
@@ -461,6 +460,8 @@ dollar_open_package(fcode_env_t *env)
if (ok) {
open_package(env);
} else {
+ (void) POP(DS);
+ (void) POP(DS);
PUSH(DS, 0);
}
}
diff --git a/usr/src/lib/efcode/jupiter/Makefile b/usr/src/lib/efcode/jupiter/Makefile
new file mode 100644
index 0000000000..2cb77e4732
--- /dev/null
+++ b/usr/src/lib/efcode/jupiter/Makefile
@@ -0,0 +1,28 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#
+# Copyright 2006 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+# ident "%Z%%M% %I% %E% SMI"
+#
+
+include ../Makefile.subdirs
diff --git a/usr/src/lib/efcode/jupiter/Makefile.com b/usr/src/lib/efcode/jupiter/Makefile.com
new file mode 100644
index 0000000000..4e005dd494
--- /dev/null
+++ b/usr/src/lib/efcode/jupiter/Makefile.com
@@ -0,0 +1,34 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#
+# Copyright 2006 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+# ident "%Z%%M% %I% %E% SMI"
+#
+
+OBJECTS = jupiter.o
+LIBRARY = lfc_jupiter.a
+SYMLINKS = lfc_jupiter_jupiter.so
+
+include ../../Makefile.efcode
+
+CPPFLAGS += -I$(SRC)/uts/sun4 -I$(SRC)/uts/sun4u
diff --git a/usr/src/lib/efcode/jupiter/jupiter.c b/usr/src/lib/efcode/jupiter/jupiter.c
new file mode 100644
index 0000000000..2fc159bc20
--- /dev/null
+++ b/usr/src/lib/efcode/jupiter/jupiter.c
@@ -0,0 +1,437 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#pragma ident "%Z%%M% %I% %E% SMI"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <strings.h>
+
+#include <fcode/private.h>
+#include <fcode/log.h>
+
+#include <fcdriver/fcdriver.h>
+
+#include <sys/opl_cfg.h>
+
+/* VA for HardWare Descriptor */
+static hwd_cmu_chan_t hwd_va_cmu;
+static hwd_leaf_t hwd_va_pci;
+
+/* Macro to get I/O portid */
+#define DO_GET_IO_PORTID(env, lo, hi, portid) \
+ PUSH(DS, lo); \
+ PUSH(DS, hi); \
+ do_get_io_portid(env); \
+ portid = (uint32_t)POP(DS)
+
+fstack_t
+mem_map_in(fcode_env_t *env, fstack_t hi, fstack_t lo, fstack_t len)
+{
+ private_data_t *pdp = DEVICE_PRIVATE(env);
+ fc_cell_t virt;
+ fstack_t mcookie = NULL;
+ char *service = "map-in";
+ int error;
+ int offset = 0;
+
+ /*
+ * The calculation of the offset, lo and len are left here
+ * due to historical precedence.
+ */
+
+ offset = lo & PAGEOFFSET;
+ lo &= PAGEMASK;
+ len = (len + offset + PAGEOFFSET) & PAGEMASK;
+
+ error = fc_run_priv(pdp->common, service, 3, 1, fc_size2cell(len),
+ fc_uint32_t2cell(hi), fc_uint32_t2cell(lo), &virt);
+
+ if (error)
+ throw_from_fclib(env, 1, "jupiter:%s: failed\n", service);
+
+ mcookie = mapping_to_mcookie(virt, len, NULL, NULL);
+
+ if (mcookie == NULL)
+ throw_from_fclib(env, 1,
+ "jupiter:%s: mapping_to_mcookie failed\n", service);
+
+ mcookie += offset;
+
+ debug_msg(DEBUG_REG_ACCESS, "jupiter:%s: %llx -> %x\n", service,
+ (long long)virt, (uint32_t)mcookie);
+
+ return (mcookie);
+}
+
+static void
+mem_map_out(fcode_env_t *env, fstack_t mcookie, fstack_t len)
+{
+ private_data_t *pdp = DEVICE_PRIVATE(env);
+ fc_cell_t virt;
+ char *service = "map-out";
+ int error;
+ int offset;
+
+ /*
+ * The calculation of the offset, lo and len are left here
+ * due to historical precedence.
+ */
+
+ offset = mcookie & PAGEOFFSET;
+ mcookie &= PAGEMASK;
+ len = (len + offset + PAGEOFFSET) & PAGEMASK;
+
+ if (!is_mcookie(mcookie)) {
+ log_message(MSG_ERROR, "jupiter:%s: %x not an mcookie!\n",
+ service, (int)mcookie);
+ virt = mcookie;
+ } else {
+ virt = mcookie_to_addr(mcookie);
+ debug_msg(DEBUG_REG_ACCESS, "jupiter:%s: %x -> %llx\n",
+ service, (int)mcookie, (long long)virt);
+ delete_mapping(mcookie);
+ }
+
+ error = fc_run_priv(pdp->common, service, 2, 0,
+ fc_size2cell(len), virt);
+ if (error)
+ log_message(MSG_ERROR, "jupiter:%s: failed\n", service);
+}
+
+static void
+do_map_in(fcode_env_t *env)
+{
+ fstack_t phi, plo, len, addr;
+
+ CHECK_DEPTH(env, 3, "jupiter:map-in");
+ len = POP(DS);
+ phi = POP(DS);
+ plo = POP(DS);
+ addr = mem_map_in(env, phi, plo, len);
+ PUSH(DS, addr);
+}
+
+static void
+do_map_out(fcode_env_t *env)
+{
+ fstack_t addr, len;
+
+ CHECK_DEPTH(env, 2, "jupiter:map-out");
+ len = POP(DS);
+ addr = POP(DS);
+ mem_map_out(env, addr, len);
+}
+
+static void
+do_get_io_portid(fcode_env_t *env)
+{
+ fstack_t phi, plo;
+ unsigned int portid, lsb, ch, leaf;
+
+ CHECK_DEPTH(env, 2, "jupiter:get-portid");
+
+ phi = POP(DS);
+ plo = POP(DS);
+
+ lsb = OPL_ADDR_TO_LSB(phi);
+ ch = OPL_ADDR_TO_CHANNEL(phi);
+ leaf = OPL_ADDR_TO_LEAF(phi, plo);
+
+ portid = OPL_IO_PORTID(lsb, ch, leaf);
+
+ debug_msg(DEBUG_REG_ACCESS, "jupiter:get-portid ( %x %x ) -> %x\n",
+ (int)phi, (int)plo, (int)portid);
+ PUSH(DS, portid);
+}
+
+static void
+do_encode_unit(fcode_env_t *env)
+{
+ char enc_buf[64];
+ fstack_t hi, lo;
+ uint32_t id;
+ long long off;
+
+ CHECK_DEPTH(env, 2, "jupiter:encode-unit");
+
+ hi = POP(DS);
+ lo = POP(DS);
+ off = (long long)(((hi & 0x1F) << 32) | lo);
+
+ /* Convert physical address to portid */
+ DO_GET_IO_PORTID(env, lo, hi, id);
+
+ if (off) {
+ (void) sprintf(enc_buf, "%x,%llx", id, off);
+ } else {
+ (void) sprintf(enc_buf, "%x", id);
+ }
+
+ debug_msg(DEBUG_REG_ACCESS, "jupiter:encode_unit ( %x %x ) -> '%s'\n",
+ (uint32_t)hi, (uint32_t)lo, enc_buf);
+
+ push_a_string(env, STRDUP(enc_buf));
+}
+
+static void
+do_decode_unit(fcode_env_t *env)
+{
+ uint32_t hi;
+ long long lo;
+ unsigned int portid, lsb, ch;
+ char *buf;
+
+ CHECK_DEPTH(env, 2, "jupiter:decode-unit");
+
+ buf = pop_a_string(env, NULL);
+ if (sscanf(buf, "%x,%llx", &portid, &lo) != 2) {
+ if (sscanf(buf, "%x", &portid) != 1) {
+ throw_from_fclib(env, 1, "jupiter:decode_unit:%s",
+ buf);
+ }
+ lo = 0;
+ }
+
+ lsb = OPL_IO_PORTID_TO_LSB(portid);
+ ch = OPL_PORTID_TO_CHANNEL(portid);
+ hi = OPL_ADDR_HI(lsb, ch);
+
+ debug_msg(DEBUG_REG_ACCESS,
+ "jupiter:decode_unit ( '%s' ) -> %x %llx\n", buf, hi, lo);
+
+ PUSH(DS, (fstack_t)lo);
+ PUSH(DS, (fstack_t)hi);
+}
+
+static void
+do_device_id(fcode_env_t *env)
+{
+ common_data_t *cdp = COMMON_PRIVATE(env);
+ char *buf = NULL;
+ uint32_t hi;
+ long long lo;
+ uint32_t portid, ch, leaf;
+
+ CHECK_DEPTH(env, 2, "jupiter:device-id");
+
+ hi = POP(DS);
+ lo = POP(DS);
+
+ portid = 0;
+ if (cdp && cdp->fc.unit_address &&
+ ((buf = strdup(cdp->fc.unit_address)) != NULL)) {
+ /*
+ * Get portid number from unit_address
+ * Because of no leaf information in physical address
+ */
+ if (sscanf(buf, "%x,%llx", &portid, &lo) != 2) {
+ if (sscanf(buf, "%x", &portid) != 1) {
+ throw_from_fclib(env, 1,
+ "jupiter:do_device_id: invalid %s", buf);
+ }
+ }
+ } else {
+ /*
+ * Non existence unit_address case.
+ * Convert physical address to portid.
+ */
+ throw_from_fclib(env, 1,
+ "jupiter:do_device_id: failed unit address");
+ DO_GET_IO_PORTID(env, lo, hi, portid);
+ }
+
+ debug_msg(DEBUG_FIND_FCODE,
+ "jupiter:do_device_id:(%x,%llx)\n", portid, lo);
+
+ /* Pick up each ID from portid */
+ ch = OPL_PORTID_TO_CHANNEL(portid);
+ leaf = OPL_PORTID_TO_LEAF(portid);
+
+ if (ch == OPL_CMU_CHANNEL) {
+ /*
+ * CMU-CH: PCICMU CHANNEL
+ */
+ debug_msg(DEBUG_FIND_FCODE,
+ "jupiter:do_device_id:cmu-ch\n");
+ push_a_string(env, "cmu-ch");
+ } else if (OPL_OBERON_CHANNEL(ch) && OPL_VALID_LEAF(leaf)) {
+ /*
+ * PCI-CH: Oberon Leaves CHANNEL
+ */
+ if (leaf) {
+ /* Leaf B */
+ debug_msg(DEBUG_FIND_FCODE,
+ "jupiter:do_device_id:jup-oberon-pci1\n");
+ push_a_string(env, "jup-oberon-pci1");
+ } else {
+ /* Leaf A */
+ debug_msg(DEBUG_FIND_FCODE,
+ "jupiter:do_device_id:jup-oberon-pci0\n");
+ push_a_string(env, "jup-oberon-pci0");
+ }
+ } else {
+ /* Not matched to any channels */
+ throw_from_fclib(env, 1,
+ "jupiter:do_device_id: invalid portid %x", portid);
+ push_a_string(env, "");
+ }
+
+ /* Free the duplicated buf */
+ if (buf != NULL)
+ free(buf);
+}
+
+static void
+do_get_hwd_va(fcode_env_t *env)
+{
+ private_data_t *pdp = DEVICE_PRIVATE(env);
+ char *service = "get-hwd-va";
+ char *buf;
+ uint32_t portid = 0;
+ int ch;
+ int error;
+ fc_cell_t status;
+ void *hwd_va;
+
+ CHECK_DEPTH(env, 2, "jupiter:get-hwd-va");
+
+ /* Get a portid with string format */
+ buf = pop_a_string(env, NULL);
+
+ /* Convert to the integer from the string */
+ if (sscanf(buf, "%x", &portid) != 1) {
+ throw_from_fclib(env, 1, "jupiter:%s: invalid portid",
+ service);
+ }
+
+ ch = OPL_PORTID_TO_CHANNEL(portid);
+ if (!OPL_VALID_CHANNEL(ch)) {
+ throw_from_fclib(env, 1, "jupiter:%s: invalid poritd",
+ service);
+ hwd_va = 0;
+ goto out;
+ }
+
+ if (ch == OPL_CMU_CHANNEL) {
+ hwd_va = (void *)&hwd_va_cmu;
+ } else {
+ hwd_va = (void *)&hwd_va_pci;
+ }
+
+ /*
+ * Get the virtual address of hwd specified with portid.
+ */
+ error = fc_run_priv(pdp->common, service, 2, 1,
+ fc_uint32_t2cell(portid), fc_ptr2cell(hwd_va), &status);
+
+ if (error || !status)
+ throw_from_fclib(env, 1, "jupiter:%s: failed\n", service);
+
+out:
+ PUSH(DS, (fstack_t)hwd_va);
+}
+
+static void
+do_get_intrp_name(fcode_env_t *env)
+{
+ /*
+ * Just pass the "eFCode" string.
+ */
+
+ debug_msg(DEBUG_FIND_FCODE,
+ "jupiter: do_get_intrp_name: eFCode\n");
+
+ push_a_string(env, "eFCode");
+}
+
+static void
+do_master_interrupt(fcode_env_t *env)
+{
+ int portid;
+ token_t xt;
+
+ CHECK_DEPTH(env, 2, "jupiter:master-interrput");
+ portid = POP(DS);
+ xt = POP(DS);
+
+ PUSH(DS, FALSE);
+ debug_msg(DEBUG_REG_ACCESS,
+ "jupiter:master-interrupt ( %x %x ) -> %x\n",
+ portid, xt, (int)FALSE);
+}
+
+static void
+do_register_vector_entry(fcode_env_t *env)
+{
+ int ign, ino, level;
+
+ CHECK_DEPTH(env, 3, "jupiter:register-vector-entry");
+ ign = POP(DS);
+ ino = POP(DS);
+ level = POP(DS);
+
+ PUSH(DS, FALSE);
+ debug_msg(DEBUG_REG_ACCESS,
+ "jupiter:register-vector-entry ( %x %x %x ) -> %x\n",
+ ign, ino, level, (int)FALSE);
+}
+
+static void
+do_get_interrupt_target(fcode_env_t *env)
+{
+ int mid = -1;
+
+ PUSH(DS, mid);
+ debug_msg(DEBUG_REG_ACCESS,
+ "jupiter:get-interrupt-target ( ) -> %x\n", mid);
+}
+
+
+#pragma init(_init)
+
+static void
+_init(void)
+{
+ fcode_env_t *env = initial_env;
+
+ ASSERT(env);
+ ASSERT(env->current_device);
+ NOTICE;
+
+ create_int_prop(env, "#address-cells", 2);
+
+ FORTH(0, "map-in", do_map_in);
+ FORTH(0, "map-out", do_map_out);
+ FORTH(0, "get-portid", do_get_io_portid);
+ FORTH(0, "decode-unit", do_decode_unit);
+ FORTH(0, "encode-unit", do_encode_unit);
+ FORTH(0, "device-id", do_device_id);
+ FORTH(0, "get-hwd-va", do_get_hwd_va);
+ FORTH(0, "get-fcinterp-name", do_get_intrp_name);
+ FORTH(0, "master-interrupt", do_master_interrupt);
+ FORTH(0, "register-vector-entry", do_register_vector_entry);
+ FORTH(0, "get-interrupt-target", do_get_interrupt_target);
+}
diff --git a/usr/src/lib/efcode/jupiter/sparcv9/Makefile b/usr/src/lib/efcode/jupiter/sparcv9/Makefile
new file mode 100644
index 0000000000..99913538b5
--- /dev/null
+++ b/usr/src/lib/efcode/jupiter/sparcv9/Makefile
@@ -0,0 +1,33 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#
+# Copyright 2006 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+# ident "%Z%%M% %I% %E% SMI"
+#
+
+include ../Makefile.com
+include $(SRC)/lib/Makefile.lib.64
+
+DYNFLAGS += $(FCODE64) $(FCDRIVER64)
+
+install: all $(ROOTLIBS64) $(ROOTSYMLINKS64)
diff --git a/usr/src/lib/efcode/packages/memalloc.c b/usr/src/lib/efcode/packages/memalloc.c
index 3bb4a928ff..5e8d365d17 100644
--- a/usr/src/lib/efcode/packages/memalloc.c
+++ b/usr/src/lib/efcode/packages/memalloc.c
@@ -2,9 +2,8 @@
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License"). You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
@@ -20,7 +19,7 @@
* CDDL HEADER END
*/
/*
- * Copyright 1999-2003 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -35,11 +34,9 @@
#include <fcdriver/fcdriver.h>
-static void schizo_vtop(fcode_env_t *, fc_cell_t, fstack_t *, fstack_t *);
-
/*
- * claim under /openprom/client-services is only used by schizo Fcode, we
- * call "schizo,claim-memory" service.
+ * claim under /openprom/client-services is used by schizo and oberon Fcode, we
+ * call "claim-memory" service.
*/
void
claim(fcode_env_t *env)
@@ -50,11 +47,11 @@ claim(fcode_env_t *env)
fc_cell_t vaddr;
int error;
- CHECK_DEPTH(env, 3, "schizo,claim-memory");
+ CHECK_DEPTH(env, 3, "claim-memory");
hint = (void *)POP(DS);
size = POP(DS);
align = POP(DS);
- error = fc_run_priv(env->private, "schizo,claim-memory", 3, 1,
+ error = fc_run_priv(env->private, "claim-memory", 3, 1,
fc_int2cell(align), fc_size2cell(size), fc_ptr2cell(hint), &vaddr);
if (error)
throw_from_fclib(env, 1, "client-services/claim failed\n");
@@ -69,10 +66,10 @@ release(fcode_env_t *env)
void *addr;
int error;
- CHECK_DEPTH(env, 2, "schizo,release-memory");
+ CHECK_DEPTH(env, 2, "release-memory");
addr = (void *)POP(DS);
size = POP(DS);
- error = fc_run_priv(env->private, "schizo,release-memory", 2, 0,
+ error = fc_run_priv(env->private, "release-memory", 2, 0,
fc_size2cell(size), fc_ptr2cell(addr));
if (error)
throw_from_fclib(env, 1, "client-services/release failed\n");
@@ -86,9 +83,9 @@ fc_vtop(fcode_env_t *env)
fc_cell_t physlo, physhi;
int error;
- CHECK_DEPTH(env, 1, "schizo,vtop");
+ CHECK_DEPTH(env, 1, "vtop");
vaddr = (void *)POP(DS);
- error = fc_run_priv(env->private, "schizo,vtop", 1, 2,
+ error = fc_run_priv(env->private, "vtop", 1, 2,
fc_ptr2cell(vaddr), &physlo, &physhi);
if (error)
throw_from_fclib(env, 1, "fc_vtop: '>physical' failed\n");