OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [Documentation/] [DocBook/] [kernel-api.tmpl] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1275 phoenix
2
3
 
4
  The Linux Kernel API
5
 
6
  
7
   
8
     This documentation is free software; you can redistribute
9
     it and/or modify it under the terms of the GNU General Public
10
     License as published by the Free Software Foundation; either
11
     version 2 of the License, or (at your option) any later
12
     version.
13
   
14
 
15
   
16
     This program is distributed in the hope that it will be
17
     useful, but WITHOUT ANY WARRANTY; without even the implied
18
     warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
19
     See the GNU General Public License for more details.
20
   
21
 
22
   
23
     You should have received a copy of the GNU General Public
24
     License along with this program; if not, write to the Free
25
     Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
26
     MA 02111-1307 USA
27
   
28
 
29
   
30
     For more details see the file COPYING in the source
31
     distribution of Linux.
32
   
33
  
34
 
35
 
36
37
 
38
  
39
     Driver Basics
40
     Driver Entry and Exit points
41
!Iinclude/linux/init.h
42
     
43
 
44
     Atomic and pointer manipulation
45
!Iinclude/asm-i386/atomic.h
46
!Iinclude/asm-i386/unaligned.h
47
     
48
 
49
     Delaying, scheduling, and timer routines
50
!Ekernel/sched.c
51
     
52
  
53
 
54
  
55
     Data Types
56
     Doubly Linked Lists
57
!Iinclude/linux/list.h
58
     
59
  
60
 
61
  
62
     Basic C Library Functions
63
 
64
     
65
       When writing drivers, you cannot in general use routines which are
66
       from the C Library.  Some of the functions have been found generally
67
       useful and they are listed below.  The behaviour of these functions
68
       may vary slightly from those defined by ANSI, and these deviations
69
       are noted in the text.
70
     
71
 
72
     String Conversions
73
!Ilib/vsprintf.c
74
!Elib/vsprintf.c
75
     
76
     String Manipulation
77
!Ilib/string.c
78
     
79
     Bit Operations
80
!Iinclude/asm-i386/bitops.h
81
     
82
  
83
 
84
  
85
     Memory Management in Linux
86
     The Slab Cache
87
!Emm/slab.c
88
     
89
     User Space Memory Access
90
!Iinclude/asm-i386/uaccess.h
91
!Iarch/i386/lib/usercopy.c
92
     
93
  
94
 
95
  
96
     The proc filesystem
97
 
98
     sysctl interface
99
!Ekernel/sysctl.c
100
     
101
  
102
 
103
  
104
     The Linux VFS
105
     The Directory Cache
106
!Efs/dcache.c
107
!Iinclude/linux/dcache.h
108
     
109
     Inode Handling
110
!Efs/inode.c
111
!Efs/bad_inode.c
112
     
113
     Registration and Superblocks
114
!Efs/super.c
115
     
116
     File Locks
117
!Efs/locks.c
118
!Ifs/locks.c
119
     
120
  
121
 
122
  
123
     Linux Networking
124
     Socket Buffer Functions
125
!Iinclude/linux/skbuff.h
126
!Enet/core/skbuff.c
127
     
128
     Socket Filter
129
!Enet/core/filter.c
130
     
131
  
132
 
133
  
134
     Network device support
135
     Driver Support
136
!Edrivers/net/net_init.c
137
!Enet/core/dev.c
138
     
139
     8390 Based Network Cards
140
!Edrivers/net/8390.c
141
     
142
     Synchronous PPP
143
!Edrivers/net/wan/syncppp.c
144
     
145
  
146
 
147
  
148
     Module Support
149
     Module Loading
150
!Ekernel/kmod.c
151
     
152
     Inter Module support
153
!Ekernel/module.c
154
     
155
  
156
 
157
  
158
     Hardware Interfaces
159
     Interrupt Handling
160
!Iarch/i386/kernel/irq.c
161
     
