Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

Linux USBÇý¶¯¿ò¼Ü·ÖÎöÏÂ

probeÊÇusb×Óϵͳ×Ô¶¯µ÷ÓõÄÒ»¸öº¯Êý£¬ÓÐUSBÉ豸½Óµ½Ó²¼þ¼¯Ï߯÷ʱ£¬usb×Óϵͳ»á¸ù¾Ýproduction IDºÍvendor IDµÄ×éºÏ»òÕßÉ豸µÄclass¡¢subclass¸úprotocolµÄ×éºÏÀ´Ê¶±ðÉ豸µ÷ÓÃÏàÓ¦Çý¶¯³ÌÐòµÄprobe£¨Ì½²â£©º¯Êý£¬¶ÔÓÚskeletonÀ´Ëµ£¬¾ÍÊÇskel_probe¡£ÏµÍ³»á´«µÝ¸øÌ½²âº¯ÊýÒ»¸öusb_interface *¸úÒ»¸östruct usb_device_id *×÷Ϊ²ÎÊý¡£ËûÃÇ·Ö±ðÊǸÃUSBÉ豸µÄ½Ó¿ÚÃèÊö£¨Ò»°ã»áÊǸÃÉ豸µÄµÚ0ºÅ½Ó¿Ú£¬¸Ã½Ó¿ÚµÄĬÈÏÉèÖÃÒ²ÊǵÚ0ºÅÉèÖ㩸úËüµÄÉ豸IDÃèÊö£¨°üÀ¨Vendor ID¡¢Production IDµÈ£©¡£probeº¯Êý±È½Ï³¤£¬ÎÒÃÇ·Ö¶ÎÀ´·ÖÎöÕâ¸öº¯Êý£º
dev->udev = usb_get_dev(interface_to_usbdev(interface));
dev->interface = interface;
    ÔÚ³õʼ»¯ÁËһЩ×ÊÔ´Ö®ºó£¬¿ÉÒÔ¿´µ½µÚÒ»¸ö¹Ø¼üµÄº¯Êýµ÷Ó×—interface_to_usbdev¡£ËûͬuoÒ»¸öusb_interfaceÀ´µÃµ½¸Ã½Ó¿ÚËùÔÚÉ豸µÄÉ豸ÃèÊö½á¹¹¡£±¾À´£¬ÒªµÃµ½Ò»¸öusb_deviceÖ»ÒªÓÃinterface_to_usbdev¾Í¹»ÁË£¬µ«ÒòΪҪÔö¼Ó¶Ô¸Ãusb_deviceµÄÒýÓüÆÊý£¬ÎÒÃÇÓ¦¸ÃÔÚ×öÒ»¸öusb_get_devµÄ²Ù×÷£¬À´Ôö¼ÓÒýÓüÆÊý£¬²¢ÔÚÊÍ·ÅÉ豸ʱÓÃusb_put_devÀ´¼õÉÙÒýÓüÆÊý¡£ÕâÀïÒª½âÊ͵ÄÊÇ£¬¸ÃÒýÓüÆÊýÖµÊǶԸÃusb_deviceµÄ¼ÆÊý£¬²¢²»ÊǶԱ¾Ä£¿éµÄ¼ÆÊý£¬±¾Ä£¿éµÄ¼ÆÊýÒªÓÉkrefÀ´Î¬»¤¡£ËùÒÔ£¬probeÒ»¿ªÊ¼¾ÍÓгõʼ»¯kref¡£ÊÂʵÉÏ£¬kref_init²Ù×÷²»µ¥Ö»³õʼ»¯kref£¬»¹½«ÆäÖÃÉè³É1¡£ËùÒÔÔÚ³ö´í´¦Àí´úÂëÖÐÓÐkref_put£¬Ëü°ÑkrefµÄ¼ÆÊý¼õ1£¬Èç¹ûkref¼ÆÊýÒѾ­Îª0£¬ÄÇôkref»á±»ÊÍ·Å¡£kref_putµÄµÚ¶þ¸ö²ÎÊýÊÇÒ»¸öº¯ÊýÖ¸Õ룬ָÏòÒ»¸öÇåÀíº¯Êý¡£×¢Ò⣬¸ÃÖ¸Õë²»ÄÜΪ¿Õ£¬»òÕßkfree¡£¸Ãº¯Êý»áÔÚ×îºóÒ»¸ö¶ÔkrefµÄÒýÓÃÊÍ·Åʱ±»µ÷Óã¨Èç¹ûÎÒµÄÀí½â²»×¼È·£¬ÇëÖ¸Õý£©¡£ÏÂÃæÊÇÄÚºËÔ´ÂëÖеÄÒ»¶Î×¢Êͼ°´úÂ룺
