'리눅스 커널'에 해당되는 글 2건

  1. 2012.04.16 리눅스 커널 분석 시 아키텍쳐별 tag 및 cscope생성
  2. 2012.02.23 GCC, typeof
리눅스/커널2012. 4. 16. 09:07

아키텍쳐 별로 tag를 만들어서 분석 시 좀 더 편하게 분석 하는 방법이 있는데, (뭐 물론 아키텍쳐별로 파일 다 지우고 하겠다면 안 말린다)


1. tag 생서시에는

make tags ARCH=<architecture name>


2. cscope 생성시에는

make cscope ARCH=<architecture name>


물론 <architecture name>은 그냥 아키텍쳐 이름만 써주면 된다. 예를 들어 arm을 분석한다면,


make cscope ARCH=arm


이렇게 해 주면 된다.

'리눅스 > 커널' 카테고리의 다른 글

__user  (0) 2012.07.01
__initcall(), module_init()  (0) 2012.07.01
Virtual Linux Manager 정리 1  (0) 2012.03.18
GCC, typeof  (0) 2012.02.23
Documentation/arm/booting  (0) 2011.09.25
Posted by code cat
리눅스/커널2012. 2. 23. 00:43

출처: http://www.ibm.com/developerworks/linux/library/l-gcc-hacks/


GCC 확장(?)의 하나로서, GCC는 변수에 대한 참조를 통해서 타입을 확인할 수 있다. 이런 방법을 흔히 'generic programming'이라고 부르며 비슷한 기능을 제공하는 것을 현재 쓰이는 언어들에서 찾아 볼 수 있다.[1]
Linux의 경우, typeof를 사용하여 타입 종속적인 작업, (예를 들어 min/max 를 구별)을 할 수 있다.

간단한 예를 들어보자.(/linux/include/linux/kernel.h)

보이는 바와 같이 _min1은 x가 어떤 타입이냐에 따라서 그 타입을 가지게 된다; _min2 역시 y에 따라 타입이 달라진다. 이렇게 타입을 가지게 되므로 크기를 비교할 수 있게 되며, 어떠한 타입이 들어와도 대응할 수 있게 된다.

[1] 제네릭 프로그래밍(Generic programming)은 데이터 형식에 의존하지 않고, 하나의 값이 여러 다른 데이터 타입들을 가질 수 있는 기술에 중점을 두어 재사용성을 높일 수 있는 프로그래밍 방식이다

'리눅스 > 커널' 카테고리의 다른 글

리눅스 커널 분석 시 아키텍쳐별 tag 및 cscope생성  (0) 2012.04.16
Virtual Linux Manager 정리 1  (0) 2012.03.18
Documentation/arm/booting  (0) 2011.09.25
Linux 3.0 Kernel  (0) 2011.07.31
커널선점  (0) 2011.05.01
Posted by code cat