162
 
163
     MTRR Handling
164
!Earch/i386/kernel/mtrr.c
165
     
166
     PCI Support Library
167
!Edrivers/pci/pci.c
168
     
169
     PCI Hotplug Support Library
170
!Edrivers/hotplug/pci_hotplug_core.c
171
!Edrivers/hotplug/pci_hotplug_util.c
172
     
173
     MCA Architecture
174
        MCA Device Functions
175
!Earch/i386/kernel/mca.c
176
        
177
        MCA Bus DMA
178
!Iinclude/asm-i386/mca_dma.h
179
        
180
     
181
  
182
 
183
  
184
     The Device File System
185
!Efs/devfs/base.c
186
  
187
 
188
  
189
     Power Management
190
!Ekernel/pm.c
191
  
192
 
193
  
194
     Block Devices
195
!Edrivers/block/ll_rw_blk.c
196
  
197
 
198
  
199
     Miscellaneous Devices
200
!Edrivers/char/misc.c
201
  
202
 
203
  
204
     Video4Linux
205
!Edrivers/media/video/videodev.c
206
  
207
 
208
  
209
     Sound Devices
210
!Edrivers/sound/sound_core.c
211
!Idrivers/sound/sound_firmware.c
212
  
213
 
214
  
215
     USB Devices
216
!Edrivers/usb/usb.c
217
  
218
 
219
  
220
     16x50 UART Driver
221
!Edrivers/char/serial.c
222
  
223
 
224
  
225
     Z85230 Support Library
226
!Edrivers/net/wan/z85230.c
227
  
228
 
229
  
230
     Frame Buffer Library
231
 
232
     
233
       The frame buffer drivers depend heavily on four data structures.
234
       These structures are declared in include/linux/fb.h.  They are
235
       fb_info, fb_var_screeninfo, fb_fix_screeninfo and fb_monospecs.
236
       The last three can be made available to and from userland.
237
     
238
 
239
     
240
       fb_info defines the current state of a particular video card.
241
       Inside fb_info, there exists a fb_ops structure which is a
242
       collection of needed functions to make fbdev and fbcon work.
243
       fb_info is only visible to the kernel.
244
     
245
 
246
     
247
       fb_var_screeninfo is used to describe the features of a video card
248
       that are user defined.  With fb_var_screeninfo, things such as
249
       depth and the resolution may be defined.
250
     
251
 
252
     
253
       The next structure is fb_fix_screeninfo. This defines the
254
       properties of a card that are created when a mode is set and can't
255
       be changed otherwise.  A good example of this is the start of the
256
       frame buffer memory.  This "locks" the address of the frame buffer
257
       memory, so that it cannot be changed or moved.
258
     
259
 
260
     
261
       The last structure is fb_monospecs. In the old API, there was
262
       little importance for fb_monospecs. This allowed for forbidden things
263
       such as setting a mode of 800x600 on a fix frequency monitor. With
264
       the new API, fb_monospecs prevents such things, and if used
265
       correctly, can prevent a monitor from being cooked.  fb_monospecs
266
       will not be useful until kernels 2.5.x.
267
     
268
 
269
     Frame Buffer Memory
270
!Edrivers/video/fbmem.c
271
     
272
     Frame Buffer Console
273
!Edrivers/video/fbcon.c
274
     
275
     Frame Buffer Colormap
276
!Edrivers/video/fbcmap.c
277
     
278
     Frame Buffer Generic Functions
279
!Edrivers/video/fbgen.c
280
     
281
     Frame Buffer Video Mode Database
282
!Idrivers/video/modedb.c
283
!Edrivers/video/modedb.c
284
     
285
     Frame Buffer Macintosh Video Mode Database
286
!Idrivers/video/macmodes.c
287
     
288
     Frame Buffer Fonts
289
!Idrivers/video/fonts.c
290
     
291
  
292
 
293

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.