/**
 * kref_put - decrement refcount for object.
* @kref: object.
 * @release: pointer to the function that will clean up the object when the
 *        last reference to the object is released.
 *        This pointer is required, and it is not acceptable to pass kfree
 *        in as this function.
 *
 * Decrement the refcount, and if 0, call release().
 * Return 1 if the object was removed, otherwise return 0.  Beware


Ïà¹ØÎĵµ£º

Linux 0.12ÄÚºË

LinuxʹÓôÓ1970Äê1ÔÂ1ÈÕ0ʱ0·Ö0ÃëÆðµ½¿ª»úʱ¾­¹ýµÄÃëÊý×÷Ϊ¿ª»úʱ¼ä, ÊÇÔÚmain.cºÍmktime.cÖнøÐгõʼ»¯µÄ.
1. linux/init/main.c
/*
 * read current time from CMOS.
 * ·ÃÎÊCMOSÐèҪͨ¹ý¶Ë¿Ú0x70, 0x71½øÐÐ.
 * ¶ÁÊý¾Ýʱ,ÏÈÓÃOUTÖ¸ÁîÏò0x70·¢ËÍÒª¶ÁÈ¡×Ö½ÚµÄÆ«ÒÆÎ»ÖÃÖµ, È»ºóÓÃINÖ¸Áî´Ó0x71¶ÁÊý¾Ý. ......

Linux·¢Ëͺ¯Êýdev_queue_xmit·ÖÎö

µ±Éϲã×¼±¸ºÃÒ»¸ö°üÖ®ºó£¬½»¸øÏÂÃæÕâ¸öº¯Êý´¦Àí
int dev_queue_xmit(struct sk_buff *skb)
{
struct net_device *dev = skb->dev;
struct netdev_queue *txq;
struct Qdisc *q;
int rc = -ENOMEM;
/* GSO will handle the following emulations directly. */
if (netif_needs_gso(dev, skb))
goto gso; ......

linuxÃæÊÔÌâ²Î¿¼´ð°¸

Ò»£®Ìî¿ÕÌ⣺
1. ÔÚLinuxϵͳÖУ¬ÒÔ Îļþ ·½Ê½·ÃÎÊÉ豸 ¡£
2. LinuxÄÚºËÒýµ¼Ê±£¬´ÓÎļþ /etc/fstab ÖжÁȡҪ¼ÓÔØµÄÎļþϵͳ¡£
3. LinuxÎļþϵͳÖÐÿ¸öÎļþÓà i½Úµã À´±êʶ¡£
4. È«²¿´ÅÅÌ¿éÓÉËĸö²¿·Ö×é³É£¬·Ö±ðΪÒýµ¼¿é ¡¢×¨ÓÃ¿é ¡¢ i½Úµã±í¿é ºÍÊý¾Ý´æ´¢¿é¡£
5. Á´½Ó·ÖΪ£º Ó²Á´½Ó ºÍ ·ûºÅÁ´½Ó ¡£
6. ³¬¼¶¿é°üº¬ÁËi½ ......

30µÀǶÈëʽLinuxÄÚºËÈí¼þ¿ª·¢µÄ²âÊÔÌâ


Èç¹ûÄãÄÜÕýÈ·»Ø´ðÒÔÏÂÎÊÌâ²¢Éî¿ÌÀí½âÏà¹ØÖªÊ¶µãÔ­Àí£¬ÄÇôÄã¿ÉÒÔËãµÃÉÏ»ù±¾ºÏ¸ñµÄLinuxÄں˿ª·¢¹¤³Ìʦ£¬ÊÔÊÔ¿´£¡
1)LinuxÖÐÖ÷ÒªÓÐÄļ¸ÖÖÄÚºËËø£¿
2)LinuxÖеÄÓû§Ä£Ê½ºÍÄÚºËģʽÊÇʲôº¬Ò⣿
3)ÔõÑùÉêÇë´ó¿éÄÚºËÄڴ棿
4)Óû§½ø³Ì¼äͨÐÅÖ÷ÒªÄļ¸ÖÖ·½Ê½£¿
5)ͨ¹ý»ï°éϵͳÉêÇëÄÚºËÄÚ´æµÄº¯ÊýÓÐÄÄЩ£¿
 
6)Í ......

linuxÏµĹ²Ïí¿â£¨¶¯Ì¬¿â£©ºÍ¾²Ì¬¿â


1.ʲôÊÇ¿â
ÔÚwindowsƽ̨ºÍlinuxƽ̨϶¼´óÁ¿´æÔÚ×ſ⡣
±¾ÖÊÉÏÀ´Ëµ¿âÊÇÒ»ÖÖ¿ÉÖ´ÐдúÂëµÄ¶þ½øÖÆÐÎʽ£¬¿ÉÒÔ±»²Ù×÷ÏµÍ³ÔØÈëÄÚ´æÖ´ÐС£
ÓÉÓÚwindowsºÍlinuxµÄ±¾Öʲ»Í¬£¬Òò´Ë¶þÕß¿âµÄ¶þ½øÖÆÊDz»¼æÈݵġ£
±¾ÎĽöÏÞÓÚ½éÉÜlinuxϵĿ⡣
2.¿âµÄÖÖÀà
linuxϵĿâÓÐÁ½ÖÖ£º¾²Ì¬¿âºÍ¹²Ïí¿â£¨¶¯Ì¬¿â£©¡£
¶þÕߵIJ»Í¬µãÔÚÓÚ´úÂë ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