Changeset b69ceea in mainline for uspace/lib/net/generic/packet_client.c
- Timestamp:
- 2010-10-15T21:40:36Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 614d065
- Parents:
- b934e43
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/net/generic/packet_client.c
rb934e43 rb69ceea 27 27 */ 28 28 29 /** @addtogroup packet30 * 29 /** @addtogroup libnet 30 * @{ 31 31 */ 32 32 33 33 /** @file 34 * 34 * Packet client implementation. 35 35 */ 36 36 … … 38 38 #include <mem.h> 39 39 #include <unistd.h> 40 41 40 #include <sys/mman.h> 42 41 43 42 #include <packet_client.h> 43 #include <packet_remote.h> 44 44 45 45 #include <net/packet.h> 46 46 #include <net/packet_header.h> 47 47 48 int packet_copy_data(packet_t packet, const void * data, size_t length) 48 /** Copies the specified data to the beginning of the actual packet content. 49 * 50 * Pushes the content end if needed. 51 * 52 * @param[in] packet The packet to be filled. 53 * @param[in] data The data to be copied. 54 * @param[in] length The length of the copied data. 55 * @returns EOK on success. 56 * @returns EINVAL if the packet is not valid. 57 * @returns ENOMEM if there is not enough memory left. 58 */ 59 int packet_copy_data(packet_t packet, const void *data, size_t length) 49 60 { 50 61 if (!packet_is_valid(packet)) … … 61 72 } 62 73 74 /** Allocates the specified space right before the actual packet content and 75 * returns its pointer. 76 * 77 * @param[in] packet The packet to be used. 78 * @param[in] length The space length to be allocated at the beginning of the 79 * packet content. 80 * @returns The pointer to the allocated memory. 81 * @returns NULL if there is not enough memory left. 82 */ 63 83 void *packet_prefix(packet_t packet, size_t length) 64 84 { … … 73 93 } 74 94 95 /** Allocates the specified space right after the actual packet content and 96 * returns its pointer. 97 * 98 * @param[in] packet The packet to be used. 99 * @param[in] length The space length to be allocated at the end of the 100 * packet content. 101 * @returns The pointer to the allocated memory. 102 * @returns NULL if there is not enough memory left. 103 */ 75 104 void *packet_suffix(packet_t packet, size_t length) 76 105 { … … 84 113 } 85 114 115 /** Trims the actual packet content by the specified prefix and suffix lengths. 116 * 117 * @param[in] packet The packet to be trimmed. 118 * @param[in] prefix The prefix length to be removed from the beginning of 119 * the packet content. 120 * @param[in] suffix The suffix length to be removed from the end of the 121 * packet content. 122 * @returns EOK on success. 123 * @returns EINVAL if the packet is not valid. 124 * @returns ENOMEM if there is not enough memory left. 125 */ 86 126 int packet_trim(packet_t packet, size_t prefix, size_t suffix) 87 127 { … … 97 137 } 98 138 139 /** Returns the packet identifier. 140 * 141 * @param[in] packet The packet. 142 * @returns The packet identifier. 143 * @returns Zero if the packet is not valid. 144 */ 99 145 packet_id_t packet_get_id(const packet_t packet) 100 146 { … … 102 148 } 103 149 104 int packet_get_addr(const packet_t packet, uint8_t ** src, uint8_t ** dest) 150 /** Returns the stored packet addresses and their length. 151 * 152 * @param[in] packet The packet. 153 * @param[out] src The source address. May be NULL if not desired. 154 * @param[out] dest The destination address. May be NULL if not desired. 155 * @returns The stored addresses length. 156 * @returns Zero if the addresses are not present. 157 * @returns EINVAL if the packet is not valid. 158 */ 159 int packet_get_addr(const packet_t packet, uint8_t **src, uint8_t **dest) 105 160 { 106 161 if (!packet_is_valid(packet)) … … 116 171 } 117 172 173 /** Returns the packet content length. 174 * 175 * @param[in] packet The packet. 176 * @returns The packet content length in bytes. 177 * @returns Zero if the packet is not valid. 178 */ 118 179 size_t packet_get_data_length(const packet_t packet) 119 180 { … … 124 185 } 125 186 187 /** Returns the pointer to the beginning of the packet content. 188 * 189 * @param[in] packet The packet. 190 * @returns The pointer to the beginning of the packet content. 191 * @returns NULL if the packet is not valid. 192 */ 126 193 void *packet_get_data(const packet_t packet) 127 194 { … … 132 199 } 133 200 201 /** Sets the packet addresses. 202 * 203 * @param[in] packet The packet. 204 * @param[in] src The new source address. May be NULL. 205 * @param[in] dest The new destination address. May be NULL. 206 * @param[in] addr_len The addresses length. 207 * @returns EOK on success. 208 * @returns EINVAL if the packet is not valid. 209 * @returns ENOMEM if there is not enough memory left. 210 */ 134 211 int 135 packet_set_addr(packet_t packet, const uint8_t * src, const uint8_t *dest,212 packet_set_addr(packet_t packet, const uint8_t *src, const uint8_t *dest, 136 213 size_t addr_len) 137 214 { … … 170 247 } 171 248 249 /** Returns the packet copy. 250 * 251 * Copies the addresses, data, order and metric values. 252 * Does not copy the queue placement. 253 * 254 * @param[in] phone The packet server module phone. 255 * @param[in] packet The original packet. 256 * @returns The packet copy. 257 * @returns NULL on error. 258 */ 172 259 packet_t packet_get_copy(int phone, packet_t packet) 173 260 {
Note:
See TracChangeset
for help on using the changeset viewer.