home *** CD-ROM | disk | FTP | other *** search
/ CD Actual 13 / CDA13.ISO / MISC / SRC / INSTALL / MODULES.C < prev    next >
Encoding:
C/C++ Source or Header  |  1996-12-23  |  725 b   |  39 lines

  1.  
  2. int loadModule(char * modName) {
  3.     char * objName;
  4.     int status;
  5.     pid_t childpid;
  6.  
  7.     objName = alloca(strlen(modName) + 5 + strlen(MODULES_PATH));
  8.  
  9.     strcpy(objName, MODULES_PATH);
  10.     strcat(objName, modName);
  11.     strcat(objName, ".o");
  12.  
  13.     if (testing) {
  14.     messageWindow("Module", "Installing module %s now", modName);
  15.     return 0;
  16.     }
  17.  
  18.     logMessage("running command: insmod %s", objName);
  19.  
  20.     if (!(childpid = fork())) {
  21.     close(1);
  22.     close(2);
  23.     dup2(logfd, 1);
  24.     dup2(logfd, 2);
  25.     execl("/bin/insmod", "/bin/insmod", objName, NULL);
  26.     exit(1);
  27.     }
  28.  
  29.     waitpid(childpid, &status, 0);
  30.  
  31.     if (!WIFEXITED(status) || WEXITSTATUS(status)) {
  32.     logMessage("insmod failed!");
  33.     return 1;
  34.     } 
  35.  
  36.     return 0;
  37. }
  38.     
  39.