Arm Linux Kernel Hacks

rousalome.egloos.com

포토로그 Kernel Crash


통계 위젯 (화이트)

593
557
422264


[부록 A] GCC 지시어: __noreturn 부록

리눅스 커널에서는 자신을 호출한 함수로 되돌아가지 않는 함수가 있습니다.
이런 종류 함수에 __noreturn 키워드를 붙히면 컴파일러가 최적화 작업을 추가로 수행합니다.

__noreturn 키워드로 선언한 예는 다음과 같습니다.

https://elixir.bootlin.com/linux/v4.19.30/source/kernel/exit.c 
void __noreturn do_exit(long code)
{
struct task_struct *tsk = current;
int group_dead;
...

do_exit() 함수는 프로세스를 종료하는 동작입니다. 당연한 이야기지만 함수를 실행하는 주인공인 프로세스가 소멸하니 이전 함수로 되돌아 갈 수 없습니다.

"혹시 궁금한 점이 있으면 댓글로 질문 남겨주세요. 아는 한 성실히 답변 올려드리겠습니다!" 

Thanks,
Austin Kim(austindh.kim@gmail.com)


[부록 A] GCC 지시어
   * inline    
   * noinline    
   * __noreturn   
   * unused   
[부록 B] 리눅스 커널 실력을 키우는 방법
[부록 C] 리눅스 커널 프로젝트에 기여하기  
C.1 리눅스 커널 오픈소스 프로젝트 소개 
   * 용어  
C.2 설정 방법 
C.3 패치 코드를 작성한 후 이메일로 보내기  
C.5 리눅스 커널 오픈소스 프로젝트로 얻는 지식 


# Reference: For more information on 'Linux Kernel';

디버깅을 통해 배우는 리눅스 커널의 구조와 원리. 1

디버깅을 통해 배우는 리눅스 커널의 구조와 원리. 2


 



핑백

덧글

댓글 입력 영역