With r205496 in place we should ensure that nargs and nreturns are always

set to sane values as they no longer default to 0, otherwise some OFW
implementation might copy in or out arguments not based on what the actual
function takes but what ever stack garbage nargs and nreturns supply.

Reviewed by:	nwhitehorn
This commit is contained in:
Marius Strobl 2010-04-02 21:48:27 +00:00
parent b011449011
commit bd7e69e4c5
2 changed files with 12 additions and 0 deletions

View File

@ -589,6 +589,7 @@ ofw_std_close(ofw_t ofw, ihandle_t instance)
} args = {
(cell_t)"close",
1,
0,
};
args.instance = instance;
@ -717,6 +718,7 @@ ofw_std_release(ofw_t ofw, void *virt, size_t size)
} args = {
(cell_t)"release",
2,
0,
};
args.virt = (cell_t)virt;
@ -738,6 +740,8 @@ ofw_std_enter(ofw_t ofw)
cell_t nreturns;
} args = {
(cell_t)"enter",
0,
0,
};
openfirmware(&args);
@ -754,6 +758,8 @@ ofw_std_exit(ofw_t ofw)
cell_t nreturns;
} args = {
(cell_t)"exit",
0,
0,
};
openfirmware(&args);

View File

@ -737,6 +737,7 @@ ofw_real_close(ofw_t ofw, ihandle_t instance)
} args = {
(cell_t)"close",
1,
0,
};
args.instance = instance;
@ -876,6 +877,7 @@ ofw_real_release(ofw_t ofw, void *virt, size_t size)
} args = {
(cell_t)"release",
2,
0,
};
args.virt = (cell_t)virt;
@ -897,6 +899,8 @@ ofw_real_enter(ofw_t ofw)
cell_t nreturns;
} args = {
(cell_t)"enter",
0,
0,
};
openfirmware(&args);
@ -913,6 +917,8 @@ ofw_real_exit(ofw_t ofw)
cell_t nreturns;
} args = {
(cell_t)"exit",
0,
0,
};
openfirmware(&args);