[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [tyndur-devel] [PATCH 2/2] shell: Neuer Befehl sync



On Sun, Dec 11, 2011 at 10:19:42PM +0100, Max Reitz wrote:
> Oh, ich nehme mein Ack (vorerst) zurück, ich habe gerade in der
> anderen Patchserie gesehen, dass lio_sync_all anscheinend noch einen
> bool-Parameter benötigt - ist das in syscall.h ein anderes
> lio_sync_all als das in lostio/client.h?

Hm, gute Frage. Unterschiedliche Funktionen sind es auf jeden Fall,
einmal libc und einmal im Kernel, aber ob sie unterschiedlich
funktionieren, muss ich erstmal nachschauen...

Die libc-Funktion sieht so aus:

    int lio_sync_all(void)
    {
        int result;

        asm(
            "pushl $0;"
            "int $0x30;"
            "add $0x4, %%esp;"
        : "=a" (result) : "0" (SYSCALL_LIO_SYNC_ALL));

        return result;
    }

Der Syscall ist definiert als:

  int syscall_lio_sync_all(int soft);

Und er ruft folgendes auf:

  int lio_sync_all(bool soft)

Ich glaube, das passt also soweit (außer dass es vielleicht schön wäre,
wenn es auch für die andere Variante eine libc-Funktion braucht - aber
wirklich benutzt wird soft = true im Moment nur im LIOv2-Branch und
nur vom Kerneltask, der den Cache zurückschreibt). Aber ich glaube es
wäre nicht verkehrt, sich für int oder bool zu entscheiden und es nicht
zu mischen...

Kevin