/* Generated with C2C (Cedar To C)*/ /* Copyright (C) 1993 by Xerox Corporation. All rights reserved. */ /* time: January 28, 1993 4:06:48 pm PST */ /* C2C version: January 27, 1993 (sun4) */ /* ref-counting: off */ /* file: FinalizeOpsImpl, module: FinalizeOpsImpl */ /* switches: bcfhklnouw */ #include #include static char versionStamp[] = "@(#)mob_version [2596585603,1001728106] FinalizeOpsImpl"; typedef unsigned word, *ptr; typedef unsigned char byte, *bPt; typedef unsigned short half, *hPt; typedef word (*fPt)(); typedef struct {word f0, f1, f2, f3, f4;} W5; typedef struct {word f0, f1;} W2; #define SOURCE(p, l) /* source p, l */ static void NoName_Q1176(); static void FinalizeOpsImpl_P0(); static word IsCallQueue_P60(); static word NarrowCallQueue_P120(); static word IsFinalizeOpsHandle_P180(); static word EnableFinalization_P240(); static word ReenableFinalization_P300(); static word CreateCallQueue_P360(); static word HandleToObject_P420(); static word Forward_P600(); static word Fetch_P660(); static void CallQueueProcess_P720(); static word NoName_Q1236(); static void MainQueueProcess_P780(); static void NoName_Q1296(); static word NoName_Q1356(); static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\232\304\300\203\300\073\265\050\152\100\200\000\000"}; static struct {unsigned f; char r[4];} string2 = {196611, "\004A\200"}; static struct {unsigned f; char r[80];} string3 = {5111888, "\260\006\005\146\151\162\163\164\216\211\022\021\106\151\156\141\154\151\172\141\142\154\145\117\142\152\145\143\164\300\250\013\333\033\300\120\151\334\170\005\004\162\145\163\164\214\216\211\022\021\106\151\156\141\154\151\172\141\142\154\145\117\142\152\145\143\164\300\250\013\333\033\300\120\151\334\170\261\000"}; static struct {unsigned f; char r[4];} string4 = {131074, "\004\003\000"}; static struct {unsigned f; char r[16];} string5 = {851984, "\257\300\232\304\300\203\300\073\265\050\152\100\164\000\000"}; static struct {unsigned f; char r[4];} string6 = {196611, "\004C\000"}; static struct {unsigned f; char r[16];} string7 = {851984, "\257\300\250\013\333\033\300\120\151\334\170\100\150\000\000"}; static struct {unsigned f; char r[16];} string8 = {851984, "\257\300\240\236\274\315\300\111\163\325\023\100\150\000\000"}; static struct {unsigned f; char r[16];} string9 = {851984, "\257\300\157\176\027\244\300\037\074\133\137\100\150\000\000"}; static struct {unsigned f; char r[28];} string10 = {1638428, "\211\015\014\103\141\154\154\121\165\145\165\145\122\145\160\300\157\176\027\244\300\037\074\133\137\000\000"}; static struct { word f0[13]; word f13; word f14; word f15; word f16; word f17; word f18; word f19; word f20; word f21; word f22; word f23; word f24; word f25; word f26; word f27; word f28; word f29; word f30; word f31; word f32; word f33; word f34; word f35; word f36[4]; } globalframe = { {0}, (word) MainQueueProcess_P780, 0, (word) CallQueueProcess_P720, 0, (word) Fetch_P660, 0, (word) Forward_P600, 0, (word) HandleToObject_P420, 0, (word) CreateCallQueue_P360, 0, (word) ReenableFinalization_P300, 0, (word) EnableFinalization_P240, 0, (word) IsFinalizeOpsHandle_P180, 0, (word) NarrowCallQueue_P120, 0, (word) IsCallQueue_P60, 0, (word) FinalizeOpsImpl_P0, {0} }; static void NoName_Q1176() { register ptr gf_c074 = (ptr) &globalframe; word var_c8312; (* (( (ptr) gf_c074)+10) ) = (word) XR_GetTypeIndex((word) &string1, 0, (word) &string2); (* (( (ptr) gf_c074)+12) ) = (word) XR_GetTypeIndex((word) &string3, 0, (word) &string4); (void) XR_DeclareGlobalFrame((word) "FinalizeOpsImpl", &globalframe, (word) XR_GetTypeIndex((word) &string5, 0, (word) &string6) , (word) (( (bPt) gf_c074)+140)/* var_c7864 */ ); var_c8312 = (word) XR_ImportInterface((word) "Finalize", (word) XR_GetTypeIndexS((word) (&string7)), 14); (* (( (ptr) gf_c074)+37)/* var_c7896 */ ) = var_c8312; (void) XR_ImportProcS(var_c8312, 67374081); (void) XR_ImportProcS(var_c8312, 67373057); (void) XR_ImportProcS(var_c8312, 67634690); (void) XR_ImportProcS(var_c8312, 67896323); (void) XR_ImportProcS(var_c8312, 67373313); (void) XR_ImportProcS(var_c8312, 67111424); var_c8312 = (word) XR_ImportInterface((word) "Process", (word) XR_GetTypeIndexS((word) (&string8)), 22); (* (( (ptr) gf_c074)+38)/* var_c8184 */ ) = var_c8312; (void) XR_ImportProcS(var_c8312, 264449); (void) XR_ImportProcS(var_c8312, 526081); var_c8312 = (word) XR_ExportInterface((word) "FinalizeOps", (word) XR_GetTypeIndexS((word) (&string9)), 7); (* (( (ptr) gf_c074)+39)/* var_c8344 */ ) = var_c8312; (void) XR_ExportProcS(var_c8312, (word) (( (bPt) gf_c074)+116)/* var_c7768 */ , 67371009); (void) XR_ExportType((word) "CallQueueRep", (word) XR_GetTypeIndexS((word) (&string10)), (word) XR_GetTypeIndex((word) &string1, 0, (word) &string2) ); (void) XR_ExportProcS(var_c8312, (word) (( (bPt) gf_c074)+132)/* var_c7832 */ , 67371521); (void) XR_ExportProcS(var_c8312, (word) (( (bPt) gf_c074)+124)/* var_c7800 */ , 67371777); (void) XR_ExportProcS(var_c8312, (word) (( (bPt) gf_c074)+108)/* var_c7736 */ , 67634178); (void) XR_ExportProcS(var_c8312, (word) (( (bPt) gf_c074)+100)/* var_c7704 */ , 67372289); (void) XR_ExportProcS(var_c8312, (word) (( (bPt) gf_c074)+92)/* var_c7672 */ , 67634690); } static void FinalizeOpsImpl_P0(formal_c023, formal_c022) word formal_c023; word formal_c022; { register ptr gf_c8376 = (ptr) &globalframe; /* FinalizeOpsImpl: */ SOURCE(46, 2957) SOURCE(430, 49) { word pd11; pd11 = (* (( (ptr) (* (( (ptr) gf_c8376)+37)/* var_c7896 */ ))+14) ); (* (( (ptr) gf_c8376)+8)/* fq_v2664 */ ) = (word) ( *( (fPt) ((* (ptr) pd11 ))))(pd11); }; } static word IsCallQueue_P60(x_v3528) word x_v3528; { register ptr gf_c8408 = (ptr) &globalframe; word var_c3588; /* IsCallQueue: */ SOURCE(482, 83) SOURCE(535, 30) { word tc12; if ((x_v3528 == 0)) { tc12 = (word) 1; } else { tc12 = (word) ((* (( (ptr) gf_c8408)+10) ) == XR_GetReferentType(x_v3528)); }; return(tc12); }; } static word NarrowCallQueue_P120(x_v3648) word x_v3648; { register ptr gf_c8440 = (ptr) &globalframe; word var_c3704; /* NarrowCallQueue: */ SOURCE(568, 92) SOURCE(630, 30) return(XR_Narrow(x_v3648, (* (( (ptr) gf_c8440)+10) ))); } static word IsFinalizeOpsHandle_P180(handle_v3764) word handle_v3764; { register ptr gf_c8472 = (ptr) &globalframe; word var_c3808; /* IsFinalizeOpsHandle: */ SOURCE(663, 183) SOURCE(741, 105) { word var_c7960; { word pd13; pd13 = (* (( (ptr) (* (( (ptr) gf_c8472)+37)/* var_c7896 */ ))+13) ); var_c7960 = (word) ( *( (fPt) ((* (ptr) pd13 ))))(handle_v3764, pd13); }; if ((var_c7960 == 0)) { goto lab_L100000; }; if (((* (( (ptr) gf_c8472)+10) ) == XR_GetReferentType(var_c7960))) { { word cq_v5060; cq_v5060 = var_c7960; SOURCE(806, 13) return(1); }; } else { lab_L100000: ; SOURCE(832, 14) return(0); }; }; } static word EnableFinalization_P240(object_v3868, callQueue_v3896) word object_v3868; word callQueue_v3896; { register ptr gf_c8504 = (ptr) &globalframe; word handle_v3952; /* EnableFinalization: */ SOURCE(852, 168) SOURCE(852, 168) handle_v3952 = 0; SOURCE(961, 59) { word pd14; pd14 = (* (( (ptr) (* (( (ptr) gf_c8504)+37)/* var_c7896 */ ))+8) ); handle_v3952 = (word) ( *( (fPt) ((* (ptr) pd14 ))))(object_v3868, (* (( (ptr) gf_c8504)+8)/* fq_v2664 */ ), callQueue_v3896, pd14) ; }; SOURCE(852, 168) return(handle_v3952); } static word ReenableFinalization_P300(handle_v4012) word handle_v4012; { register ptr gf_c8536 = (ptr) &globalframe; word oldState_v4056; /* ReenableFinalization: */ SOURCE(1025, 219) SOURCE(1127, 117) { word var_c7992; { word pd15; pd15 = (* (( (ptr) (* (( (ptr) gf_c8536)+37)/* var_c7896 */ ))+13) ); var_c7992 = (word) ( *( (fPt) ((* (ptr) pd15 ))))(handle_v4012, pd15); }; if ((var_c7992 == 0)) { goto lab_L100001; }; if (((* (( (ptr) gf_c8536)+10) ) == XR_GetReferentType(var_c7992))) { { word cq_v5104; cq_v5104 = var_c7992; SOURCE(1192, 52) { word pd16; pd16 = (* (( (ptr) (* (( (ptr) gf_c8536)+37)/* var_c7896 */ ))+10) ); oldState_v4056 = (word) ( *( (fPt) ((* (ptr) pd16 ))))(handle_v4012, (* (( (ptr) gf_c8536)+8)/* fq_v2664 */ ), pd16); }; }; } else { lab_L100001: ; SOURCE(1257, 5) (void) XR_RaiseUnnamedError(); }; }; SOURCE(1025, 219) return(oldState_v4056); } static word CreateCallQueue_P360(finalize_v4116, priority_v4144) word finalize_v4116; word priority_v4144; { register ptr gf_c8568 = (ptr) &globalframe; word cq_v4188; /* CreateCallQueue: */ SOURCE(1267, 204) SOURCE(1267, 204) cq_v4188 = 0; SOURCE(1406, 65) { word var_c8024; var_c8024 = XR_NewObject(36, (* (( (ptr) gf_c8568)+10) )); (* (( (ptr) var_c8024)+4) ) = XR_CheckProc(finalize_v4116); (* (( (ptr) var_c8024)+5) ) = priority_v4144; cq_v4188 = var_c8024; }; SOURCE(1267, 204) return(cq_v4188); } static word HandleToObject_P420(handle_v4248) word handle_v4248; { register ptr gf_c8600 = (ptr) &globalframe; word object_v4292; /* HandleToObject: */ SOURCE(1477, 112) SOURCE(1477, 112) object_v4292 = 0; SOURCE(1548, 41) { word pd17; pd17 = (* (( (ptr) (* (( (ptr) gf_c8600)+37)/* var_c7896 */ ))+12) ); return((word) ( *( (fPt) ((* (ptr) pd17 ))))(handle_v4248, pd17)); }; } static word Forward_P600(cq_v4780, h_v4808) word cq_v4780; word h_v4808; { register ptr gf_c8632 = (ptr) &globalframe; word mustFork_v4852; word list_v5148; /* Forward: */ SOURCE(1904, 245) (void) (XR_MonitorEntry((word) (( (bPt) gf_c8632)+16)/* LOCK_v2524 */ )); SOURCE(1904, 245) mustFork_v4852 = 0; SOURCE(1988, 6) { word l_v7432; word h_v7464; h_v7464 = h_v4808; SOURCE(1734, 164) l_v7432 = 0; SOURCE(1808, 12) l_v7432 = (* (( (ptr) gf_c8632)+9)/* freeList_v2888 */ ); SOURCE(1822, 76) if ((l_v7432 == 0)) { SOURCE(1836, 17) { word var_c8120; word var_c8152; var_c8120 = XR_NewObject(8, (* (( (ptr) gf_c8632)+12) )); var_c8152 = var_c8120; (* (ptr) var_c8152 ) = h_v7464; l_v7432 = var_c8120; }; } else { SOURCE(1854, 17) (* (( (ptr) gf_c8632)+9)/* freeList_v2888 */ ) = (* (( (ptr) l_v7432)+1) ); SOURCE(1873, 11) (* (ptr) l_v7432 ) = h_v7464; SOURCE(1886, 12) (* (( (ptr) l_v7432)+1) ) = 0; }; SOURCE(1734, 164) list_v5148 = l_v7432; }; SOURCE(2023, 62) if (((* (( (ptr) cq_v4780)+7) ) == 0)) { SOURCE(2045, 21) (* (( (ptr) cq_v4780)+7) ) = list_v5148; } else { SOURCE(2066, 19) (* (( (ptr) (* (( (ptr) cq_v4780)+8) ))+1) ) = list_v5148; }; SOURCE(2087, 14) (* (( (ptr) cq_v4780)+8) ) = list_v5148; SOURCE(2103, 46) if ((0 == (* (( (ptr) cq_v4780)+6) ))) { SOURCE(2122, 27) mustFork_v4852 = 1; (* (( (ptr) cq_v4780)+6) ) = 1; }; SOURCE(1904, 245) (void) (XR_MonitorExit((word) (( (bPt) gf_c8632)+16)/* LOCK_v2524 */ )); return(mustFork_v4852); } static word Fetch_P660(cq_v4912) word cq_v4912; { register ptr gf_c8664 = (ptr) &globalframe; word h_v4956; word l_v5276; /* Fetch: */ SOURCE(2156, 180) (void) (XR_MonitorEntry((word) (( (bPt) gf_c8664)+16)/* LOCK_v2524 */ )); SOURCE(2156, 180) h_v4956 = 0; SOURCE(2220, 3) l_v5276 = (* (( (ptr) cq_v4912)+7) ); SOURCE(2250, 86) if ((l_v5276 != 0)) { SOURCE(2266, 11) h_v4956 = (* (ptr) l_v5276 ); SOURCE(2279, 17) (* (( (ptr) cq_v4912)+7) ) = (* (( (ptr) l_v5276)+1) ); SOURCE(2298, 14) { word l_v7384; l_v7384 = l_v5276; SOURCE(1683, 13) (* (ptr) l_v7384 ) = 0; SOURCE(1698, 17) (* (( (ptr) l_v7384)+1) ) = (* (( (ptr) gf_c8664)+9)/* freeList_v2888 */ ); SOURCE(1717, 13) (* (( (ptr) gf_c8664)+9)/* freeList_v2888 */ ) = l_v7384; }; } else { SOURCE(2319, 17) (* (( (ptr) cq_v4912)+6) ) = 0; }; SOURCE(2156, 180) (void) (XR_MonitorExit((word) (( (bPt) gf_c8664)+16)/* LOCK_v2524 */ )); return(h_v4956); } static void CallQueueProcess_P720(formal_c092) word formal_c092; { W5 var_c8696; /* declaration of cq_v5016 skipped */ register ptr gf_c8728 = (ptr) &globalframe; var_c8696.f4/* cq_v5016 */ = formal_c092; /* CallQueueProcess: */ SOURCE(2342, 194) SOURCE(2385, 32) { word pd18; pd18 = (* (( (ptr) (* (( (ptr) gf_c8728)+38)/* var_c8184 */ ))+13) ); (void) ( *( (fPt) ((* (ptr) pd18 ))))((* ((( (ptr) var_c8696.f4/* cq_v5016 */ )+5)) ), pd18); }; SOURCE(2419, 117) lab_L100005: ; SOURCE(2422, 114) { word var_c01; { word var_c089; var_c089 = (word) &var_c8696; var_c01 = (word) XR_Enable(( ((word) (fPt) NoName_Q1236) ), ( ((word) (fPt) NoName_Q1296) ), var_c089); }; if ((var_c01 == 2)) { goto lab_L100005; } else { if ((var_c01 == 1)) { goto lab_L02; }; }; }; goto lab_L100005; lab_L02: ; return; } static word NoName_Q1236(formal_c087) word formal_c087; { register ptr gf_c086 = (ptr) &globalframe; SOURCE(2446, 90) lab_L100010: ; SOURCE(2446, 90) { word h_v5404; SOURCE(2449, 21) h_v5404 = (word) Fetch_P660((* ((( (ptr) formal_c087)+4)) )); SOURCE(2472, 20) if ((h_v5404 == 0)) { SOURCE(2486, 6) return(1); }; SOURCE(2494, 42) { word var_c8216; { word pd19; pd19 = (* (( (ptr) (* (( (ptr) gf_c086)+37)/* var_c7896 */ ))+12) ); var_c8216 = (word) ( *( (fPt) ((* (ptr) pd19 ))))(h_v5404, pd19); }; { word pd20; pd20 = (* (( (ptr) (* (( (ptr) formal_c087)+4) ))+4) ); (void) ( *( (fPt) ((* (ptr) pd20 ))))(h_v5404, var_c8216, pd20); }; }; }; goto lab_L100010; /* c2c skipped dead code */ } static void MainQueueProcess_P780() { register ptr gf_c8760 = (ptr) &globalframe; /* MainQueueProcess: */ SOURCE(2560, 338) SOURCE(2590, 47) { word pd21; pd21 = (* (( (ptr) (* (( (ptr) gf_c8760)+38)/* var_c8184 */ ))+13) ); (void) ( *( (fPt) ((* (ptr) pd21 ))))(3, pd21); }; SOURCE(2639, 259) lab_L100013: ; SOURCE(2639, 259) { word handle_v5448; SOURCE(2642, 43) { word pd22; pd22 = (* (( (ptr) (* (( (ptr) gf_c8760)+37)/* var_c7896 */ ))+16) ); handle_v5448 = (word) ( *( (fPt) ((* (ptr) pd22 ))))((* ((( (ptr) gf_c8760)+8)/* fq_v2664 */ ) ), pd22); }; SOURCE(2687, 211) if ((handle_v5448 != 0)) { SOURCE(2708, 157) { word var_c8248; { word pd23; pd23 = (* (( (ptr) (* (( (ptr) gf_c8760)+37)/* var_c7896 */ ))+13) ); var_c8248 = (word) ( *( (fPt) ((* (ptr) pd23 ))))(handle_v5448, pd23); }; if ((var_c8248 == 0)) { goto lab_L100014; }; if (((* (( (ptr) gf_c8760)+10) ) == XR_GetReferentType(var_c8248))) { { word cq_v5492; cq_v5492 = var_c8248; SOURCE(2775, 90) if ((0 != (word) Forward_P600(cq_v5492, handle_v5448))) { SOURCE(2820, 45) SOURCE(2822, 41) { W2 var_c8280; { W2 var_c065; word var_c064; var_c064 = XR_ExtensionAlloc(5); { /*1*/ word tmpAddr24; /*1*/ tmpAddr24 = (word) var_c064; /*1*/ (* (ptr) tmpAddr24 ) = ( ((word) (fPt) NoName_Q1356) ); /*1*/ (* (( (ptr) tmpAddr24) + 1) ) = 0; /*1*/ (* (( (ptr) tmpAddr24) + 2) ) = (word) (( (bPt) gf_c8760)+60)/* var_c7544 */ ; /*1*/ (* (( (ptr) tmpAddr24) + 3) ) = 0; /*1*/ (* (( (ptr) tmpAddr24) + 4) ) = cq_v5492; /*1*/ }; (void) XR_Fork((word) &var_c065, var_c064); var_c8280 = var_c065; }; { word pd25; pd25 = (* (( (ptr) (* (( (ptr) gf_c8760)+38)/* var_c8184 */ ))+11) ); (void) ( *( (fPt) ((* (ptr) pd25 ))))(var_c8280, pd25); }; }; }; }; } else { lab_L100014: ; }; }; SOURCE(2886, 12) handle_v5448 = 0; }; }; goto lab_L100013; } static void NoName_Q1296(formal_c073, formal_c200000, formal_c200001, formal_c200002, formal_c200003) word formal_c073; word formal_c200000; word formal_c200001; word formal_c200002; word formal_c200003; { if ((formal_c200001 == XR_Aborted)) { SOURCE(2440, 4) (* (ptr) formal_c073 ) = 2; (* (( (ptr) formal_c073)+1) ) = 2; return; }; (* (ptr) formal_c073 ) = 0; (* (( (ptr) formal_c073)+1) ) = 0; return; } static word NoName_Q1356(formal_c066) word formal_c066; { word var_c068; word var_c067; /* intermediary proc for a FORK, nArgs: 1, nRets: 0 */ var_c068 = (* (( (ptr) formal_c066)+4) ); var_c067 = (* (( (ptr) formal_c066)+2) ); formal_c066 = XR_ExtensionFree(formal_c066); (void) ( *( (fPt) ((* (ptr) var_c067 ))))(var_c068, var_c067); return(0); } /* file: FinalizeOpsImpl, module: FinalizeOpsImpl, compiled at: January 28, 1993 4:06:47 pm PST */ extern void XR_install_FinalizeOpsImpl() { NoName_Q1176(); } extern void XR_run_FinalizeOpsImpl() { XR_Start(&globalframe); }