summaryrefslogtreecommitdiffstats
path: root/sys/dev/ofw
diff options
context:
space:
mode:
authornwhitehorn <nwhitehorn@FreeBSD.org>2010-07-08 14:29:23 +0000
committernwhitehorn <nwhitehorn@FreeBSD.org>2010-07-08 14:29:23 +0000
commitb85d8a68d9fa34d4f2fe1d4a3b1eb0091b2c9bc3 (patch)
tree9637f8ab7789c026052bf168ab51a2449044666b /sys/dev/ofw
parent6ce8619526c2226cb93af40b5da3586ae5cd9154 (diff)
downloadFreeBSD-src-b85d8a68d9fa34d4f2fe1d4a3b1eb0091b2c9bc3.zip
FreeBSD-src-b85d8a68d9fa34d4f2fe1d4a3b1eb0091b2c9bc3.tar.gz
Change the argument type to OF_call_method to take an array of cell_t
instead of unsigned longs to prepare for platforms where they are not the same.
Diffstat (limited to 'sys/dev/ofw')
-rw-r--r--sys/dev/ofw/ofw_if.m2
-rw-r--r--sys/dev/ofw/ofw_standard.c7
-rw-r--r--sys/dev/ofw/openfirm.c6
3 files changed, 7 insertions, 8 deletions
diff --git a/sys/dev/ofw/ofw_if.m b/sys/dev/ofw/ofw_if.m
index d896e00..eff85a2 100644
--- a/sys/dev/ofw/ofw_if.m
+++ b/sys/dev/ofw/ofw_if.m
@@ -229,7 +229,7 @@ METHOD int call_method {
int _nargs;
int _nreturns;
- unsigned long *_args_and_returns;
+ cell_t *_args_and_returns;
};
/**
diff --git a/sys/dev/ofw/ofw_standard.c b/sys/dev/ofw/ofw_standard.c
index 5845bf3..e3f8bcc 100644
--- a/sys/dev/ofw/ofw_standard.c
+++ b/sys/dev/ofw/ofw_standard.c
@@ -95,7 +95,7 @@ static ssize_t ofw_std_package_to_path(ofw_t ofw, phandle_t package, char *buf,
size_t len);
static int ofw_std_call_method(ofw_t ofw, ihandle_t instance,
const char *method, int nargs, int nreturns,
- unsigned long *args_and_returns);
+ cell_t *args_and_returns);
static ihandle_t ofw_std_open(ofw_t ofw, const char *device);
static void ofw_std_close(ofw_t ofw, ihandle_t instance);
static ssize_t ofw_std_read(ofw_t ofw, ihandle_t instance, void *addr,
@@ -515,7 +515,7 @@ ofw_std_package_to_path(ofw_t ofw, phandle_t package, char *buf, size_t len)
/* Call the method in the scope of a given instance. */
static int
ofw_std_call_method(ofw_t ofw, ihandle_t instance, const char *method,
- int nargs, int nreturns, unsigned long *args_and_returns)
+ int nargs, int nreturns, cell_t *args_and_returns)
{
struct {
cell_t name;
@@ -529,8 +529,7 @@ ofw_std_call_method(ofw_t ofw, ihandle_t instance, const char *method,
2,
1,
};
- cell_t *cp;
- unsigned long *ap;
+ cell_t *cp, *ap;
int n;
if (nargs > 6)
diff --git a/sys/dev/ofw/openfirm.c b/sys/dev/ofw/openfirm.c
index 414b402..241ce8a63 100644
--- a/sys/dev/ofw/openfirm.c
+++ b/sys/dev/ofw/openfirm.c
@@ -328,14 +328,14 @@ OF_call_method(const char *method, ihandle_t instance, int nargs, int nreturns,
...)
{
va_list ap;
- unsigned long args_n_results[12];
+ cell_t args_n_results[12];
int n, status;
if (nargs > 6)
return (-1);
va_start(ap, nreturns);
for (n = 0; n < nargs; n++)
- args_n_results[n] = va_arg(ap, unsigned long);
+ args_n_results[n] = va_arg(ap, cell_t);
status = OFW_CALL_METHOD(ofw_obj, instance, method, nargs, nreturns,
args_n_results);
@@ -343,7 +343,7 @@ OF_call_method(const char *method, ihandle_t instance, int nargs, int nreturns,
return (status);
for (; n < nargs + nreturns; n++)
- *va_arg(ap, unsigned long *) = args_n_results[n];
+ *va_arg(ap, cell_t *) = args_n_results[n];
va_end(ap);
return (0);
}
OpenPOWER on IntegriCloud