FSTWikiRev. 1.7 KernelApi5
Login:
Password:
Join
E D R S I H P RSS
FrontPage|FindPage|TitleIndex|RecentChanges

Kernel API 5 - Linux Driver Model(ext) #


-- 김도집 2025-01-12 08:51:21

Contents

1 Kernel API 5 - Linux Driver Model(ext)
1.1 platform
1.2 sysdev
1.2.1 sysdev_class
1.2.2 sysdev_class_register
1.2.3 sysdev_class_unregister
1.2.4 sysdev_driver
1.2.5 sys_device
1.2.6 sysdev_register
1.2.7 sysdev_unregiser
1.2.8 sysdev_attribute
1.2.9 SYSDEV_ATTR
1.2.10 sysdev_create_file
1.2.11 sysdev_remove_file
1.3 firmware
1.3.1 struct fw
1.3.2 request_firmware_nowait
1.3.3 release_firmware
1.3.4 firmware의 사용

1.1 platform #

관련 자료형 및 함수에 대한 것은 Kernel API 1 - Core(1/2) 를 참고하라.

1.2 sysdev #

시스템 디바이스(cpu, timer, rtc 등)를 위한 드라이버 모델이다.

관련 자료형 및 함수는 <linux/sysdev.h>에 선언되어 있다.

1.2.1 sysdev_class #

<linux/sysdev.h>에 선언되어 있다.

struct sysdev_class {
  struct list_head drivers;
  int         (*shutdown)(struct sys_device *);
  int         (*suspend)(struct sys_device *, pm_message_t state);
  int         (*resume)(struct sys_device *);
  struct kset kset;

1.2.2 sysdev_class_register #

<linux/sysdev.h>에 선언되어 있다.

int sysdev_class_register(struct sysdev_class *);

1.2.3 sysdev_class_unregister #

<linux/sysdev.h>에 선언되어 있다.
void sysdev_class_unregister(struct sysdev_class);

1.2.4 sysdev_driver #

<linux/sysdev.h>에 선언되어 있다.

struct sysdev_driver {
  struct list_head entry;
  int (*add)(struct sys_device *);
  int (*remove)(struct sys_device *);
  int (*shutdown)(struct sys_device *);
  int (*suspend)(struct sys_device *, pm_message_t state);
  int (*resume)(struct sys_device *);
};

1.2.5 sys_device #

<linux/sysdev.h>에 선언되어 있다.

struct sys_device {
  u32 id;
  struct sysdev_class *cls;
  struct kobject kobj;
};

1.2.6 sysdev_register #

<linux/sysdev.h>에 선언되어 있다.

int sysdev_register(struct sys_device *);

관련함수: sysdev_unregister

1.2.7 sysdev_unregiser #

<linux/sysdev.h>에 선언되어 있다.

void sysdev_unregister(struct sys_device *);

관련함수: sysdev_register

1.2.8 sysdev_attribute #

<linux/sysdev.h>에 선언되어 있다.

struct sysdev_attribute {
  struct attribute attr;
  ssize_t (*show)(struct sys_device *, char *);
  ssize_t (*store)(struct sys_device *, const char *, size_t);
};

1.2.9 SYSDEV_ATTR #

<linux/sysdev.h>에 선언되어 있다.

sysdev_attribute형의 attr_##name으로 자료 구조체를 만드는 매크로이다.

SYSDEV_ATTR(_name, _mode, _show, _store)

1.2.10 sysdev_create_file #

<linux/sysdev.h>에 선언되어 있다.

int sysdev_create_file(struct sys_device *, struct sysdev_attribute *);

관련함수: sysdev_remove_file

1.2.11 sysdev_remove_file #

<linux/sysdev.h>에 선언되어 있다.

void sysdev_remove_file(struct sys_device *, struct sysdev_attribute *);

관련함수: sysdev_create_file

1.3 firmware #

1.3.1 firmware API #

함수설명
request_firmware
request_firmware_nowait
release_firmware

1.3.1.1 request_firmware #

int request_firmware(const struct firmware **fw, char *name, struct device *device);

1.3.1.2 request_firmware_nowait #

int request_firmware_nowait(struct module *module, char *name, struct device *device,
                            void *context, void (*cont)(const struct firmware *fw,
                                                        void *context));

1.3.1.3 release_firmware #

void release_firmware(struct firmware *fw);

last modified 2006-05-09 11:06:43
ShowPage|FindPage|DeletePage|LikePages Valid XHTML 1.0! Valid CSS! powered by MoniWiki
0.0278 sec