본문 바로가기
Android

안드로이드 하드웨어 서비스 02 RIL (2)

by OKOK 2021. 5. 25.

2.3 RIL 데몬의 구조

 

2.3.3 RIL 이벤트 스케줄러

릴 데몬은 외부 또는 내부로부터 발생되는 RIL 이벤트를 처리해야 함. hardware/ril/libril/ril_event.cpp에 ril_event_add()함수 분석. 

 

2.4 릴 데몬 초기화

릴 데몬이 실행되면 가장 먼저 벤더 릴을 동적으로 로딩하고 벤더 릴은 릴 데몬으로부터 릴 resp와 릴 ind를 처리할 수 있는 Radio 응답 함수의 함수 포인터를 얻음. 릴 데몬이 모뎀을 제어하기 위해 필수적으로 벤더 릴이 필요함. 벤더 릴은 공유 라이브러리 형태로 존재함 릴 데몬은 모뎀을 제어하기 위해 벤더릴을 동적으로 로딩함. 

 

2.4.4 릴 에빈트 스케줄러 생성

 

2.4.5 벤더 RIL 초기화

릴 데몬의 콜백 함수를 벤더 릴에 설정, mainLoop 쓰레드 및 readerLoop 쓰레드를 실행, 벤더 RIL의 콜백 함수를 RIL 데몬에 반환.

 

2.5.1 RIL 이벤트 스케줄러의 동작 원리

RIL 이벤트 스케줄러의 스케줄링 알고리즘의 목표는 앱 또는 릴 이벤트 스케줄러의 의해 발생한 I/O 이벤트와 타임아웃 이벤트가 처리되어야 할 시점을 결정하고 결정된 시점에 각 릴 이벤트 처리 콜백 함수를 호출하여 릴 이벤트를 처리하는 것임. 

 

2.5.2 릴 이벤트 처리 콜백 함수

 

2.5.3 RIL req 처리 메커니즘

 

2.5.4 RIL resp 처리 메커니즘

 

2.5.5 RIL ind 처리 메커니즘

 

댓글