MODSTAT(2)

명칭
modstat - 커널 모듈 상태를 취득

프로그램 라이브러리
libc

서식
<sys/param.h> <sys/module.h> int modstat(int modid, struct module_stat *stat)

해설
modstat() 하 modid 그리고 참조되고 있는 커널 모듈에 관한 정보를 stat 에 격납합니다.

    struct module_stat {
    	int         version;        /* set to sizeof(module_stat) */
    	char        name[MAXPATHLEN];
    	int         refs;
    	int         id;
    	modspecific_t data;
    };
    typedef union modspecific {
    	int         intval;
    	u_int       u_intval;
    	long        longval;
    	u_long      u_longval;
    } modspecific_t;

version
    이 필드에는, modstat() 자체는 아니고 modstat() (을)를 호출한 코드에 의해, 상기의 구조체의 사이즈가 설정됩니다.

name
    modid 그리고 참조되고 있는 모듈의 이름.

refs
    modid 그리고 참조되고 있는 모듈의 수.

id  modid 그리고 지정되어 있는 모듈의 id.

data
    모듈 특유의 데이터.

반환값

에러
이하와 같은 에러가 발생하지 않는 한, modid 에 의해 참조되고 있는 모듈에 관한 정보가 stat 하지만 가리키고 있는 구조체에 대입됩니다:

[ENOENT]
    모듈이 발견되지 않습니다 (아마 로드 되고 있지 않습니다).

[EINVAL]
    version 필드에서 지정되어 있는 버젼이 적절하지는 않습니다. 적절한 버젼을 version 필드에서 지정해 있는 것에도 불구하고 이 에러가 일어날 때는, OS전체인가, 커널 또는 프로그램 자신을 다시 만들 필요가 있을지도 모릅니다.

[EFAULT]
    copyout() 중(안)에서, 하나 또는 다수 있는 있고는 모든 필드를 stat 에 카피중에 문제가 발생했습니다.

관련 항목
kldfind(2), kldfirstmod(2), kldload(2), kldnext(2), kldstat(2), kldsym(2), kldunload(2), modfind(2), modfnext(2), modnext(2), kld(4), kldstat(8)

역사
kld 인터페이스는 FreeBSD 3.0 그리고 처음 등장했습니다.