Siempre me ha llamado la atención que, si bien los nombres de los adaptadores de red en máquinas Unix/Linux suelen ser del tipo eth0
, lan0
, etc., en las máquinas SPARC con Solaris a las que he metido mano últimamente aparecen adaptadores de nombre hme0
, hme1
, etc.
El caso es que me acaban de comentar que hme
en realidad corresponde a las siglas de Happy Meal Ethernet. Al parecer, la historia cuenta que a un controlador anterior (posiblemente el de 10Mbps) le pusieron el nombre Big MAC Ethernet, donde MAC hacía referencia a Media Access Control. Para seguir con la broma, y con la merienda en McDonalds, cuando diseñaron la versión de 100Mbps, otro simpático ingeniero de Sun decidió nombrarlo Happy Meal.
A raíz de esto, y echando un vistazo en Google, me he encontrado con el siguiente fragmento de código en los fuentes de Linux (concretamente en el driver para los adaptadores de marras, sunhme.c
:
...
528 static void happy_meal_tcvr_write(struct happy_meal *hp,
529 void __iomem *tregs, int reg,
530 unsigned short value)
531 {
532 int tries = TCVR_WRITE_TRIES;
533
534 ASD(("happy_meal_tcvr_write: reg=0x%02x value=%04x\n", reg, value));
535
536 /* Welcome to Sun Microsystems, can I take your order please? */
537 if (!(hp->happy_flags & HFLAG_FENABLE)) {
538 happy_meal_bb_write(hp, tregs, reg, value);
539 return;
540 }
541
542 /* Would you like fries with that? */
543 hme_write32(hp, tregs + TCVR_FRAME,
544 (FRAME_WRITE | (hp->paddr << 23) |
545 ((reg & 0xff) << 18) | (value & 0xffff)));
546 while (!(hme_read32(hp, tregs + TCVR_FRAME) & 0x10000) && --tries)
547 udelay(20);
548
549 /* Anything else? */
550 if (!tries)
551 printk(KERN_ERR "happy meal: Aieee, transceiver MIF write bolixed\n");
552
553 /* Fifty-two cents is your change, have a nice day. */
554 }
...
En fin, cosas veredes…