[linux-ileri] Re: printk mesajlari

---------

From: Bulent Selek (bselek@best.com.tr)
Date: Mon 23 Feb 2004 - 15:06:02 EST

  • Next message: serdar: "[linux-ileri] 2 ip adresi."

    Murat merhaba,

    #define printk(format, args...) ((0,##args), int(0))

    kernel'da benzer ifadeleri s1k s1k gormeme ragmen anliyabilmis degilim,
    bu ne demektir ? :)

    belki anliyabilirim diye heveslendim ve soyle birsey yaptim

    #define printk (format, args...) ((0,##args), printf(format,args))
    #define printk2(format, args...) printf(format,args)

    gcc ile derledim, ( bcc ezelden beri anlamiyor boyle seyleri )
    her iki deklerasyonda ayni kodu uretti. :(

    Birde vaktin varsa __attribute__ icin kisa bir aciklama yaparsan sevinirim..

    Bulent

    -----Original Message-----
    From: linux-ileri-bounce@liste.linux.org.tr
    [mailto:linux-ileri-bounce@liste.linux.org.tr]On Behalf Of Murat Koc
    Sent: Monday, February 23, 2004 6:56 PM
    To: linux-ileri@liste.linux.org.tr
    Subject: [linux-ileri] Re: printk mesajlari

    > Nazim selamlar,
    >

    Selam,

    > /usr/src/linux-2.4/include/linux/kernel.h dosyasindaki,
    >
    > asmlinkage int printk(const char * fmt, ...)
    > __attribute__ ((format (printf, 1, 2)));
    >
    > sekilde bir deklarasyon var, onu
    >
    > #define printk(format, args...) ((int)0)
    > //asmlinkage int printk(const char * fmt, ...)
    > // __attribute__ ((format (printf, 1, 2)));
    >
    > seklinde degistir, sonra
    >

    Hımm

    bunu #define printk(format, args...) ((0,##args), int(0))

    yapmak daha iyi olacaktır. veya hatta inline yapmak daha iyi de olabilir
    aslında bir de side effect ve gcc warning leri de kaldıralım değil mi?
    attribute zamanı :)

    hımmm

    static inline int printk_inline(void) __attribute__ ((const,unused));
    static inline int printk_inline(void) { return 0; }
    #define printk(format, args...) (printk_inline())

    daha enteresan olabilir? hiçbir şekilde test edilmemiştir :))

    > /usr/src/linux-2.4/kernel/printk.c dosyasindaki
    >
    > EXPORT_SYMBOL(printk); ifadesini kaldir
    > //EXPORT_SYMBOL(printk);
    >

    hımm daha bitmedi

    buradaki printk ı da disable edeceksin.

    +asmlinkage int printk(const char *fmt, ...) { return 0; }

    hımm bunu yaptıktan sonra export edebilirsin.

    sonra bir tane de spinlock.h da var onu da disable etmek lazım.

    > aslinda senin icin sadece {return ide_stopped} de olabilir.. :)))
    > Derleme asamasinda bol bol warning alacaksin, zira gcc (int()0) hic bir
    kod
    > yaratmiyor,
    > ancak bu durumu basima kakmaktandan geri kalmiyor.
    >
    > Sonuc ise %10 daha kucuk bzImage,
    > belki ayni islem "panic" icin de yapilirsa biraz daha kuculecegini
    umuyorum.

    mümkün :)

    umarım bunlarla da gcc warning lerini filan halletmiş olursun hem biraz
    daha düzgün olur. Aslında bir tane config opsiyonu yapmak ve buna göre
    ifdef filan yapmak daha da güzel yapacaktır.

    Kolay gelsin ...

    --
     __________
    |          |
    |          |  Murat Koc
    |          |  Manager & IT Consultant
    |    FRONT |
    |==========|  FrontSITE Bilgi Teknolojisi A.S.
    |_____SITE_|  http://www.frontsite.com.tr/
    -- Attached file included as plaintext by Ecartis --
    -- File: signature.asc
    -- Desc: This is a digitally signed message part
    -----BEGIN PGP SIGNATURE-----
    Version: GnuPG v1.2.4 (GNU/Linux)
    iD8DBQBAOjCUyHJSQxPy7GoRAh5xAKCYQUZTVhdW/COq7xdeCVr2y9yogwCffmzL
    ZZ0Bi9EW5ktsf8DzNW1NvaE=
    =SFi1
    -----END PGP SIGNATURE-----
    

  • Next message: serdar: "[linux-ileri] 2 ip adresi."

    ---------

    Bu arsiv hypermail 2.1.6 tarafindan uretilmistir.