Friday, July 20, 2007

The developers are considered to be purely robotic people, with only a few lines of code conerning humaness within their souls.
However while I was looking for some function I needed, I tripped over these lines:

/* Standard streams. */
extern struct _IO_FILE *stdin; /* Standard input stream. */
extern struct _IO_FILE *stdout; /* Standard output stream. */
extern struct _IO_FILE *stderr; /* Standard error output stream. */
/* C89/C99 say they're macros. Make them happy. */
#define stdin stdin
#define stdout stdout
#define stderr stderr

I was really surprised. Professionals don't mke people happy, they get the job done. But here I really found hidden emotions in code. and I grep'ed in the code of linux kernel 2.6.20.7 . Here is what I got for a few keywords (I've omitted some not-so-interesting lines):

And one of us have got a girlfriend too ;)
***girlfriend***
./drivers/net/tokenring/skisa.c: * Dedicated to my girlfriend Steffi Bopp

Its okay, no women in coding (at least with a boyfriend). I hope feminists won't sue me here :-o .
***boyfriend***

**fun***
./Documentation/cdrom/sbpcd: * It is no fun to listen to it without prior overlap/underlap correction!
./Documentation/scsi/ibmmca.txt: provide more fun with the F/W adapter.
./Documentation/sysctl/README:be actually used, not just for the fun of programming it :-)
./Documentation/video4linux/bttv/README:Have fun with bttv,
./arch/alpha/lib/csum_partial_copy.c: * This is slightly less fun than the above..
./arch/cris/arch-v10/lib/memset.c: /* Now the fun part. For the threshold value of this, check the equation
./arch/i386/boot/setup.S:# Well, that certainly wasn't fun :-(. Hopefully it works, and we don't
./arch/ia64/hp/sim/simserial.c: * Just for the fun of it !
./arch/ia64/hp/sim/simserial.c: * Let's have a little bit of fun !
./arch/powerpc/platforms/52xx/efika-setup.c: ppc_md.progress(" Have fun with your Efika! ", 0x7777);
./arch/powerpc/sysdev/cpm2_pic.c: * Now, the fun starts.....Interrupt Numbers DO NOT MAP
./arch/s390/kernel/ptrace.c: * Now the fun part starts... a 31 bit program running in the
./arch/sh/mm/Kconfig: all of the fun new features and a willingless to submit bug reports,
./arch/sparc/kernel/sys_sunos.c: /* Ok, here comes the fun part: Linux's nfs mount needs a
./arch/sparc/mm/hypersparc.S: /* Here comes the fun part... */
./arch/sparc64/kernel/sys_sunos32.c: /* Ok, here comes the fun part: Linux's nfs mount needs a
./arch/x86_64/boot/setup.S:# Well, that certainly wasn't fun :-(. Hopefully it works, and we don't
./drivers/atm/ambassador.c:/********** make rate (not quite as much fun as Horizon) **********/
./drivers/char/hvc_rtas.c: /* Really the fun isn't over until the worker thread breaks down and
./drivers/fc4/fc.c: case FC_STATUS_OK: /* Ok, let's have a fun on a loop */
./drivers/ieee1394/eth1394.c: /* A datagram fragment has been received, now the fun begins. */
./drivers/net/phy/fixed.c: /* So let the fun begin...
./drivers/net/sunhme.h: * Debugging eeprom burnt code is more fun than programming this chip!
./drivers/net/tg3.c: * fun things. So, temporarily disable the 5701
./drivers/net/via-velocity.c: * less fun than would be ideal.
./drivers/pci/hotplug/pci_hotplug_core.c:/* Weee, fun with macros... */
./drivers/scsi/aic7xxx_old.c: * the SCB to the sequencer and watch the fun begin.
./drivers/scsi/mca_53c9x.c: * and other fun stuff. It takes up 16 addresses, and the chip it is
./drivers/serial/s3c2410.c: /* the fun of calculating the uart divisors on
./drivers/video/aty/aty128fb.c: /* fun with masking */
./include/asm-alpha/core_lca.h: * non-interrupts is another fun race area. Don't do it (because if
./include/asm-alpha/jensen.h: * is another fun race area. Don't do it (because if you do, I'll have to
./include/asm-arm/arch-omap/fpga.h:#define H2P2_DBG_FPGA_LOAD_METER (1 << 0) // A bit of fun on our board ...
./include/asm-m68k/mac_via.h: * Register B has the fun stuff in it
./include/asm-m68k/openprom.h:/* More fun PROM structures for device probing. */
./include/asm-mips/dec/prom.h:#define __DEC_PROM_O32(fun, arg) fun arg __asm__(#fun); \
./include/asm-parisc/pgtable.h: * permission. For the fun of it we'll go ahead and support write only
./include/asm-sparc/openprom.h:/* More fun PROM structures for device probing. */
./include/asm-sparc64/openprom.h:/* More fun PROM structures for device probing. */
./sound/oss/sb_ess.c: * Without RECLEV ES688 won't be much fun I guess.
./sound/oss/trix.c: return 0; /* No boot code -> no fun */
./sound/sound_core.c: * Thirdly to make it more fun and for 2.3.x and above we do all

