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

Linux lock_kernel()º¯ÊýµÄ·ÖÎö¡£

  ÕâÖ»ÊÇÔÝʱµÄ¼Ç¼£¬ÒÔºó»á°ÑËü¹éÀൽstart_kernel()º¯ÊýµÄ·ÖÎö¡£ÔÚ·ÖÎö֮ǰ£¬ÎÒÏÈҪ˵˵¼¸¸ö¸ÅÄî¡£
  ÄÚºËÇÀÕ¼£ºÔÚ2.6Äں˼ÓÈëÁËÇÀÕ¼µÄÄÜÁ¦£¬¾ÍÊÇ˵µ÷¶È³ÌÐòÓа취ÔÚÒ»¸öÄں˼¶µÄÈÎÎñÕýÔÚÖ´ÐеÄʱºò´Óе÷¶È¡£µ«ÊDZØÐëÒª±£Ö¤ÖØе÷¶ÈÒª°²È«£¬ÕâÑù¾ÍÒª¿¿Ò»°ÑËøÀ´±£Ö¤ÁË¡£
  ¼ÆÊýÆ÷£¨thread_info.[reempt_count£©£ºÆäʵҲ¿ÉÒÔ°ÑËû½Ð³ÉËøµÄ£¬ËüµÄ³õÖµ¶¨ÒåΪ0£¬Ã¿µ±Ê¹ÓÃËøµÄʱºò¼Ó1.
  ºÃÁË£¬ÎÒÃÇÏÖÔÚÀ´¿´¿´lock_kernel()µÄ¾ßÌå´úÂëÀ²£¨2.6.10°æ±¾µÄ£©
 #ifndef __LINUX_SMPLOCK_H
#define __LINUX_SMPLOCK_H
#include <linux/config.h>
#include <linux/sched.h>
#include <linux/spinlock.h>
#ifdef CONFIG_LOCK_KERNEL
#define kernel_locked()  (current->lock_depth >= 0)
extern int __lockfunc get_kernel_lock(void);
extern void __lockfunc put_kernel_lock(void);
/*
 * Release/re-acquire global kernel lock for the scheduler
 */
#define release_kernel_lock(tsk) do {   \
 if (unlikely((tsk)->lock_depth >= 0)) \
  put_kernel_lock();  \
} while (0)
/*
 * Non-SMP kernels will never block on the kernel lock,
 * so we are better off returning a constant zero from
 * reacquire_kernel_lock() so that the compiler can see
 * it at compile-time.
 */
#ifdef CONFIG_SMP
#define return_value_on_smp return
#else
#define return_value_on_smp
#endif
static inline int reacquire_kernel_lock(struct task_struct *task)
{
 if (unlikely(task->lock_depth >= 0))
  return_value_on_smp get_kernel_lock();
 return 0;
}
extern void __lockfunc lock_kernel(void) __acquires(kernel_lock);
extern void __lockfunc unlock_kernel(void) __releases(kernel_lock);
#else
#define lock_kernel()    do { } while(0)
#define unlock_kernel()    do { } while(0)
#define release_kernel_lock(task)  do { } while(0)
#define reacquire_kernel_lock(task)  0
#define kernel_locked()    1
#


Ïà¹ØÎĵµ£º

ǶÈëʽLinuxϵͳµÄͼÐÎÓû§½çÃæ

µ±½ñ£¬ÔÚÉè¼ÆǶÈëʽ²úÆ·µÄͼÐÎÓû§½çÃæʱ£¬Óõ½µÄ¹¤¾ßÖ÷ÒªÓÐÒÔϼ¸ÖÖ£º
1. Qt/Embedded
QtÊÇTrolltech¹«Ë¾·¢²¼µÄÒ»¸ö¿çƽ̨µÄC++ͼÐνçÃæÓ¦ÓóÌÐò¿ò¼Ü¡£Ëüʵ¼ÊÉÏÊÇÒ»¸öÀà¿â£¬ÀïÃæ°üÀ¨ÁË´óÁ¿µÄ¿ÉÖØÓõÄÀ࣬ÆäÖмÈÓа´Å¥¡¢´°¿ÚµÈÕâЩ¿É¼ûÀ࣬ҲÓж¨Ê±Æ÷ÕâÑùµÄ²»¿É¼ûÀàºÍһЩ³éÏóÀà¡£QtÊÇÍêÈ«ÃæÏò¶ÔÏó£¬ÓµÓÐÁ¼ºÃµÄÀ©Õ¹ÐÔÓëÎÈ ......

