커널 소스에서 본 Header 파일 내용이 무엇인가요?
글쓴이: chpjy / 작성시간: 화, 2005/11/15 - 10:40오전
//////////////////////////////////////////////////////////////////////////////// // // // Internal macros // // // //////////////////////////////////////////////////////////////////////////////// #define _F_START(f) (0 ? f) #define _F_END(f) (1 ? f) #define _F_SIZE(f) (1 + _F_END(f) - _F_START(f)) #define _F_MASK(f) (((1 << _F_SIZE(f)) - 1) << _F_START(f)) #define _F_NORMALIZE(v, f) (((v) & _F_MASK(f)) >> _F_START(f)) #define _F_DENORMALIZE(v, f) (((v) << _F_START(f)) & _F_MASK(f)) //////////////////////////////////////////////////////////////////////////////// // // // Global macros // // // //////////////////////////////////////////////////////////////////////////////// #define FIELD_GET(x, reg, field) \ ( \ _F_NORMALIZE((x), reg ## _ ## field) \ ) #define FIELD_SET(x, reg, field, value) \ ( \ (x & ~_F_MASK(reg ## _ ## field)) \ | _F_DENORMALIZE(reg ## _ ## field ## _ ## value, reg ## _ ## field) \ ) #define FIELD_VALUE(x, reg, field, value) \ ( \ (x & ~_F_MASK(reg ## _ ## field)) \ | _F_DENORMALIZE(value,reg ## _ ## field) \ ) #define FIELD_CLEAR(reg, field) \ ( \ ~ _F_MASK(reg ## _ ## field) \ )
2.4.27 커널 소스에 포함된 framebuffer 디바이스 드라이버를 분석하던 중에
위의 내용이 header 파일에 정의가 되어 있었습니다.
제가 알고 싶은 것은 "##_##" 이 무엇을 의미하는지 알고 싶습니다.
고수 분들의 한수 가르침을 주시기 바랍니다. :o
Forums:
[url=http://www.cinsk.org/cfaqs/html/nod
C FAQ: 10.2 Fancier Processing Question 10.20 참고. :wink:
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://cinsk.github.io/cfaqs/
답변해 주셔서 무슨 뜻인지 알겠습니다. :D
답변해 주셔서 무슨 뜻인지 알겠습니다. :D
아 .. 한가지 더 질문이 있습니다. [code:1]#define
아 .. 한가지 더 질문이 있습니다.
#define _F_START(f) ( 0 ? f)
에서 (0 ? f)의 내용이 무엇을 뜻하는 건가요?
인용하신 소스가 완전하지 못하군요.http://jon.limedale
인용하신 소스가 완전하지 못하군요.
http://jon.limedaley.com/plog/archives/2005/08/03/readable_code
에 보시면 좀 더 완전한 소스가 있습니다.
? 는
A ? B : C
문법의 일부입니다.물음표만 있고 콜론이 없으니까 이상해 보이지만,
f 값으로 받는 값안에 콜론이 있어서 문법 에러 없이 컴파일이 되는 것이죠..
예를 들면
#define DE_WINDOW_SOURCE_BASE_EXT 27:27
와 같은 것이 f로 넘어갑니다.일하는 사람들의 희망 민주노동당 : http://www.kdlp.org
반공 교육의 성과로, 민주주의의 반대가 공산주의(또는 사회주의)라고 생각하는 사람이 많다.
감사합니다. 자세히 보면 될 것을... :D
감사합니다.
자세히 보면 될 것을... :D
댓글 달기