LinuxÉ豸Çý¶¯±à³ÌÖ®¶¨Ê±Æ÷
LinuxÉ豸Çý¶¯±à³ÌÖ®¶¨Ê±Æ÷
2006-10-26 13:34
×÷Õߣº
³ö´¦£ºLinux
ÔðÈα༣º·½ÖÛ
Ïà¹Ø×¨Ì⣺
LinuxÉ豸Çý¶¯³ÌÐò¿ª·¢ÈëÃÅ
¡¡¡¡LinuxÄÚºËÖж¨ÒåÁËÒ»¸ötimer_list½á¹¹£¬ÎÒÃÇÔÚÇý¶¯³ÌÐòÖпÉÒÔÀûÓÃÖ®£º
struct timer_list {
¡¡struct list_head list;
¡¡unsigned long expires; //¶¨Ê±Æ÷µ½ÆÚʱ¼ä
¡¡unsigned long data; //×÷Ϊ²ÎÊý±»´«È붨ʱÆ÷´¦Àíº¯Êý
¡¡void (*function)(unsigned long);
};
¡¡¡¡ÏÂÃæÊǹØÓÚtimerµÄAPIº¯Êý£º
¡¡¡¡Ôö¼Ó¶¨Ê±Æ÷
void add_timer(struct timer_list * timer);
¡¡¡¡É¾³ý¶¨Ê±Æ÷
int del_timer(struct timer_list * timer);
¡¡¡¡
¡¡¡¡Ð޸Ķ¨Ê±Æ÷µÄexpire
int mod_timer(struct timer_list *timer, unsigned long expires);
¡¡¡¡Ê¹Óö¨Ê±Æ÷µÄÒ»°ãÁ÷³ÌΪ£º
¡¡¡¡£¨1£©timer¡¢±àдfunction£»
¡¡¡¡£¨2£©ÎªtimerµÄexpires¡¢data¡¢function¸³Öµ£»
¡¡¡¡£¨3£©µ÷ÓÃadd_timer½«timer¼ÓÈëÁÐ±í£»
¡¡¡¡£¨4£©ÔÚ¶¨Ê±Æ÷µ½ÆÚʱ£¬function±»Ö´ÐУ»
¡¡¡¡£¨5£©ÔÚ³ÌÐòÖÐÉæ¼°timer¿ØÖƵĵط½Êʵ±µØµ÷ÓÃdel_timer¡¢mod_timerɾ³ýtimer»òÐÞ¸ÄtimerµÄexpires¡£
¡¡¡¡ÎÒÃÇ¿ÉÒԲο¼drivers\char\keyboard.cÖмüÅ̵ÄÇý¶¯ÖйØÓÚtimerµÄ²¿·Ö£º
…
#include <linux/timer.h>
…
static struct timer_list key_autorepeat_timer =
{
¡¡function: key_callback
};
static void
kbd_processkeycode(unsigned char keycode, char up_flag, int autorepeat)
{
¡¡char raw_mode = (kbd->kbdmode == VC_RAW);
¡¡if (up_flag) {
¡¡¡¡rep = 0;
¡¡¡¡if(!test_and_clear_bit(keycode, key_down))
¡¡¡¡¡¡up_flag = kbd_unexpected_up(keycode);
¡¡} else {
¡¡¡¡rep = test_and_set_bit(keycode, key_down);
¡¡¡¡/* If the keyboard autorepeated for us, ignore it.
¡¡¡¡* We do our own autorepeat processing.
¡¡¡¡*/
¡¡¡¡if (rep && !autorepeat)
¡¡¡¡¡¡return;
¡¡}
¡¡if (kbd_repeatkeycode == keycode || !up_flag || raw_mode) {
¡¡¡¡kbd_repeatkeycode = -1;
¡¡¡¡del_timer(&key_autorepeat_timer);
¡¡}
¡¡…
¡¡/*
¡¡* Calculate the next time when we have to do some autorepeat
¡¡* processing. Note that we do not do autorepeat processing
¡¡* while in raw mode but we do do autorepeat processing in
¡¡* medium raw mode.
Ïà¹ØÎĵµ£º
LinuxÍø¿¨µÄ¶Áд±à³Ìzz
LinuxϵͳµÄËùÓÐÉ豸¶¼ÊÇÒÔÎļþµÄÐÎʽ´æÔڵģ¬ËùÒÔ¶ÔϵͳµÄ²Ù×÷¿ÉÒÔת»»Îª¶ÔÎļþµÄ²Ù×÷¡£±¾³ÌÐòʵÏÖ¶ÔÍø¿¨Õâ¸öÓ²¼þÉ豸½øÐжÁÈ¡²Ù×÷£¬¼´Ò²ÊǶÔÉ豸µÄÎļþ½øÐжÁд²Ù×÷¡£´úÂë¿´ËÆÂé·³£¬µ«È´²»¸´ÔÓ¡£
Ö÷ÒªµÄϵͳº¯ÊýÓУºsocket(),ioctl(),memcpy(),strcpy()¡£
Á½¸ö¸´ÔӵĽṹÌ壺sockaddr_in,ifreq¡ ......
ºìÆì×ÀÃæLinux4.1ϰ²×°ºÍÅäÖÃJSP·þÎñÆ÷È«¹¥ÂÔ
ÕâÁ½ÌìÊÔ×ÅÔÚºìÆìLinux×ÀÃæ°æ4.1ϰ²×°WEB·þÎñÆ÷£¬Òѳɹ¦°²×°£¬ÏÖ°ÑÎҵݲװ¹ý³Ì½éÉÜÈçÏ£¬ÒÔ¸øÓÐÏàËÆÐèÇóµÄÍøÓѲο¼¡£
ÎҵݲװҪÇóÊÇÖ§³ÖJSP¡¢html¡¢htmÍøÒ³£¬ËùÒÔÑ¡ÓÃJDK1.5.0+Tomcat5.5.4+mySQL4.1.7£¬ÕâЩ¶¼Êǵ±Ç°¸÷Èí¼þ×îеÄÎȶ¨°æ±¾£¨·Ç²âÊ԰棩¡£ÔÝûÓа²×°Apacheº ......
¡¾¼ò½é¡¿ÈçºÎ±àдlinuxÏÂnand flashÇý¶¯-1
version: 1.0
date:20090721
Author£ºcrifan
Mail:green-waste(At)163.com
¡¾±àдÇý¶¯Ö®Ç°ÒªÁ˽âµÄ֪ʶ¡¿
1. Ó²¼þÌØÐÔ£º
¡¾FlashµÄÓ²¼þʵÏÖ»úÖÆ¡¿
FlashÈ«Ãû½Ð×öFlash Memory£¬ÊôÓÚ·ÇÒ×ʧÐÔ´æ´¢É豸(Non-volatile Memory Devi ......
Linux ÏÂSVNµÄʹÓÃ
Ò»¡¢install
sudo aptitude install subversion
¶þ¡¢checkout
sudo svn --username fpzeng co https://********/
***
It's necessary to replace my username fpzeng with yours.
Èý¡¢update
sudo svn update
¾ßÌåÓõ½±ðµÄÔÙ˵£¬½ñÌì¸Õ×°ÉÏ ......
\d £º´ú±íÈÕÆÚ£¬¸ñʽΪweekday month date£¬ÀýÈ磺"Mon Aug 1"
\H £ºÍêÕûµÄÖ÷»úÃû³Æ¡£ÀýÈ磺ÎҵĻúÆ÷Ãû³ÆÎª£ºfc4.linux£¬ÔòÕâ¸öÃû³Æ¾ÍÊÇfc4.linux
\h £º½öÈ¡Ö÷»úµÄµÚÒ»¸öÃû×Ö£¬ÈçÉÏÀý£¬ÔòΪfc4£¬.linuxÔò±»Ê¡ÂÔ
\t £ºÏÔʾʱ¼äΪ24Сʱ¸ñʽ£¬È磺HH£ºMM£ºSS
\T £ºÏÔʾʱ¼äΪ12Сʱ¸ñʽ
\A £ºÏÔʾʱ¼äΪ24 ......