***happy***
./Documentation/cdrom/gscd:Be sure, I'm very happy to receive your comments!
./Documentation/cdrom/sbpcd:flood and to find time to lead my 12-year old son towards happy computing.
./Documentation/filesystems/ntfs.txt: the old driver isn't happy with.
./Documentation/filesystems/proc.txt:contact Bodo Bauer at bb@ricochet.net. We'll be happy to add them to this
./MAINTAINERS:4. When you are happy with a change make it generally available for
./arch/cris/arch-v10/kernel/time.c: /* only keep watchdog happy as long as we have memory left! */
./arch/i386/math-emu/fpu_trig.c: /* This should be invalid, but a real 80486 is happy with it. */
./arch/m32r/kernel/smp.c: * i'm not happy about this global shared spinlock in the
./arch/mips/mm/tlbex.c: * As if we MIPS hackers wouldn't know how to nop pipelines happy ...
./arch/powerpc/boot/flatdevtree.c: /* make check in ft_next happy */
./arch/powerpc/kernel/misc_32.S: * This routine is just here to keep GCC happy - sigh...
./arch/powerpc/platforms/pseries/lpar.c: /* Make pHyp happy */
./arch/ppc/kernel/misc.S: * This routine is just here to keep GCC happy - sigh...
./arch/sparc/kernel/head.S:/* There, happy now Adrian? */
./arch/sparc/kernel/pcic.c:/* Makes compiler happy */
./arch/sparc/kernel/wuf.S: * to be in window 'W' so make it happy or else
./drivers/base/core.c: /* this keeps sysfs from having a symlink to make old udevs happy */
./drivers/char/drm/mga_dma.c: /* Make drm_addbufs happy by not trying to create a mapping for less
./drivers/char/lp.c: * stall until the printer is happy again. Define CONSOLE_LP_STRICT
./drivers/char/moxa.c: default: /* to keep gcc happy */
./drivers/char/ppdev.c: /* Keep the compiler happy */
./drivers/i2c/busses/i2c-sis5595.c: /* Everything is happy */
./drivers/ide/ide-io.c: * we invoke the expiry handler, and providing it is happy the
./drivers/ide/legacy/ali14xx.c: * but I'll be happy to (try to) answer questions.
./drivers/infiniband/hw/ipath/ipath_init_chip.c: struct ipath_portdata *pd = NULL; /* keep gcc4 happy */
./drivers/input/evdev.c: /* temporary symlink to keep userspace happy */
./drivers/input/keyboard/atkbd.c: * atkbd_cleanup() restores the keyboard state so that BIOS is happy after a
./drivers/input/tsdev.c: /* temporary symlink to keep userspace happy */
./drivers/isdn/hisax/l3dss1.c: nlen = (nlen)?nlen:0; /* Make gcc happy */
./drivers/macintosh/therm_pm72.c: /* That is hopefully enough to make the FCU happy */
./drivers/media/video/bt8xx/bttv-cards.c: FlyVideo2000S in .hu happy (gm)*/
./drivers/media/video/cafe_ccic.c: .current_norm = V4L2_STD_NTSC_M, /* make mplayer happy */
./drivers/media/video/stradis.c: case VIDIOCGCHAN: /* this makes xawtv happy */
./drivers/mtd/nand/nand_base.c: /* Return more or less happy */
./drivers/mtd/nand/ppchameleonevb.c: /* Return happy */
./drivers/net/cassini.c:#define RX_COPY_MIN 64 /* copy a little to make upper layers happy */
./drivers/net/irda/irda-usb.h: * perfectly live happy with only one. We certainly don't need to keep the
./drivers/net/irda/vlsi_ir.c: * note: IrDA compliant peer devices should be happy regardless
./drivers/net/myri_sbus.c: /* Just like the happy meal we get checksums from this card. */
./drivers/net/ppp_synctty.c: * applications happy if they call them. Synchronous PPP does not use
./drivers/net/r8169.c: /* Make TBI happy */
./drivers/net/smc9194.c: /* this should pause enough for the chip to be happy */
./drivers/net/smc9194.h: . IM_RCV_INT, for happy received packets
./drivers/net/smc91x.c: /* this should pause enough for the chip to be happy */
./drivers/net/sunbmac.h:/* The BigMAC PHY transceiver. Not nearly as sophisticated as the happy meal
./drivers/net/sunhme.c: * alloc_skb() routine for the happy meal to allocate 64 bytes more than
./drivers/net/sunhme.c: printk(KERN_ERR "%s: Error interrupt for happy meal, status = %08x\n",
./drivers/net/sunhme.c: * to the happy meal.
./drivers/net/sunhme.c: printk(KERN_ERR "%s: EOP not set in happy meal transmit descriptor!\n",
./drivers/net/sunhme.c: /* Bus or parity error when cpu accessed happy meal registers
./drivers/net/sunhme.c: * that one ring buffer to the happy meal. Problem is that usually when that
./drivers/net/sunhme.c: * condition is triggered, the happy meal expects you to do something reasonable
./drivers/net/sunhme.c: * ring when we cannot get a new skb and give them all back to the happy meal,
./drivers/net/sunhme.c:/* Given a happy meal sbus device, find it's quattro parent.
./drivers/net/sunhme.c: /* Assume PCI happy meals can handle all burst sizes. */
./drivers/net/sunhme.h: dma_addr_t hblock_dvma; /* DVMA visible address happy block */
./drivers/net/sunhme.h:/* Here are the happy flags. */
./drivers/net/sunqe.c:/* Per-QE receive interrupt service routine. Just like on the happy meal
./drivers/net/wireless/airo.c: /* make swsusp happy with our thread */
./drivers/net/wireless/wavelan.p.h: * - Set PSA CRC to make PtP diagnostic tool happy (Bob Gray)
./drivers/parisc/dino.c:/* Looks nice and keeps the compiler happy */
./drivers/parisc/lba_pci.c:/* Looks nice and keeps the compiler happy */
./drivers/parisc/sba_iommu.c:/* Looks nice and keeps the compiler happy */
./drivers/parport/ieee1284_ops.c: * a chance to check it's happy with
./drivers/parport/share.c: * attempt. Note that if a preemption callback is happy for
./drivers/pci/hotplug/cpqphp_ctrl.c: * this is for _huge_ delays to make the hardware happy as the
./drivers/pcmcia/ti113x.h: * Some fixup code to make everybody happy (TM).
./drivers/pnp/manager.c: /* run through until pnp_check_port is happy */
./drivers/s390/cio/qdio.c:/* buffers filled forwards again to make Rick happy */
./drivers/scsi/aic7xxx/aic7xxx_pci.c: /* Make the table calculations below happy */
./drivers/scsi/fd_mcs.c: this feature implemented, send me patches. I'll be happy to send a copy
./drivers/scsi/fdomain.c: this feature implemented, send me patches. I'll be happy to send a copy
./drivers/scsi/ips.c: /* That keeps everything happy for "text" operations on the proc file. */
./drivers/scsi/oktagon_esp.c: * have all we want we are happy and can ditch the trash.
./drivers/scsi/scsi_transport_fc.c: case FC_TGTID_BIND_NONE: /* to keep compiler happy */
./drivers/scsi/scsi_transport_fc.c: case FC_TGTID_BIND_NONE: /* to keep compiler happy */
./drivers/serial/cpm_uart/cpm_uart_core.c: /* If this one is empty, return happy */
./drivers/serial/s3c2410.c: * it copes with BREAKs properly, so I am happy to ignore the RESERVED
./drivers/usb/input/powermate.c: * Griffin were very happy to provide documentation and free hardware for development.
./drivers/video/imacfb.c: /* some dummy values for timing to make fbset happy */
./drivers/video/macfb.c: /* some dummy values for timing to make fbset happy */
./drivers/video/vesafb.c: /* some dummy values for timing to make fbset happy */
./fs/isofs/isofs.h:struct inode; /* To make gcc happy */
./fs/jffs/inode-v23.c: /* NOTE: We would be quite happy if jffs_write_node() wrote a
./fs/jffs/intrep.c: /* Return happy */
./fs/jffs/jffs_proc.c: /* Return happy */
./fs/jffs/jffs_proc.c: /* Return happy */
./fs/jffs2/readinode.c: /* OK. We're happy */
./fs/ocfs2/file.c: /* happy write of zero bytes */
./fs/posix_acl.c: unsigned int id = 0; /* keep gcc happy */
./fs/reiserfs/inode.c: /* keeps fsck and non-quota versions of reiserfs happy */
./fs/smbfs/proc.c: * Both are happy if we return the data they point to. So we do.
./fs/smbfs/request.c: * makes smbfs happy as handling packets larger than the buffer size
./include/asm-arm26/pgtable.h:/* Keep the kernel happy */
./include/asm-powerpc/io.h: * a #ifdef, so we make them happy here.
./include/linux/hugetlb.h:#define HPAGE_MASK PAGE_MASK /* Keep the compiler happy */
./include/linux/mtd/nand.h:/* Keep gcc happy */
./include/linux/pktcdvd.h: /* underlying cdrom device happy */
./include/net/bluetooth/bluetooth.h: BT_CONNECTED = 1, /* Equal to TCP_ESTABLISHED to make net code happy */
./include/sound/asound.h:/* Trick to make alsa-lib/acinclude.m4 happy */
./lib/inflate.c: u[0] = (struct huft *)NULL; /* just to keep compilers happy */
./lib/zlib_deflate/deflate.c: if (hash_head) hash_head = 0; /* to make compiler happy */
./mm/vmscan.c: * brought into a happy state. So that the next thread which scans this
./net/bridge/br_netfilter.c:/* We need these fake structures to make netfilter happy --
./net/ipv4/netfilter/ip_conntrack_standalone.c: printk("ipt_hook: happy cracking.\n");
./net/ipv4/netfilter/ipt_CLUSTERIP.c: /* to make gcc happy */
./net/ipv4/netfilter/iptable_filter.c: printk("ipt_hook: happy cracking.\n");
./net/ipv4/netfilter/iptable_mangle.c: printk("ipt_hook: happy cracking.\n");
./net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c: printk("ipt_hook: happy cracking.\n");
./net/ipv4/route.c: struct proc_dir_entry *rtstat_pde = NULL; /* keep gcc happy */
./net/ipv4/tcp.c: * on connected socket. I was just happy when found this 8) --ANK
./net/ipv6/netfilter/ip6table_filter.c: printk("ip6t_hook: happy cracking.\n");
./net/ipv6/netfilter/ip6table_mangle.c: printk("ip6t_hook: happy cracking.\n");
./net/irda/irlan/irlan_eth.c: so DHCP clients gets happy */
./net/irda/irnet/irnet.h: /* TTY stuff - to keep "pppd" happy */
./net/irda/irnet/irnet_ppp.c: /* TTY IOCTLs : Pretend that we are a tty, to keep pppd happy */
./net/netfilter/xt_connbytes.c: u_int64_t what = 0; /* initialize to make gcc happy */
./net/sunrpc/auth_gss/svcauth_gss.c: * When user-space is happy that a context is established, it places an entry
./net/xfrm/xfrm_state.c: * We are happy with one success
./sound/oss/i810_audio.c:/* stream at a minimum for this card to be happy */
./sound/oss/soundcard.c: * The OSS drivers aren't remotely happy without this locking,
./sound/pci/au88x0/au88x0_core.c: 18-02-2003 JAAAAAHHHUUUUUU!!!! The mixer works !! I'm just so happy !
./sound/pci/trident/trident_main.c: address = 0; /* keep GCC happy */

