Rev 4192 | Rev 4307 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 4192 | Rev 4243 | ||
|---|---|---|---|
| Line 116... | Line 116... | ||
| 116 | 116 | ||
| 117 | int packet_set_addr( packet_t packet, const uint8_t * src, const uint8_t * dest, size_t addr_len ){ |
117 | int packet_set_addr( packet_t packet, const uint8_t * src, const uint8_t * dest, size_t addr_len ){ |
| 118 | size_t padding; |
118 | size_t padding; |
| 119 | 119 | ||
| 120 | if( ! packet_is_valid( packet )) return EINVAL; |
120 | if( ! packet_is_valid( packet )) return EINVAL; |
| 121 | if( packet->addr_len >= addr_len ) return ENOMEM; |
121 | if( packet->addr_len < addr_len ) return ENOMEM; |
| 122 | padding = packet->addr_len - addr_len; |
122 | padding = packet->addr_len - addr_len; |
| 123 | if( src ){ |
123 | if( src ){ |
| 124 | memcpy(( void * ) packet + packet->src_addr, src, addr_len ); |
124 | memcpy(( void * ) packet + packet->src_addr, src, addr_len ); |
| 125 | bzero(( void * ) packet + packet->src_addr + addr_len, padding ); |
125 | if( padding ) bzero(( void * ) packet + packet->src_addr + addr_len, padding ); |
| 126 | }else{ |
126 | }else{ |
| 127 | bzero(( void * ) packet + packet->src_addr + addr_len, packet->addr_len ); |
127 | bzero(( void * ) packet + packet->src_addr + addr_len, packet->addr_len ); |
| 128 | } |
128 | } |
| 129 | if( dest ){ |
129 | if( dest ){ |
| 130 | memcpy(( void * ) packet + packet->dest_addr, dest, addr_len ); |
130 | memcpy(( void * ) packet + packet->dest_addr, dest, addr_len ); |
| 131 | bzero(( void * ) packet + packet->dest_addr + addr_len, padding ); |
131 | if( padding ) bzero(( void * ) packet + packet->dest_addr + addr_len, padding ); |
| 132 | }else{ |
132 | }else{ |
| 133 | bzero(( void * ) packet + packet->dest_addr + addr_len, packet->addr_len ); |
133 | bzero(( void * ) packet + packet->dest_addr + addr_len, packet->addr_len ); |
| 134 | } |
134 | } |
| 135 | return EOK; |
135 | return EOK; |
| 136 | } |
136 | } |
| Line 171... | Line 171... | ||
| 171 | 171 | ||
| 172 | packet_id_t packet_id; |
172 | packet_id_t packet_id; |
| 173 | unsigned int size; |
173 | unsigned int size; |
| 174 | packet_t packet; |
174 | packet_t packet; |
| 175 | 175 | ||
| 176 | if( ERROR_OCCURRED( async_req_4_2( phone, NET_PACKET_CREATE_4, max_content, addr_len, max_prefix, max_suffix, & packet_id, & size )) |
176 | if( ERROR_OCCURRED( async_req_4_2( phone, NET_PACKET_CREATE_4, max_content, addr_len, max_prefix, max_suffix, ( ipcarg_t * ) & packet_id, & size )) |
| 177 | || ERROR_OCCURRED( packet_return( phone, & packet, packet_id, size ))){ |
177 | || ERROR_OCCURRED( packet_return( phone, & packet, packet_id, size ))){ |
| 178 | return NULL; |
178 | return NULL; |
| 179 | } |
179 | } |
| 180 | return packet; |
180 | return packet; |
| 181 | } |
181 | } |
| Line 185... | Line 185... | ||
| 185 | 185 | ||
| 186 | packet_id_t packet_id; |
186 | packet_id_t packet_id; |
| 187 | unsigned int size; |
187 | unsigned int size; |
| 188 | packet_t packet; |
188 | packet_t packet; |
| 189 | 189 | ||
| 190 | if( ERROR_OCCURRED( async_req_1_2( phone, NET_PACKET_CREATE_1, content, & packet_id, & size )) |
190 | if( ERROR_OCCURRED( async_req_1_2( phone, NET_PACKET_CREATE_1, content, ( ipcarg_t * ) & packet_id, & size )) |
| 191 | || ERROR_OCCURRED( packet_return( phone, & packet, packet_id, size ))){ |
191 | || ERROR_OCCURRED( packet_return( phone, & packet, packet_id, size ))){ |
| 192 | return NULL; |
192 | return NULL; |
| 193 | } |
193 | } |
| 194 | return packet; |
194 | return packet; |
| 195 | } |
195 | } |