예제 #1
0
파일: hal.c 프로젝트: callcc/tekui
EXPORT TBOOL
hal_scanmodules(struct THALBase *hal, TSTRPTR path, struct THook *hook)
{
	TSTRPTR p;
	struct HALSpecific *hws = hal->hmb_Specific;
	TBOOL success = TFALSE;

	p = getmodpath(hws->hsp_ProgDir, "mod\\*.dll");
	if (p)
	{
		TDBPRINTF(TDB_TRACE,("scanning %s\n", p));
		success = scanpathtolist(hook, p, path);
		free(p);
	}

	if (success)
	{
		p = getmodpath(hws->hsp_ModDir, "*.dll");
		if (p)
		{
			TDBPRINTF(TDB_TRACE,("scanning %s\n", p));
			success = scanpathtolist(hook, p, path);
			free(p);
		}
	}
	return success;
}
예제 #2
0
파일: ndis.c 프로젝트: HarryR/sanos
static struct section *get_config_section(struct ndis_adapter *adapter) {
  char buf[MAXPATH];
  char *cfgname;
  char *p;
  char *lastdot;
  struct section *sect;

  if (getmodpath(adapter->driver->hmod, buf, sizeof buf) < 0) return NULL;
  cfgname = buf;
  lastdot = NULL;
  
  p = buf;
  while (*p) {
    if (*p == PS1 || *p == PS2) cfgname = p + 1;
    if (*p == '.') lastdot = p;
    p++;
  }
  if (lastdot > cfgname) *lastdot = 0;
  
  p = cfgname + strlen(cfgname);
  *p++ = '-';
  *p++ = '0' + adapter->adapterno;
  *p = 0;

  sect = krnlcfg;
  while (sect) {
    if (stricmp(sect->name, cfgname) == 0) return sect;
    sect = sect->next;
  }

  return NULL;
}