***joke***
./drivers/net/ni65.c: * 96.April.1: (no joke ;) .. added EtherBlaster and Module support (MH)
./include/asm-sparc/cache.h: "g2", "g3", "memory" /* no joke */);
./net/ipv4/ip_sockglue.c: I have no idea, how it will masquearde or NAT them (it is joke, joke :-)),

***funny***
./Documentation/input/iforce-protocol.txt:The encoding is a bit funny here: For coeffs, these are signed values. The
./arch/arm/mach-sa1100/generic.c:#include /* just for sched_clock() - funny that */
./arch/cris/arch-v32/kernel/signal.c: * user is trying some funny business.
./arch/cris/arch-v32/kernel/signal.c: * user is trying some funny business.
./arch/cris/kernel/time.c:#include /* just for sched_clock() - funny that */
./arch/i386/kernel/machine_kexec.c: /* The segment registers are funny things, they have both a
./arch/mips/mm/tlbex.c: * to the funny farm where code is beautiful all the time ...
./arch/parisc/math-emu/README:Linux coding style, please leave them in their funny format just in case
./arch/powerpc/kernel/vdso32/gettimeofday.S: * which may cause funny results if nsec goes negative... is that
./arch/powerpc/kernel/vdso64/gettimeofday.S: * which may cause funny results if nsec goes negative... is that
./arch/sparc/kernel/head.S:/* Ok, the PROM could have done funny things and apple cider could still
./arch/sparc64/kernel/pci_common.c: * act funny (ie. do not respond to memory space writes)
./arch/x86_64/kernel/machine_kexec.c: /* The segment registers are funny things, they have both a
./block/as-iosched.c: * The funny "absolute difference" math on the elapsed time is to handle
./drivers/cdrom/cdu31a.c: * disk. The funny thing is that these are sent to the drive in BCD, but the
./drivers/cdrom/sonycd535.c: * disk. The funny thing is that these are sent to the drive in BCD, but the
./drivers/net/acenic.c: * funny things on NICs with only 512KB SRAM
./drivers/net/eepro100.c: /* disable_irq is not very nice, but with the funny lockless design
./drivers/net/tulip/pnic2.c: printk(KERN_INFO "%s: funny autonegotiate result "
./drivers/net/wan/hostess_sv11.c: * is no funny garbage involved
./drivers/net/wan/sealevel.c: * is no funny garbage involved
./drivers/parport/daisy.c: funny state; let's try to reset them and see if
./drivers/pci/hotplug/acpiphp_glue.c: * the _DCK method can do funny things... and sometimes not
./drivers/scsi/sr_ioctl.c: * a function to read all sorts of funny cdrom sectors using the READ_CD
./drivers/serial/ip22zilog.c: /* This funny hack depends upon BRK_ABRT not interfering
./drivers/serial/sunzilog.c: /* This funny hack depends upon BRK_ABRT not interfering
./drivers/usb/serial/ftdi_sio.h: * - BaudDivisor is a fixed point number encoded in a funny way.
./drivers/video/cg6.c: * Brooktree is the video dac and is funny to program on the cg6.
./drivers/video/maxinefb.c:/* Handle the funny Inmos RamDAC/video controller ... */
./fs/sysv/super.c: * - Coherent FS by its funny fname/fpack field.
./include/asm-parisc/assembly.h: /* cr11 (sar) is a funny one. 5 bits on PA1.1 and 6 bit on PA2.0
./lib/zlib_deflate/deflate.c: /* The funny "do {}" generates better code on most compilers */
./mm/mempolicy.c: * The above limitation is why this routine has the funny name
./net/ax25/af_ax25.c: * We support a funny extension here so you can (as root) give any callsign
./net/ipv4/devinet.c: * funny address, so don't touch it since
./net/ipv4/inet_hashtables.c: * in hash table socket with a funny identity. */
./net/ipv6/inet6_hashtables.c: * in hash table socket with a funny identity. */
./sound/oss/sb_ess.c: * the same dma as audio 1: your ess changes into a funny echo machine.

