B

backing stores address space pages and, 956-957 RAM and, 989 reading data from, 297

big endian formats conversion to/from, 1136-1137 data types, 26

numeric values and, 739-740 big kernel lock (BKL), 361-362 binary formats handlers, 81-82 interpreting, 83 Linux supported, 82 modules, 19-20, 491-492 red-black trees, 299

rewriting binary code into absolute values, 498-499 BIOs (block-based I/O) buffers and, 954 creating requests, 432-436 handling block device transfers, 969-970 overview of, 430-431 submitting requests, 432 bit operations architecture of, 1135-1136 in C programming, 1203-1206 BKL (big kernel lock), 361-362 block allocation, Ex2 creating new reservations, 626-628 handling pre-allocation, 621-626 indirection and, 619-621 pre-allocation mechanism, 606-608 block devices accessing, 397

adding disks and partitions to system,

423-425 BIOs and, 430-431 buffer cache. See buffer cache cache options, 950 core properties, 415-417 executing requests, 437-438 generic hard disks and partitions, 417-420 handling block device transfers, 969-970 I/O scheduling, 438-441 iotcl system, 441-442 kernel request structure for, 427-430

opening block device files, 425-427 operations, 420 overview of, 412-413 page cache and. See page cache proc filesystem and, 644 queue plugging, 436-437 registering, 406 representing, 413-415 request queues, 421-423 submitting requests, 432-436 types of peripheral devices, 17-18 block-based filesystems, 586 block-based I/O. See BIOs (block-based I/O)

blocks, 586. See also data blocks boot process data structures, 191-192 disabling bootmem allocator, 197 initializing, 192-194 interfaceto kernel, 195-197 overview of, 191

releasing initialization data, 197-199 bootmem allocator disabling, 197 overview of, 191-193 _bread function, LRU buffer cache, 987-988 break statements, C programming,

1208-1209 bridges, connecting PCI buses, 394 broadcast mode, time management and, 943-944

buckets, timer data structures, 902-904 buddy system

_alloc_pages, 223 allocation macros, 220-222 allocation masks, 216-220 allocation of physical memory, 14-15 allocator API, 215-216 avoidingfragmentation, 201 data structures of buddy allocator, 204-205

global variables and auxiliary functions for page mobility groups, 205-207 grouping pages by mobility, 201-203 initializing mobility-based grouping, 207-208

managing data structure creation, 210-213 _rmqueue helper function, 234-240 structure of, 199-201 buffer cache, 974-988

data structures, 975-976

defined, 950

implementing, 974

independent buffers, 982

linking buffers and pages, 977-979

LRU. See LRU (least recently used) cache operations, 976-977

overview of, 20

reading whole pages into buffers, 979-981 structure of, 954-955 summary, 988

writing whole pages into buffers, 981-982 buffer head elements, 976 linking pages and, 977-979 operations, 976-977 structural units of buffer cache, 954-955 buffers, 954-955

_builtin functions, C programming language, 1198-1200 bulk transfers, USB (Universal Serial Bus), 465-466

bus number, identifying PCI devices, 455 bus systems generic driver model, 449 I/O architecture and, 392-394 overview of, 448

PCI bus. See PCI (peripheral component interconnect) registration procedures, 452-454 representation of buses, 451-452 representation of devices, 449-451 USB bus. See USB (Universal Serial Bus)

buses device control via, 396 peripherals connected to CPU via, 393 registration of, 452 representation of, 451-452 byte order conversion to/from (little endian or big endian), 1136-1137 datatypes, 26-27

Continue reading here: C

Was this article helpful?

0 0