Rev 1757 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 1757 | Rev 1780 | ||
|---|---|---|---|
| Line 61... | Line 61... | ||
| 61 | * @param cmp Comparator function. |
61 | * @param cmp Comparator function. |
| 62 | * |
62 | * |
| 63 | */ |
63 | */ |
| 64 | void qsort(void * data, count_t n, size_t e_size, int (* cmp) (void * a, void * b)) |
64 | void qsort(void * data, count_t n, size_t e_size, int (* cmp) (void * a, void * b)) |
| 65 | { |
65 | { |
| 66 | __u8 buf_tmp[EBUFSIZE]; |
66 | uint8_t buf_tmp[EBUFSIZE]; |
| 67 | __u8 buf_pivot[EBUFSIZE]; |
67 | uint8_t buf_pivot[EBUFSIZE]; |
| 68 | void * tmp = buf_tmp; |
68 | void * tmp = buf_tmp; |
| 69 | void * pivot = buf_pivot; |
69 | void * pivot = buf_pivot; |
| 70 | 70 | ||
| 71 | if (e_size > EBUFSIZE) { |
71 | if (e_size > EBUFSIZE) { |
| 72 | pivot = (void *) malloc(e_size, 0); |
72 | pivot = (void *) malloc(e_size, 0); |
| Line 130... | Line 130... | ||
| 130 | * @param cmp Comparator function. |
130 | * @param cmp Comparator function. |
| 131 | * |
131 | * |
| 132 | */ |
132 | */ |
| 133 | void bubblesort(void * data, count_t n, size_t e_size, int (* cmp) (void * a, void * b)) |
133 | void bubblesort(void * data, count_t n, size_t e_size, int (* cmp) (void * a, void * b)) |
| 134 | { |
134 | { |
| 135 | __u8 buf_slot[EBUFSIZE]; |
135 | uint8_t buf_slot[EBUFSIZE]; |
| 136 | void * slot = buf_slot; |
136 | void * slot = buf_slot; |
| 137 | 137 | ||
| 138 | if (e_size > EBUFSIZE) { |
138 | if (e_size > EBUFSIZE) { |
| 139 | slot = (void *) malloc(e_size, 0); |
139 | slot = (void *) malloc(e_size, 0); |
| 140 | } |
140 | } |
| Line 182... | Line 182... | ||
| 182 | int int_cmp(void * a, void * b) |
182 | int int_cmp(void * a, void * b) |
| 183 | { |
183 | { |
| 184 | return (* (int *) a > * (int*)b) ? 1 : (*(int *)a < * (int *)b) ? -1 : 0; |
184 | return (* (int *) a > * (int*)b) ? 1 : (*(int *)a < * (int *)b) ? -1 : 0; |
| 185 | } |
185 | } |
| 186 | 186 | ||
| 187 | int __u8_cmp(void * a, void * b) |
187 | int uint8_t_cmp(void * a, void * b) |
| 188 | { |
188 | { |
| 189 | return (* (__u8 *) a > * (__u8 *)b) ? 1 : (*(__u8 *)a < * (__u8 *)b) ? -1 : 0; |
189 | return (* (uint8_t *) a > * (uint8_t *)b) ? 1 : (*(uint8_t *)a < * (uint8_t *)b) ? -1 : 0; |
| 190 | } |
190 | } |
| 191 | 191 | ||
| 192 | int __u16_cmp(void * a, void * b) |
192 | int uint16_t_cmp(void * a, void * b) |
| 193 | { |
193 | { |
| 194 | return (* (__u16 *) a > * (__u16 *)b) ? 1 : (*(__u16 *)a < * (__u16 *)b) ? -1 : 0; |
194 | return (* (uint16_t *) a > * (uint16_t *)b) ? 1 : (*(uint16_t *)a < * (uint16_t *)b) ? -1 : 0; |
| 195 | } |
195 | } |
| 196 | 196 | ||
| 197 | int __u32_cmp(void * a, void * b) |
197 | int uint32_t_cmp(void * a, void * b) |
| 198 | { |
198 | { |
| 199 | return (* (__u32 *) a > * (__u32 *)b) ? 1 : (*(__u32 *)a < * (__u32 *)b) ? -1 : 0; |
199 | return (* (uint32_t *) a > * (uint32_t *)b) ? 1 : (*(uint32_t *)a < * (uint32_t *)b) ? -1 : 0; |
| 200 | } |
200 | } |
| 201 | 201 | ||
| 202 | /** @} |
202 | /** @} |
| 203 | */ |
203 | */ |