[24147] 2015-07-30_谈谈为Linux内核写驱动的编码规范

文档创建者:s7ckTeam
浏览次数:0
最后更新:2025-01-18
2015-07-30_谈谈为Linux内核写驱动的编码规范   L i n u x   L i n u x   2 0 1 5 - 0 7 - 3 0 L i n u x L i n u x c o d i n g   s t y l e C o d i n g S t y l e   d r i v e r s / s t a g i n g c o d i n g   s t y l e T O D O " c h e c k p a t c h . p l   f i x e s " c h e c k p a t c h . p l c o d i n g   s t y l e c o d i n g   s t y l e M i c r o s o f t L i n u s ( b r a i n   d a m a g e d ) L i n u s c o d i n g   s t y l e c o d i n g   s t y l e 使 s c r i p t s / c h e c k p a t c h . p l c h e c k p a t c h p a t c h - f ( p r i n t _ m s g . c )
c o d i n g   s t y l e c h e c k p a t c h . p l L i n u x c o d i n g   s t y l e s w i t c h c a s e 便 s c r i p t s / L i n d e n t s c r i p t s L i n d e n t 使 L i n d e n t i n d e n t L i n d e n t 1 .   v o i d   p r i n t _ m s g ( i n t   a ) 2 .   { 3 .           s w i t c h   ( a )   { 4 .                   c a s e   1 : 5 .                           p r i n t f ( " a   = =   1 n " ) ; 6 .                           b r e a k ; 7 .     8 .                   c a s e   2 : 9 .                           p r i n t f ( " a   = =   2 n " ) ; 1 0 .                           b r e a k ; 1 1 .           } 1 2 .   } 1 .   s c r i p t s / c h e c k p a t c h . p l   - f     p r i n t _ m s g . c 1 .   E R R O R :   s w i t c h   a n d   c a s e   s h o u l d   b e   a t   t h e   s a m e   i n d e n t 2 .   # 3 :   F I L E :   s w i t c h . c : 3 : 3 .   +               s w i t c h   ( a )   { 4 .   +                               c a s e   1 : 5 .   [ . . . ] 6 .   +                               c a s e   2 : 7 .     8 .   t o t a l :   1   e r r o r s ,   0   w a r n i n g s ,   1 2   l i n e s   c h e c k e d 9 .     1 0 .   s w i t c h . c   h a s   s t y l e   p r o b l e m s ,   p l e a s e   r e v i e w .     I f   a n y   o f   t h e s e   e r r o r s 1 1 .   a r e   f a l s e   p o s i t i v e s   r e p o r t   t h e m   t o   t h e   m a i n t a i n e r ,   s e e 1 2 .   C H E C K P A T C H   i n   M A I N T A I N E R S . 1 .   s c r i p t s / L i n d e n t   p r i n t _ m s g . c
s e d s e d L i n u x c o d i n g   s t y l e T a b s e d K a t e T a b s e d 1 K c o n f i g 使 T a b T a b 8 2 s w i t c h   . . .   c a s e   . . . s w i t c h c a s e 3 使 K & R 1 .   v o i d   p r i n t _ m s g ( i n t   a ) 2 .   { 3 .           s w i t c h   ( a )   { 4 .           c a s e   1 : 5 .                   p r i n t f ( " a   = =   1 n " ) ; 6 .                   b r e a k ; 7 .     8 .           c a s e   2 : 9 .                   p r i n t f ( " a   = =   2 n " ) ; 1 0 .                   b r e a k ; 1 1 .           } 1 2 .   } 1 .   s e d   ' s / [   t ] * $ / / g '   y o u r _ c o d e . c
使 4 i f ,   s w i t c h ,   c a s e ,   f o r ,   d o ,   w h i l e 5 s i z e o f ,   t y p e o f ,   a l i g n o f ,   o r   _ _ a t t r i b u t e _ _ 6 7 =   +   -   <   >   *   /   %   |   &   ^   < =   > =   = =   ! =   ?   : 1 .   i n t   f u n c t i o n ( i n t   x ) 2 .   { 3 .                   b o d y   o f   f u n c t i o n 4 .   } 1 .   i f   ( x   i s   t r u e )   { 2 .                   w e   d o   y 3 .   } 1 .   i f   ( c o n d i t i o n ) 2 .                   a c t i o n ( ) ; 1 .   i f   ( c o n d i t i o n )   { 2 .                   d o _ t h i s ( ) ; 3 .                   d o _ t h a t ( ) ; 4 .   }   e l s e   { 5 .                   o t h e r w i s e ( ) ; 6 .   } 1 .   i f   ( s o m e t h i n g ) 1 .   s i z e o f ( s t r u c t   f i l e ) 1 .   s i z e o f (   s t r u c t   f i l e   )
8 &   *   +   -   ~   !   s i z e o f   t y p e o f   a l i g n o f   _ _ a t t r i b u t e _ _   d e f i n e d 9 + + - - 1 0 . - > 1 1 1 2 使 C 8 9 / *   . . .   * / C 9 9 / /   . . . 1 3 K c o n f i g 1 4 c o n f i g T a b h e l p 1 5 d o   . .   w h i l e 1 .   / * 2 .   *   T h i s   i s   t h e   p r e f e r r e d   s t y l e   f o r   m u l t i - l i n e 3 .   *   c o m m e n t s   i n   t h e   L i n u x   k e r n e l   s o u r c e   c o d e . 4 .   *   P l e a s e   u s e   i t   c o n s i s t e n t l y . 5 .   * 6 .   *   D e s c r i p t i o n :   A   c o l u m n   o f   a s t e r i s k s   o n   t h e   l e f t   s i d e , 7 .   *   w i t h   b e g i n n i n g   a n d   e n d i n g   a l m o s t - b l a n k   l i n e s . 8 .   * / 1 .   c o n f i g   A U D I T 2 .                   b o o l   " A u d i t i n g   s u p p o r t " 3 .                   d e p e n d s   o n   N E T 4 .                   h e l p 5 .                       E n a b l e   a u d i t i n g   i n f r a s t r u c t u r e   t h a t   c a n   b e   u s e d   w i t h   a n o t h e r 6 .                       k e r n e l   s u b s y s t e m ,   s u c h   a s   S E L i n u x   ( w h i c h   r e q u i r e s   t h i s   f o r 7 .                       l o g g i n g   o f   a v c   m e s s a g e s   o u t p u t ) .   D o e s   n o t   d o   s y s t e m - c a l l 8 .                       a u d i t i n g   w i t h o u t   C O N F I G _ A U D I T S Y S C A L L . 1 .   # d e f i n e   m a c r o f u n ( a ,   b ,   c )                               2 .   d o   {                                                                         3 .                   i f   ( a   = =   5 )                                           4 .                                   d o _ t h i s ( b ,   c ) ;                     5 .   }   w h i l e   ( 0 )
1 6 0 - E x x x 1 0 1   D o c u m e n t a t i o n / C o d i n g S t y l e 2   h t t p : / / w w w . k r o a h . c o m / l i n u x / t a l k s / o l s _ 2 0 0 2 _ k e r n e l _ c o d i n g s t y l e _ t a l k / h t m l / 1 .   d o _ s o m e t h i n g ( ) 1 .   s o m e t h i n g _ i s _ p r e s e n t ( )

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则