/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1992 by Xerox Corporation.  All rights reserved. */
/* time: April 21, 1992 12:42:11 pm PDT */
/* C2C version: October 16, 1990 (native) */
/* ref-counting: off */
/* file: XTkNotificationImpl, module: XTkNotificationImpl */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [76824825,735568498] XTkNotificationImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef word (*fPt)();
typedef struct {word f0, f1;} W2;
#define SOURCE(p, l) /* source p, l */
static void NoName←Q432();
static void XTkNotificationImpl←P0();
static void RegisterGlobal←P60();
static void CallNotifierList←P120();
static void CallAll←P180();
static struct {unsigned f; char r[44];} string1 = {2752556, "\260\006\005\146\151\162\163\164\257\300\004\224\100\371\300\053\327\342\162\100\214\005\004\162\145\163\164\214\257\300\004\224\100\371\300\053\327\342\162\100\214\261\000"};
static struct {unsigned f; char r[4];} string2 = {131074, "\004\006\000"};
static struct {unsigned f; char r[16];} string3 = {851984, "\257\300\004\224\100\371\300\053\327\342\162\100\164\000\000"};
static struct {unsigned f; char r[4];} string4 = {131074, "\003\010\000"};
static struct {unsigned f; char r[16];} string5 = {851984, "\257\300\242\221\264\046\300\105\142\142\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string6 = {851984, "\257\300\242\021\151\152\300\254\342\070\173\100\150\000\000"};
static struct {
   word f0[12]; word f12; word f13; word f14; 
   word f15; word f16; word f17; word f18; 
   word f19[3]; 
   } globalframe = {
   {0}, (word) CallAll←P180, 0, (word) CallNotifierList←P120, 
   0, (word) RegisterGlobal←P60, 0, (word) XTkNotificationImpl←P0, 
   {0}
   };

static void NoName←Q432()
   {
   register ptr gf←c036 =  (ptr) &globalframe;
   word var←c5508;
   (* (( (ptr) gf←c036)+10) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
   (void) XR←DeclareGlobalFrame((word) "XTkNotificationImpl", &globalframe, (word) XR←GetTypeIndex((word) &string3, 0, (word) &string4)
      , (word) (( (bPt) gf←c036)+72)/* var←c5284 */ );
   var←c5508 = (word) XR←ImportInterface((word) "RefTab", (word) XR←GetTypeIndexS((word) (&string5)), 16);
   (* (( (ptr) gf←c036)+20)/* var←c5316 */  ) = var←c5508;
   (void) XR←ImportProcS(var←c5508, 67896579);
   (void) XR←ImportProcS(var←c5508, 134742786);
   (void) XR←ImportProcS(var←c5508, 67895555);
   var←c5508 = (word) XR←ExportInterface((word) "XTkNotification", (word) XR←GetTypeIndexS((word) (&string6)), 2);
   (* (( (ptr) gf←c036)+21)/* var←c5540 */  ) = var←c5508;
   (void) XR←ExportProcS(var←c5508, (word) (( (bPt) gf←c036)+64)/* var←c5252 */ , 1048580);
   (void) XR←ExportProcS(var←c5508, (word) (( (bPt) gf←c036)+48)/* var←c5188 */ , 1048836);
   }

static void XTkNotificationImpl←P0(formal←c012, formal←c011)
   word formal←c012;
   word formal←c011;
   {
   register ptr gf←c5572 =  (ptr) &globalframe;
   /* XTkNotificationImpl: */ 
SOURCE(42, 1156)
SOURCE(248, 38)
   {
      word pd7;
      pd7 = (* (( (ptr) (* (( (ptr) gf←c5572)+20)/* var←c5316 */  ))+5) );
      (* (( (ptr) gf←c5572)+8)/* registry←v2580 */  ) = (word) ( *( (fPt) ((*  (ptr) pd7 ))))(17, 0, 0, pd7);
      };
   }

static void RegisterGlobal←P60(key←v2916, proc←v2944, registerData←v2972, front←v3000)
   word key←v2916;
   word proc←v2944;
   word registerData←v2972;
   word front←v3000;
   {
   register ptr gf←c5604 =  (ptr) &globalframe;
   word new←v3376;
   /* RegisterGlobal: */ 
SOURCE(289, 413)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c5604)+16)/* LOCK←v2496 */ ));
SOURCE(404, 46)
   {
      word var←c5380;
      new←v3376 = XR←NewObject(12, (* (( (ptr) gf←c5604)+10) ));
      var←c5380 = new←v3376;
      (*  (ptr) var←c5380 ) = XR←CheckProc(proc←v2944);
      (* (( (ptr) var←c5380)+1) ) = registerData←v2972;
      };