***lovely***
./Documentation/video4linux/cx88/hauppauge-wintv-cx88-ir.txt:This data sheet (google search) seems to have a lovely description of the
./Documentation/video4linux/hauppauge-wintv-cx88-ir.txt:This data sheet (google search) seems to have a lovely description of the
./drivers/block/ps2esdi.c: other lovely fish out there... */
./drivers/mtd/chips/cfi_cmdset_0001.c: /* Tell the user about it in lots of lovely detail */
./drivers/mtd/chips/cfi_cmdset_0002.c: /* Tell the user about it in lots of lovely detail */
./drivers/mtd/chips/cfi_cmdset_0020.c: /* Tell the user about it in lots of lovely detail */
./fs/lockd/clntproc.c: * This is one of the lovely things about standards in the NFS area:
./include/asm-s390/signal.h:#ifndef __s390x__ /* lovely */

***beauty***
./drivers/net/wireless/Kconfig: The beauty of it is that a single set of tool can support all the
./drivers/s390/net/qeth_sys.c: /* for beauty reasons */

***who cares***
./arch/i386/kernel/cpu/cyrix.c: and X doesn't seem to support it either so who cares 8).
./arch/m68k/ifpsp060/src/fpsp.S:# shift stack frame "up". who cares about field.
./arch/m68k/ifpsp060/src/pfpsp.S:# shift stack frame "up". who cares about field.
./arch/powerpc/kernel/irq.c: /* That's not SMP safe ... but who cares ? */
./arch/ppc/kernel/time.c: * have overflowed long before that, so who cares. -- paulus
./arch/sparc64/kernel/time.c: /* this doesn't get week-day, who cares */
./drivers/atm/eni.c: /* JK for AAL5 trailer - AAL0 doesn't need it, but who cares ... */
./drivers/cdrom/sbpcd.c: probably not the right place, but who cares!
./drivers/char/genrtc.c: /* this doesn't get week-day, who cares */
./drivers/char/vt_ioctl.c: /* we mostly copy too much here (512bytes), but who cares ;) */
./drivers/media/video/vino.c: * but who cares ... */
./drivers/net/wan/dscc4.c: /* Maximal LBI clock divider (who cares ?) and whole GPIO range. */
./drivers/scsi/53c7xx.scr: ; TEMP and DSA are corrupt when we get here, but who cares!
./drivers/scsi/53c7xx_d.h_shipped: ; TEMP and DSA are corrupt when we get here, but who cares!
./fs/ntfs/super.c: /* This may be ugly but it results in pretty output so who cares. (-8 */
./fs/ocfs2/dlm/dlmmaster.c: /* this may or may not crash, but who cares.
./include/linux/netfilter_bridge/ebt_among.h: * Yes, it is a memory overhead, but in 2003 AD, who cares?
./include/linux/sunrpc/svc.h: * Linux limit; someone who cares more about NFS/UDP performance
./scripts/conmakehash.c: /* Massive overkill, but who cares? */

2 comments: