diff options
author | mv143129 <none@none> | 2006-05-15 17:14:12 -0700 |
---|---|---|
committer | mv143129 <none@none> | 2006-05-15 17:14:12 -0700 |
commit | 531232457f24de82ba95346b3de302b990fe50f4 (patch) | |
tree | a77b313bd71adac97d429701514829d82b89f5c5 /usr/src/lib/efcode | |
parent | 9e5275af6cf0ea025cdb5c3f5a77bd7fce318e28 (diff) | |
download | illumos-joyent-531232457f24de82ba95346b3de302b990fe50f4.tar.gz |
6403912 px: WARNING: px0: px_ib_intr_dist_en: timeout
Diffstat (limited to 'usr/src/lib/efcode')
-rw-r--r-- | usr/src/lib/efcode/jupiter/jupiter.c | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/usr/src/lib/efcode/jupiter/jupiter.c b/usr/src/lib/efcode/jupiter/jupiter.c index 2fc159bc20..821a24656a 100644 --- a/usr/src/lib/efcode/jupiter/jupiter.c +++ b/usr/src/lib/efcode/jupiter/jupiter.c @@ -370,14 +370,28 @@ do_get_intrp_name(fcode_env_t *env) static void do_master_interrupt(fcode_env_t *env) { - int portid; - token_t xt; + private_data_t *pdp = DEVICE_PRIVATE(env); + char *service = "master-interrupt"; + int portid; + token_t xt; + int error; + fc_cell_t status; - CHECK_DEPTH(env, 2, "jupiter:master-interrput"); + CHECK_DEPTH(env, 2, "jupiter:master-interrupt"); portid = POP(DS); xt = POP(DS); + /* + * Install the master interrupt handler for this port id. + */ + error = fc_run_priv(pdp->common, service, 2, 1, + fc_uint32_t2cell(portid), fc_uint32_t2cell(xt), &status); + + if (error || !status) + throw_from_fclib(env, 1, "jupiter:%s: failed\n", service); + PUSH(DS, FALSE); + debug_msg(DEBUG_REG_ACCESS, "jupiter:master-interrupt ( %x %x ) -> %x\n", portid, xt, (int)FALSE); |