DIFINE_PER_CPU로 선언 된 변수를 외부참조로 얻어 오려면 어떻게 해야할까요?
글쓴이: ryutuna / 작성시간: 화, 2013/05/21 - 4:44오후
커널 소스 내에
static DEFINE_PER_CPU(struct device *, cpu_sys_devices);
와 같이 per cpu에 대한 변수가 하나 선언 되어 있습니다.
module을 작성해서 runtime에 이 변수에 접근하려고 하는데요,
일반 변수 같은 경우에 extern으로 접근하거나
kallsyms와 같은 함수로 system.map에 있는 경우 주소값을 얻어서 바로 사용 가능하겠지만
위와 같은 경우에는 모듈내에서 어떻게 선언을 해서 사용해야 좋을까요?
하나 생각이 나는 바로는, per cpu 변수의 경우에도 system.map에 있기는 하니
struct device *my_dev[NR_CPU];
와 같이 선언을 해서 각각의 주소를 받아서 저장해 사용하는 방법이 있기는
하겠지만 깔끔하진 않은 것 같습니다.
이런 경우에 어떻게 사용하는 게 좋을지요?
Forums:
아래와 같이 가능하네요.
EXPORT_PER_CPU_SYMBOL(변 수명);
EXPORT_PER_CPU_SYMBOL_GPL(변수명);
--------------------------------------------------------------
세상엔 알아야 할 것도 알지 말았어야 할 것도 너무 많았습니다.
사용할 시에는...
DECLARE_PER_CPU(변수명)이구요.
위는 EXPORT방법입니다.
--------------------------------------------------------------
세상엔 알아야 할 것도 알지 말았어야 할 것도 너무 많았습니다.
댓글 달기