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

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ÏÂÒ»¿î²»´íµÄ±³µ¥´ÊÈí¼þ£¨reciteword£©

×î½üÔÚ×¼±¸gre¿¼ÊÔ£¬ÓÚÊÇÕÒÁËÕÒlinuxϵı³µ¥´ÊÈí¼þ£¬¾ÍÊÇÕâ¸öexciteword£¬ºÃÏñÊǸúÇáÇáËÉËɱ³µ¥´Ê²î²»¶à£¬Í¦ºÃÓõġ£
°²×°·½·¨£º
ubuntuÏÂ×î¼òµ¥µÄ·½·¨¾ÍÊÇapt-get installÁË¡£
»¹¿ÉÒÔ´Ó¹ÙÍøÉÏÏÂÔØrpm°ü£¬Ê¹ÓÃalienתΪdeb°ü¡£alien¹¤¾ßûÓеϰ¿ÉÒÔʹÓÃapt-get install alienÀ´ÏÂÔØ¡£×ª»¯Îªdeb°üºó£¬Ë«»÷×Ô¶¯°²×°¾Í¿ÉÒ ......

LINUX CVSÌí¼ÓÓû§shell

vi adduser.sh È»ºó°ÑÈçÏ´úÂëÌùÈë¡£±£´æµ½CVSROOTĿ¼Ï¡£
#!/bin/bash
#add cvs users
while [ -n "$(echo $1|grep '^_')"];
do
case $1 in
-u) param=$2
echo -e "$param:\c" >>passwd
shift ;;
-p) param=$2
echo -e `./passwdgen.pl $param`":cvsroot" >> passwd;;
*)
exit 1
esac
shift
......

Linux ¼¼ÇÉ£ºÈýø³ÌÔÚºǫ́¿É¿¿ÔËÐеļ¸ÖÖ·½·¨

¼¶±ð£º Öм¶
Éê Òã (shenyyi@cn.ibm.com), Èí¼þ¹¤³Ìʦ, IBM ÖйúÈí¼þ¿ª·¢ÖÐÐÄ
2008 Äê 5 ÔÂ 29 ÈÕ
ÏëÈýø³ÌÔÚ¶Ï¿ªÁ¬½ÓºóÒÀÈ»±£³ÖÔËÐУ¿Èç¹û¸Ã½ø³ÌÒѾ­¿ªÊ¼ÔËÐÐÁ˸ÃÈçºÎ²¹¾È£¿ Èç¹ûÓдóÁ¿ÕâÀàÐèÇóÈçºÎ¼ò»¯²Ù×÷£¿
ÎÒÃǾ­³£»áÅöµ½ÕâÑùµÄÎÊÌ⣬Óà telnet/ssh µÇ¼ÁËÔ¶³ÌµÄ Linux ·þÎñÆ÷£¬ÔËÐÐÁËһЩºÄʱ½Ï³¤µÄÈÎÎñ£¬ ½á¹ûÈ´ ......

Linux ÏÂSVNµÄʹÓÃ

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
¾ßÌåÓõ½±ðµÄÔÙ˵£¬½ñÌì¸Õ×°ÉÏ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