SOURCE(452, 181)
   {
      word var←c5412;
      W2 var←c020;
      {
         word pd8;
         pd8 = (* (( (ptr) (* (( (ptr) gf←c5604)+20)/* var←c5316 */  ))+7) );
         (void) ( *( (fPt) ((*  (ptr) pd8 ))))((word) &var←c020, (* (( (ptr) gf←c5604)+8)/* registry←v2580 */  ), key←v2916, pd8);
         };
      var←c5412 = var←c020.f1;
      if ((var←c5412 == 0)) {
         goto lab←L100000;
         };
      if (((* (( (ptr) gf←c5604)+10) ) == XR←GetReferentType(var←c5412))) {
         {
            word nl←v3420;
            nl←v3420 = var←c5412;
SOURCE(523, 110)
            if ((0 != front←v3000)) {
SOURCE(538, 19)
               (* (( (ptr) new←v3376)+2) ) = nl←v3420;
               }
            else {
SOURCE(559, 74)
               {
                  register word l←v3464;
                  l←v3464 = nl←v3420;
                  lab←L100004: ;
SOURCE(595, 38)
                  if (((* (( (ptr) l←v3464)+2) ) == 0)) {
SOURCE(615, 10)
                     (* (( (ptr) l←v3464)+2) ) = new←v3376;
SOURCE(627, 6)
                     (void) (XR←MonitorExit((word) (( (bPt) gf←c5604)+16)/* LOCK←v2496 */ ));
                     return;
                     };
                  l←v3464 = (* (( (ptr) l←v3464)+2) );
                  goto lab←L100004;
                  };
               };
            };
         }
      else {
         lab←L100000: ;
         };
      };
SOURCE(665, 37)
   {
      word var←c5444;
      word pd9;
      pd9 = (* (( (ptr) (* (( (ptr) gf←c5604)+20)/* var←c5316 */  ))+9) );
      var←c5444 = (word) ( *( (fPt) ((*  (ptr) pd9 ))))((* (( (ptr) gf←c5604)+8)/* registry←v2580 */  ), key←v2916, new←v3376, pd9)
      ;
      };
SOURCE(289, 413)
   (void) (XR←MonitorExit((word) (( (bPt) gf←c5604)+16)/* LOCK←v2496 */ ));
   return;
   }

static void CallNotifierList←P120(list←v3084, widget←v3112, callData←v3140, event←v3168)
   word list←v3084;
   word widget←v3112;
   word callData←v3140;
   word event←v3168;
   {
   /* CallNotifierList: */ 
SOURCE(708, 261)
SOURCE(821, 148)
   {
      register word l←v3508;
      l←v3508 = list←v3084;
      lab←L100008: ;
      if ((l←v3508 != 0)) {
         }
      else {
         goto lab←L100005;
         };
SOURCE(871, 98)
      {
         word pd10;
         pd10 = (*  (ptr) l←v3508 );
         (void) ( *( (fPt) ((*  (ptr) pd10 ))))(widget←v3112, (* (( (ptr) l←v3508)+1) ), callData←v3140, event←v3168, pd10);
         };
      l←v3508 = (* (( (ptr) l←v3508)+2) );
      goto lab←L100008;
      lab←L100005: ;
      };
   }

static void CallAll←P180(key←v3240, widget←v3268, callData←v3296, event←v3324)
   word key←v3240;
   word widget←v3268;
   word callData←v3296;
   word event←v3324;
   {
   register ptr gf←c5636 =  (ptr) &globalframe;
   /* CallAll: */ 
SOURCE(983, 215)
SOURCE(1084, 114)
   {
      word var←c5476;
      W2 var←c034;
      {
         word pd11;
         pd11 = (* (( (ptr) (* (( (ptr) gf←c5636)+20)/* var←c5316 */  ))+7) );
         (void) ( *( (fPt) ((*  (ptr) pd11 ))))((word) &var←c034, (* (( (ptr) gf←c5636)+8)/* registry←v2580 */  ), key←v3240, pd11)
         ;
         };
      var←c5476 = var←c034.f1;
      if ((var←c5476 == 0)) {
         goto lab←L100009;
         };
      if (((* (( (ptr) gf←c5636)+10) ) == XR←GetReferentType(var←c5476))) {
         {
            word nl←v3552;
            nl←v3552 = var←c5476;
SOURCE(1153, 45)
            (void) CallNotifierList←P120(nl←v3552, widget←v3268, callData←v3296, event←v3324);
            };
         }
      else {
         lab←L100009: ;
         };
      };
   }

/* file: XTkNotificationImpl, module: XTkNotificationImpl, compiled at: April 21, 1992 12:42:11 pm PDT */ 
extern void XR←install←XTkNotificationImpl() {
   NoName←Q432();
   }
extern void XR←run←XTkNotificationImpl() { XR←Start(&globalframe); }