1STRUCT PIPE_INODE_IN(9) pipes API STRUCT PIPE_INODE_IN(9)
2
3
4
6 struct_pipe_inode_info - a linux kernel pipe
7
9 struct pipe_inode_info {
10 wait_queue_head_t wait;
11 unsigned int nrbufs;
12 unsigned int curbuf;
13 struct page * tmp_page;
14 unsigned int readers;
15 unsigned int writers;
16 unsigned int waiting_writers;
17 unsigned int r_counter;
18 unsigned int w_counter;
19 struct fasync_struct * fasync_readers;
20 struct fasync_struct * fasync_writers;
21 struct inode * inode;
22 struct pipe_buffer bufs[PIPE_BUFFERS];
23 };
24
26 wait
27 reader/writer wait point in case of empty/full pipe
28
29 nrbufs
30 the number of non-empty pipe buffers in this pipe
31
32 curbuf
33 the current pipe buffer entry
34
35 tmp_page
36 cached released page
37
38 readers
39 number of current readers of this pipe
40
41 writers
42 number of current writers of this pipe
43
44 waiting_writers
45 number of writers blocked waiting for room
46
47 r_counter
48 reader counter
49
50 w_counter
51 writer counter
52
53 fasync_readers
54 reader side fasync
55
56 fasync_writers
57 writer side fasync
58
59 inode
60 inode this pipe is attached to
61
62 bufs[PIPE_BUFFERS]
63 the circular array of pipe buffers
64
66Kernel Hackers Manual 2.6. June 2019 STRUCT PIPE_INODE_IN(9)