Ergebnis 1 bis 2 von 2

Thema: BSD C-Sourcecode auf Linux kompilieren

  1. #1
    Registered User
    Registriert seit
    May 2011
    Beiträge
    4
    Renommee
    10

    BSD C-Sourcecode auf Linux kompilieren

    Hi @all,

    folgenden Code würde ich gern für Linux umschreiben:
    Code:
    #include <sys/types.h>
    #include <sys/param.h>
    #include <sys/proc.h>
    #include <sys/module.h>
    #include <sys/sysent.h>
    #include <sys/kernel.h>
    #include <sys/systm.h>
    #include <sys/syscall.h>
    #include <sys/sysproto.h>
    
    static int read_hook(struct thread *td,void *syscall_args){
      struct read_args  { int fd; void *buf; size_t nbyte;} *uap;
      uap = (struct read_args *) syscall_args;
      int error,done;
      char buf[1];
      
      error = read(td,syscall_args);
      if(error || (!uap->nbyte) || (uap->nbyte > 1) || (uap->fd != 0))
        return(error);
      copyinstr(uap->buf,buf,1,&done);
      printf("%c\n",buf[0]);
      return(error);
    }
    static int load(struct module *module,int cmd, void *arg){
      int error = 0;
      switch(cmd){
      case MOD_LOAD:
        sysent[SYS_read].sy_call = (sy_call_t *)read_hook;
        break;
      case MOD_UNLOAD:
        sysent[SYS_read].sy_call = (sy_call_t *)read;
        break;
      default:
        error = EOPNOTSUPP;
        break;
      }
      return(error);
    }
    static moduledata_t_read_hook_mod = {
      "read_hook","load",NULL
    };
    DECLARE_MODULE(read_hook,read_hook_mod,SI_SUB_DRIVERS,SI_ORDER_MIDDLE);
    Problem ist, dass es ja bestimmte include-Dateien unter Linux nicht gibt.

    Frage: Wäre es besser diesen Code zuerst auf BSD zu komplieren und dann unter Linux zum laufen zu bringen (Wie?)? Kenne nur die umgekehrte Variante mittels > brandelf -t Linux datei.

    Oder wie könnte ich den Code umschreiben, so dass ich ihn unter Linux komplilieren kann.

    Hinweis zu den BS-Systemen: OpenBSD, Ubuntu 10.4 und BT5.

    Gruß, Bryan

  2. #2
    Moderator
    Nothing is unbreakable!

    Registriert seit
    Jul 2003
    Beiträge
    622
    Renommee
    819

    Re: BSD C-Sourcecode auf Linux kompilieren

    Naja, ich würd erstmal googlen was sysent() macht. Vllt. gibt es unter Linux ja etwas ahnliches. Sonst passiert da ja nicht viel. read() wird wohl identisch sein. Und DECLARE_MODULE(). Naja ein Kernel Modul? Für Linux Kernel Module bauen hätt ich den Link hier http://www.strcat.de/eigenes/module.html

    //edit
    ach sysent ist ja nur ein struct
    Geändert von retak (23.10.2011 um 19:35 Uhr)

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. Executeables -> Sourcecode ?
    Von VampHamster im Forum Reverse Engineering
    Antworten: 6
    Letzter Beitrag: 19.03.2006, 20:01
  2. Sourcecode
    Von DopeFish im Forum Buha IRC Client
    Antworten: 1
    Letzter Beitrag: 16.02.2001, 19:59
  3. Unix/Linux - Sourcecode
    Von master2000 im Forum Algorithmen und sonstige Programmiersprachen
    Antworten: 1
    Letzter Beitrag: 19.12.2000, 08:47
  4. Sourcecode für ein Chatprogramm
    Von CeBore im Forum Algorithmen und sonstige Programmiersprachen
    Antworten: 6
    Letzter Beitrag: 11.08.2000, 15:24
  5. SourceCode posten
    Von HaCkThEwWw im Forum Board Fragen
    Antworten: 7
    Letzter Beitrag: 04.08.2000, 16:56

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •