嵌入式linux中文站在线图书

Previous Page
Next Page

12.3. Functions and Variables Featured in This Part of the Book

Table 12-2 summarizes the main functions, variables, and data structures introduced or referenced in the previous three chapters. Additional ones can be found in Table 9-1 in Chapter 9.

Table 12-2. Functions, variables, and data structures related to interrupts and frame handling

Name

Description

Functions

 

netif_rx

Queues an input frame into a CPU's queue. See the section "Old Versus New Driver Interfaces" in Chapter 10.

netif_rx_schedule _ _netif_rx_schedule

Schedules the NET_RX_SOFTIRQ software interrupt for execution. See the section "Old Versus New Driver Interfaces" in Chapter 10.

netif_rx_complete

Called by the net_device->poll virtual function when the latter has cleared the queue.

netif_start_queue netif_stop_queue

Enables and disables transmission on a device, respectively. See the section "Enabling and Disabling Transmissions" in Chapter 11.

netif_queue_stopped

Checks whether a device is enabled for transmission.

netif_schedule[*] netif_wake_queue

netif_schedule schedules a device for transmission. netif_wake_queue enables transmission on a device and schedules the device for transmission. See the section "Scheduling a Device for Transmission" in Chapter 11.

qdisc_run

Dequeues a frame from the egress queue of a device and pushes it down to the device driver for transmission. See the section "Queuing Discipline Interface" in Chapter 11.

process_backlog

poll virtual function used by non-NAPI device drivers. See the section "Backlog Processing: The process_backlog Poll Virtual Function" in Chapter 10.

netif_receive_skb

Processes input frames by passing them to higher-layer protocol handlers. See the section "Ingress Frame Processing" in Chapter 10.

dev_queue_xmit

Main function for frame transmission. See the section "dev_queue_xmit Function" in Chapter 11.

dev_kfree_skb dev_kfree_skb_irq dev_kfree_skb_any

Releases an sk_buff structure. See the section "Processing the NET_TX_SOFTIRQ: net_tx_action" in Chapter 11.

do_IRQ

Takes care of a hardware interrupt notification by invoking the associated handler.

open_softirq raise_softirq, raise_softirq_irqoff

Registers and schedules for execution a software interrupt, respectively. See the section "Bottom-half handlers in kernel 2.4 and above: the introduction of the softirq" in Chapter 9.

do_softirq invoke_softirq

Takes care of the pending software interrupts by invoking the associated handlers. See the section "Pending softirq Handling" in Chapter 9.

net_rx_action net_tx_action

The handlers for the NET_RX_SOFTIRQ and NET_TX_SOFTIRQ software interrupts, respectively. See the section "How the Networking Code Uses softirqs" in Chapter 9.

tasklet_init

Initializes a tasklet_struct structure.

tasklet_action tasklet_hi_action

Handlers for the TASKLET_SOFTIRQ and HI_SOFTIRQ software interrupts, respectively. See the section "Tasklets" in Chapter 9.

tasklet_enable, tasklet_hi_enable tasklet_disable, tasklet_disable_nosync

Enables and disables a tasklet, respectively. See the section "Tasklets" in Chapter 9.

tasklet_schedule tasklet_hi_schedule

Schedules a tasklet for execution. See the section "Tasklets" in Chapter 9.

Variables

 

mod_cong lo_cong no_cong no_cong_thresh

Congestion levels for the input queue (used with non-NAPI devices). See the section "Fields of softnet_data" in Chapter 9.

netdev_max_backlog

Maximum size for the CPU's input queues. See Figure 9-4 in Chapter 9.

Data structures

 

softnet_data

The two NET_XXX_SOFTIRQ software interrupts use one such structure for each CPU. See the section "softnet_data Structure" in Chapter 9.

tasklet_struct

Represents a tasklet. See the section "Tasklets" in Chapter 9.


[*] For consistency with the reception function names, it should probably have been called netif_tx_schedule.


Previous Page
Next Page