STRUCT SK_BUFF(9) Linux Networking STRUCT SK_BUFF(9)NAME
struct_sk_buff - socket buffer
SYNOPSIS
struct sk_buff {
struct sk_buff * next;
struct sk_buff * prev;
ktime_t tstamp;
struct sock * sk;
struct net_device * dev;
char cb[48];
unsigned long _skb_refdst;
#ifdef CONFIG_XFRM
struct sec_path * sp;
#endif
unsigned int len;
unsigned int data_len;
__u16 mac_len;
__u16 hdr_len;
union {unnamed_union};
__be16 inner_protocol;
__u16 inner_transport_header;
__u16 inner_network_header;
__u16 inner_mac_header;
__u16 transport_header;
__u16 network_header;
__u16 mac_header;
sk_buff_data_t tail;
sk_buff_data_t end;
unsigned char * head;
unsigned char * data;
unsigned int truesize;
atomic_t users;
};
MEMBERS
next
Next buffer in list
prev
Previous buffer in list
tstamp
Time we arrived
sk
Socket we are owned by
dev
Device we arrived on/are leaving by
cb[48]
Control buffer. Free for use by every layer. Put private vars here
_skb_refdst
destination entry (with norefcount bit)
sp
the security path, used for xfrm
len
Length of actual data
data_len
Data length
mac_len
Length of link layer header
hdr_len
writable header length of cloned skb
{unnamed_union}
anonymous
inner_protocol
Protocol (encapsulation)
inner_transport_header
Inner transport layer header (encapsulation)
inner_network_header
Network layer header (encapsulation)
inner_mac_header
Link layer header (encapsulation)
transport_header
Transport layer header
network_header
Network layer header
mac_header
Link layer header
tail
Tail pointer
end
End pointer
head
Head of buffer
data
Data head pointer
truesize
Buffer size
users
User count - see {datagram,tcp}.c
COPYRIGHT Kernel Hackers Manual 3.10 June 2014 STRUCT SK_BUFF(9)
Check Out this Related Man Page
STRUCT I2C_MSG(9) I2C and SMBus Subsystem STRUCT I2C_MSG(9)NAME
struct_i2c_msg - an I2C transaction segment beginning with START
SYNOPSIS
struct i2c_msg {
__u16 addr;
__u16 flags;
#define I2C_M_TEN 0x0010
#define I2C_M_RD 0x0001
#define I2C_M_NOSTART 0x4000
#define I2C_M_REV_DIR_ADDR 0x2000
#define I2C_M_IGNORE_NAK 0x1000
#define I2C_M_NO_RD_ACK 0x0800
#define I2C_M_RECV_LEN 0x0400
__u16 len;
__u8 * buf;
};
MEMBERS
addr
Slave address, either seven or ten bits. When this is a ten bit address, I2C_M_TEN must be set in flags and the adapter must support
I2C_FUNC_10BIT_ADDR.
flags
I2C_M_RD is handled by all adapters. No other flags may be provided unless the adapter exported the relevant I2C_FUNC_* flags through
i2c_check_functionality.
len
Number of data bytes in buf being read from or written to the I2C slave address. For read transactions where I2C_M_RECV_LEN is set, the
caller guarantees that this buffer can hold up to 32 bytes in addition to the initial length byte sent by the slave (plus, if used, the
SMBus PEC); and this value will be incremented by the number of block data bytes received.
buf
The buffer into which data is read, or from which it's written.
DESCRIPTION
An i2c_msg is the low level representation of one segment of an I2C transaction. It is visible to drivers in the i2c_transfer() procedure,
to userspace from i2c-dev, and to I2C adapter drivers through the i2c_adapter.master_xfer() method.
Except when I2C "protocol mangling" is used, all I2C adapters implement the standard rules for I2C transactions. Each transaction begins
with a START. That is followed by the slave address, and a bit encoding read versus write. Then follow all the data bytes, possibly
including a byte with SMBus PEC. The transfer terminates with a NAK, or when all those bytes have been transferred and ACKed. If this is
the last message in a group, it is followed by a STOP. Otherwise it is followed by the next i2c_msg transaction segment, beginning with a
(repeated) START.
Alternatively, when the adapter supports I2C_FUNC_PROTOCOL_MANGLING then passing certain flags may have changed those standard protocol
behaviors. Those flags are only for use with broken/nonconforming slaves, and with adapters which are known to support the specific
mangling options they need (one or more of IGNORE_NAK, NO_RD_ACK, NOSTART, and REV_DIR_ADDR).
COPYRIGHT Kernel Hackers Manual 2.6. July 2010 STRUCT I2C_MSG(9)