int AsnTypeDesc::TclGetDesc (Tcl_DString *desc) const { Tcl_DStringStartSublist (desc); Tcl_DStringAppendElement (desc, getmodule() ? (char*) getmodule()->name : ""); Tcl_DStringAppendElement (desc, getname() ? (char*) getname() : ""); Tcl_DStringEndSublist (desc); Tcl_DStringAppendElement (desc, ispdu() ? "pdu" : "sub"); Tcl_DStringAppendElement (desc, (char*) typenames[gettype()]); return TCL_OK; }
int __declspec(dllexport) install(struct unit *unit, char *opts) { char *modfn = opts; struct ndis_driver *driver; struct ndis_adapter *adapter; hmodule_t hmod; int rc; ndis_status open_status; ndis_status status; enum ndis_medium media; unsigned int selected_index; kprintf("ndis: loading driver %s for unit %08X\n", opts, unit->unitcode); // Try to find existing driver driver = NULL; hmod = getmodule(modfn); if (hmod) { driver = drivers; while (driver) { if (driver->hmod == hmod) break; driver = driver->next; } } // If driver not loaded, load it now and initialize if (!driver) { int (__stdcall *entry)(struct ndis_driver *driver, void *reserved); hmod = load(modfn, MODLOAD_NOINIT); if (!hmod) return -ENOEXEC; entry = getentrypoint(hmod); if (!entry) return -ENOEXEC; driver = kmalloc(sizeof(struct ndis_driver)); if (!driver) return -ENOMEM; memset(driver, 0, sizeof(struct ndis_driver)); rc = entry(driver, NULL); if (rc < 0) { kprintf("ndis: driver initialization failed with error code %08X\n", rc); kfree(driver); unload(hmod); return -ENXIO; } driver->hmod = hmod; driver->next = drivers; drivers = driver; }
int AsnSe_TypeDesc::mandatmemberr (Tcl_Interp *interp, const char *membername) const { sprintf (interp->result, "(in type %s.%s:) member %s is mandatory and can't be deleted", getmodule()->name, getname(), membername); Tcl_SetErrorCode (interp, "SNACC", "MANDMEMB", NULL); return TCL_ERROR; }