19.02.2013 Views

Module I-7410 Advanced Linux Kernel Data Structures

Module I-7410 Advanced Linux Kernel Data Structures

Module I-7410 Advanced Linux Kernel Data Structures

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Berne University of Applied Sciences<br />

School of Information Technology HTI<br />

Course: <strong>Advanced</strong> <strong>Linux</strong><br />

FS-2012<br />

Example: <strong>Module</strong> Representation in the <strong>Kernel</strong> (1)<br />

A module is represented by a struct module<br />

struct module {<br />

enum module_state state; /*LIVE,COMING,GOING*/<br />

struct list_head list; /*member list,head:modules*/<br />

char name[MODULE_NAME_LEN]; /* unique module name */<br />

...<br />

const struct kernel_symbol *syms; /*exported symbols*/<br />

unsigned int num_syms;<br />

const unsigned long *crcs; /*check sums on names*/<br />

/* GPL­only exported symbols. */<br />

const struct kernel_symbol *gpl_syms;<br />

unsigned int num_gpl_syms;<br />

const unsigned long *gpl_crcs;<br />

unsigned int num_exentries; /* Exception table */<br />

const struct exception_table_entry *extable;<br />

Introduction to <strong>Module</strong>s<br />

V1.5 © 2012 by franz.meyer@bfh.ch Slide-12

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!