Redhat Linux oracle 10g em °´Å¥ÂÒÂë½â¾ö

ÍøÉÏÓкܶà×ÊÁÏ£¬Ò²ÊDzο¼eygleµÄÎĵµ¡£
OS : Redhat AS 4 U5
DB : Oracle 10.2.0.3
1.ÐÞ¸Äjdk ÏÂÃæµÄ×ÖÌå¡£
[oracle@rac2 db_1]$ cd $ORACLE_HOME/jdk/jre/lib/
[oracle@rac2 lib]$ mv font.properties font.properties_bak
[oracle@rac2 lib]$
[oracle@rac2 lib]$ cp font.properties.zh_CN.Redhat font.propertie ......

Linux²Ù×÷ϵͳI2CÇý¶¯¼Ü¹¹

1£¬LinuxµÄI2CÇý¶¯¼Ü¹¹¸ÅÀÀ
      LinuxÖÐI2C×ÜÏßµÄÇý¶¯·ÖΪÁ½¸ö²¿·Ö£¬×ÜÏßÇý¶¯£¨BUS£©ºÍÉ豸Çý¶¯£¨DEVICE£©¡£ÆäÖÐ×ÜÏßÇý¶¯µÄÖ°Ôð£¬ÊÇΪϵͳÖÐÿ¸öI2C×ÜÏßÔö¼ÓÏàÓ¦µÄ¶Áд·½·¨£¨±ÈÈ粻ͬµÄÖ÷оƬ¼¯³ÉµÄI2C¿ØÖÆÆ÷£©¡£µ«ÊÇ×ÜÏßÇý¶¯±¾Éí²¢²»»á½øÐÐÈκεÄͨѶ£¬ËüÖ»ÊÇ´æÔÚÔÚÄÇÀµÈ´ýÉ豸Çý¶¯µ÷ÓÃÆäº ......

LinuxÈçºÎ×ß½øѧУ´óÃÅ£¿

     Èç½ñ£¬ÖÐСѧÀïÃ漸ºõÈ«ÊÇXPѧÉú£¬±Ä±ÄÌøÌø£¬Linux£¨¼·£©½øѧУ¼¸ºõÎÞÃÅ¡£ÄÇô£¬ÎÒÃǸÃÔõô°ìÄØ£¿ÄÜ·ñ²»ÆƶøÁ¢£¿
      ×òÌìÉÏÎ磬ÎÒÈ¥±±¾©ÊÐÓйز¿ÃżûһλÀÏÅóÓÑ£¬Ïë̸̸Õâ¸öÎÊÌâ¡£µ±Ç°£¬ÔÚÎÒ¹úÖÐСѧ£¬Linux²»Èë½Ìѧ´ó¸Ù£¬µ«ÊÇ£¬×÷Ϊ¿ÎÍâ»î¶¯ÄÚÈÝ»¹ÊÇ¿ÉÒԵġ£Linux½ ......

LinuxÆô¶¯¹ý³ÌÖÐÓ²¼þÄ£¿éµÄ¼ÓÔØ

Ç°ÑÔ£ºÎÒ¾õµÃÎÒµÄÎÄÕÂÏà¶ÔÀ´Ëµ¶¼ÊDZȽÏdzÏԵġ£Ò»Ð©³õѧÕß¿ÉÒÔ¿´¿´£¬¶ÔÓÚ¸ßÊÖÀ´Ëµ£¬Èç¹ûÄãÃDz»ÁßØÄʱ¼äµÄ»°£¬Ï£ÍûÒ²ÄÜ°ïÎÒ¿´¿´£¬Ö¸µãÒ»ÏÂÆäÖеĴíÎó¡£ÕâÒ²ÊÇÎÒµ½ÕâÀïÀ´ºÍ´ó¼Ò½»Á÷µÄÄ¿µÄ¡£
ÔĶÁLinuxÄÚºËÆô¶¯´úÂëµÄÖ±½Ó¶¯Á¦ÊÇÎÒÏë±àдRTL8019ASµÄÍø¿¨Çý¶¯³ÌÐò£¨2.4.18ÄÚºËÖ»Ö§³ÖÁËCS8900A£©¡£¼ÈȻҪдÇý¶¯£¬ÎÒ¾ÍÏëÖªµÀËüÊÇÔ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