This file is indexed.

/usr/include/libsysactivity/network.h is in libsysactivity-dev 0.6.5-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
/*
 * libsysactivity
 * http://sourceforge.net/projects/libsysactivity/
 * Copyright (c) 2009, 2010 Carlos Olmedo Escobar <carlos.olmedo.e@gmail.com>
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 */

/**
 * \defgroup network Network interface
 * @{
 */
#ifndef SA_NET_H_
#define SA_NET_H_

/** \struct sa_net_interface network.h
 * This structure gathers the details about the activity of one network interface.
 */
struct sa_net_interface {
#ifdef SA_NET_INTERFACE_NAME
	char name[SA_NET_INTERFACE_NAME]; //!< Interface's name. It's used as the unique identifier of the interface.
#endif
#ifdef SA_NET_INTERFACE_RECEIVED_BYTES
	uint64_t received_bytes; //!< Total number of received bytes.
#endif
#ifdef SA_NET_INTERFACE_RECEIVED_PACKETS
	uint64_t received_packets; //!< Total number of received packets.
#endif
#ifdef SA_NET_INTERFACE_RECEIVED_ERRORS
	uint64_t received_errors; //!< Amount of received errors.
#endif
#ifdef SA_NET_INTERFACE_RECEIVED_DROP
	uint64_t received_drop; //!< Total number of received packets that had been dropped.
#endif
#ifdef SA_NET_INTERFACE_RECEIVED_FIFO
	uint64_t received_fifo; //!< The number of fifo buffer errors received.
#endif
#ifdef SA_NET_INTERFACE_RECEIVED_COMPRESSED
	uint64_t received_compressed; //!< The number of compressed packets received by the device driver.
#endif
#ifdef SA_NET_INTERFACE_RECEIVED_MULTICAST
	uint64_t received_multicast; //!< Number of packets received which were sent by link-layer multicast.
#endif
#ifdef SA_NET_INTERFACE_SENT_BYTES
	uint64_t sent_bytes; //!< Total number of transmitted bytes.
#endif
#ifdef SA_NET_INTERFACE_SENT_PACKETS
	uint64_t sent_packets; //!< Total number of sent packets.
#endif
#ifdef SA_NET_INTERFACE_SENT_ERRORS
	uint64_t sent_errors; //!< Amount of sent errors.
#endif
#ifdef SA_NET_INTERFACE_SENT_DROP
	uint64_t sent_drop; //!< Total number of sent packets that had been dropped.
#endif
#ifdef SA_NET_INTERFACE_SENT_FIFO
	uint64_t sent_fifo; //!< The number of fifo buffer errors sent.
#endif
#ifdef SA_NET_INTERFACE_SENT_COMPRESSED
	uint64_t sent_compressed; //!< The number of compressed packets transmitted by the device driver.
#endif
#ifdef SA_NET_INTERFACE_SENT_MULTICAST
	uint64_t sent_multicast; //!< Number of packets sent by link-layer multicast.
#endif
};

#ifdef SA_OPEN_NET
/**
 * Prepares the resources needed for retrieving network statistics. This function exists (and is needed) only when SA_OPEN_NET is defined.
 * @return If successful 0 is returned, otherwise an error code is returned. If the operating system is not supported the return value will be ENOTSUP.
 * @see sa_close_net()
 * @since 0.6.0
 */
int sa_open_net(void) SA_EXPORT;
#endif

#ifdef SA_CLOSE_NET
/**
 * This function closes the resources used for retrieving network statistics. You should call it even when there was a previous error in another function of this API. This function exists (and is needed) only when SA_CLOSE_NET is defined.
 * @return If successful 0 is returned, otherwise an error code is returned.
 * @see sa_open_net()
 * @since 0.6.0
 */
int sa_close_net(void) SA_EXPORT;
#endif

/**
 * Gives the total number of network interfaces.
 * You don't need to call sa_reset_net_interfaces() before this function.
 * @param number The number will be stored here
 * @return If successful 0 is returned, otherwise an error code is returned.
 * @since 0.6.0
 */
int sa_count_net_interfaces(uint16_t* number) SA_EXPORT SA_NONNULL;

/**
 * Refreshes the underlying operating system cache.
 * @return If successful 0 is returned, otherwise an error code is returned.
 * @since 0.6.0
 */
int sa_reset_net_interfaces() SA_EXPORT;

/**
 * Returns a list of the existing the network interfaces ids. The array will be fully populated even if it's not big enough (but ENOMEM is returned).
 * sa_reset_net_interfaces() should be called at least once before this function and everytime you need fresh values.
 * @param dst Where the statistics will be stored.
 * @param dst_size The number of ids that fits on the dst pointer.
 * @param written The number of network interfaces ids written.
 * @return If successful 0 is returned, otherwise an error code is returned. ENODEV is returned when there are no more disks available.
 * @since 0.6.0
 */
int sa_get_net_interfaces_ids(char* dst, uint16_t dst_size, uint16_t* written) SA_EXPORT SA_NONNULL;

/**
 * Retrieves statistics from a network interface identified by its name.
 * sa_reset_net_interfaces() should be called at least once before this function and everytime you need fresh values.
 * @param name The name of the network interface.
 * @param dst Where the statistics will be stored.
 * @return If successful 0 is returned, otherwise an error code is returned. ENODEV is returned when the requested device was not found.
 * @since 0.6.0
 */
int sa_get_net_interface(char* name, struct sa_net_interface* dst) SA_EXPORT SA_NONNULL;

/**
 * Retrieves statistics about all the network interfaces' activity.
 * sa_reset_net_interfaces() should be called at least once before this function and everytime you need fresh values.
 * @param dst A buffer where the statistics will be stored.
 * @param dst_size The number of interfaces that fits in the dst buffer. If it's not big enough dst will be filled but ENOMEM will be returned.
 * @param written The amount of interface statistics written.
 * @return If successful 0 is returned, otherwise an error code is returned.
 * @since 0.6.0
 */
int sa_get_net_interfaces(struct sa_net_interface* dst, uint16_t dst_size, uint16_t* written) SA_EXPORT SA_NONNULL;

/*@}*/
#endif /* SA_NET_H_ */