Safe API Framework 0.1.0 build 384e6ae
Layered API framework for safety-related applications (ERTMS RBC reference targeting CENELEC EN 50128 SIL 4)
Loading...
Searching...
No Matches
rte_cast.h
Go to the documentation of this file.
1
32#ifndef RTE_COMMON_CAST_H
33#define RTE_COMMON_CAST_H
34
37
38#ifdef __cplusplus
39extern "C" {
40#endif
41
51rte_status_t rte_cast_i8_to_i16(int8_t in, int16_t *out);
52
62rte_status_t rte_cast_i8_to_i32(int8_t in, int32_t *out);
63
73rte_status_t rte_cast_i8_to_i64(int8_t in, int64_t *out);
74
84rte_status_t rte_cast_i8_to_u8(int8_t in, uint8_t *out);
85
95rte_status_t rte_cast_i8_to_u16(int8_t in, uint16_t *out);
96
106rte_status_t rte_cast_i8_to_u32(int8_t in, uint32_t *out);
107
117rte_status_t rte_cast_i8_to_u64(int8_t in, uint64_t *out);
118
128rte_status_t rte_cast_i8_to_size(int8_t in, size_t *out);
129
139rte_status_t rte_cast_i16_to_i8(int16_t in, int8_t *out);
140
150rte_status_t rte_cast_i16_to_i32(int16_t in, int32_t *out);
151
161rte_status_t rte_cast_i16_to_i64(int16_t in, int64_t *out);
162
172rte_status_t rte_cast_i16_to_u8(int16_t in, uint8_t *out);
173
183rte_status_t rte_cast_i16_to_u16(int16_t in, uint16_t *out);
184
194rte_status_t rte_cast_i16_to_u32(int16_t in, uint32_t *out);
195
205rte_status_t rte_cast_i16_to_u64(int16_t in, uint64_t *out);
206
216rte_status_t rte_cast_i16_to_size(int16_t in, size_t *out);
217
227rte_status_t rte_cast_i32_to_i8(int32_t in, int8_t *out);
228
238rte_status_t rte_cast_i32_to_i16(int32_t in, int16_t *out);
239
249rte_status_t rte_cast_i32_to_i64(int32_t in, int64_t *out);
250
260rte_status_t rte_cast_i32_to_u8(int32_t in, uint8_t *out);
261
271rte_status_t rte_cast_i32_to_u16(int32_t in, uint16_t *out);
272
282rte_status_t rte_cast_i32_to_u32(int32_t in, uint32_t *out);
283
293rte_status_t rte_cast_i32_to_u64(int32_t in, uint64_t *out);
294
304rte_status_t rte_cast_i32_to_size(int32_t in, size_t *out);
305
315rte_status_t rte_cast_i64_to_i8(int64_t in, int8_t *out);
316
326rte_status_t rte_cast_i64_to_i16(int64_t in, int16_t *out);
327
337rte_status_t rte_cast_i64_to_i32(int64_t in, int32_t *out);
338
348rte_status_t rte_cast_i64_to_u8(int64_t in, uint8_t *out);
349
359rte_status_t rte_cast_i64_to_u16(int64_t in, uint16_t *out);
360
370rte_status_t rte_cast_i64_to_u32(int64_t in, uint32_t *out);
371
381rte_status_t rte_cast_i64_to_u64(int64_t in, uint64_t *out);
382
392rte_status_t rte_cast_i64_to_size(int64_t in, size_t *out);
393
403rte_status_t rte_cast_u8_to_i8(uint8_t in, int8_t *out);
404
414rte_status_t rte_cast_u8_to_i16(uint8_t in, int16_t *out);
415
425rte_status_t rte_cast_u8_to_i32(uint8_t in, int32_t *out);
426
436rte_status_t rte_cast_u8_to_i64(uint8_t in, int64_t *out);
437
447rte_status_t rte_cast_u8_to_u16(uint8_t in, uint16_t *out);
448
458rte_status_t rte_cast_u8_to_u32(uint8_t in, uint32_t *out);
459
469rte_status_t rte_cast_u8_to_u64(uint8_t in, uint64_t *out);
470
480rte_status_t rte_cast_u8_to_size(uint8_t in, size_t *out);
481
491rte_status_t rte_cast_u16_to_i8(uint16_t in, int8_t *out);
492
502rte_status_t rte_cast_u16_to_i16(uint16_t in, int16_t *out);
503
513rte_status_t rte_cast_u16_to_i32(uint16_t in, int32_t *out);
514
524rte_status_t rte_cast_u16_to_i64(uint16_t in, int64_t *out);
525
535rte_status_t rte_cast_u16_to_u8(uint16_t in, uint8_t *out);
536
546rte_status_t rte_cast_u16_to_u32(uint16_t in, uint32_t *out);
547
557rte_status_t rte_cast_u16_to_u64(uint16_t in, uint64_t *out);
558
568rte_status_t rte_cast_u16_to_size(uint16_t in, size_t *out);
569
579rte_status_t rte_cast_u32_to_i8(uint32_t in, int8_t *out);
580
590rte_status_t rte_cast_u32_to_i16(uint32_t in, int16_t *out);
591
601rte_status_t rte_cast_u32_to_i32(uint32_t in, int32_t *out);
602
612rte_status_t rte_cast_u32_to_i64(uint32_t in, int64_t *out);
613
623rte_status_t rte_cast_u32_to_u8(uint32_t in, uint8_t *out);
624
634rte_status_t rte_cast_u32_to_u16(uint32_t in, uint16_t *out);
635
645rte_status_t rte_cast_u32_to_u64(uint32_t in, uint64_t *out);
646
656rte_status_t rte_cast_u32_to_size(uint32_t in, size_t *out);
657
667rte_status_t rte_cast_u64_to_i8(uint64_t in, int8_t *out);
668
678rte_status_t rte_cast_u64_to_i16(uint64_t in, int16_t *out);
679
689rte_status_t rte_cast_u64_to_i32(uint64_t in, int32_t *out);
690
700rte_status_t rte_cast_u64_to_i64(uint64_t in, int64_t *out);
701
711rte_status_t rte_cast_u64_to_u8(uint64_t in, uint8_t *out);
712
722rte_status_t rte_cast_u64_to_u16(uint64_t in, uint16_t *out);
723
733rte_status_t rte_cast_u64_to_u32(uint64_t in, uint32_t *out);
734
744rte_status_t rte_cast_u64_to_size(uint64_t in, size_t *out);
745
755rte_status_t rte_cast_size_to_i8(size_t in, int8_t *out);
756
766rte_status_t rte_cast_size_to_i16(size_t in, int16_t *out);
767
777rte_status_t rte_cast_size_to_i32(size_t in, int32_t *out);
778
788rte_status_t rte_cast_size_to_i64(size_t in, int64_t *out);
789
799rte_status_t rte_cast_size_to_u8(size_t in, uint8_t *out);
800
810rte_status_t rte_cast_size_to_u16(size_t in, uint16_t *out);
811
821rte_status_t rte_cast_size_to_u32(size_t in, uint32_t *out);
822
832rte_status_t rte_cast_size_to_u64(size_t in, uint64_t *out);
833
843rte_status_t rte_cast_checked_add_u32(uint32_t a, uint32_t b, uint32_t *out);
844
854rte_status_t rte_cast_checked_sub_u32(uint32_t a, uint32_t b, uint32_t *out);
855
865rte_status_t rte_cast_checked_mul_u32(uint32_t a, uint32_t b, uint32_t *out);
866
876rte_status_t rte_cast_checked_add_size(size_t a, size_t b, size_t *out);
877
887rte_status_t rte_cast_checked_sub_size(size_t a, size_t b, size_t *out);
888
898rte_status_t rte_cast_checked_mul_size(size_t a, size_t b, size_t *out);
899
911rte_status_t rte_cast_bounds_check(size_t index, size_t count);
912
913#ifdef __cplusplus
914}
915#endif
916
917#endif /* RTE_COMMON_CAST_H */
918 /* CAST */
rte_status_t rte_cast_u64_to_u8(uint64_t in, uint8_t *out)
Checked cast from uint64_t to uint8_t.
Definition rte_cast.c:907
rte_status_t rte_cast_i16_to_u32(int16_t in, uint32_t *out)
Checked cast from int16_t to uint32_t.
Definition rte_cast.c:197
rte_status_t rte_cast_u64_to_i64(uint64_t in, int64_t *out)
Checked cast from uint64_t to int64_t.
Definition rte_cast.c:892
rte_status_t rte_cast_size_to_u8(size_t in, uint8_t *out)
Checked cast from size_t to uint8_t.
Definition rte_cast.c:1035
rte_status_t rte_cast_u32_to_u8(uint32_t in, uint8_t *out)
Checked cast from uint32_t to uint8_t.
Definition rte_cast.c:788
rte_status_t rte_cast_u8_to_u64(uint8_t in, uint64_t *out)
Checked cast from uint8_t to uint64_t.
Definition rte_cast.c:600
rte_status_t rte_cast_u8_to_i16(uint8_t in, int16_t *out)
Checked cast from uint8_t to int16_t.
Definition rte_cast.c:550
rte_status_t rte_cast_i16_to_size(int16_t in, size_t *out)
Checked cast from int16_t to size_t.
Definition rte_cast.c:227
rte_status_t rte_cast_checked_mul_u32(uint32_t a, uint32_t b, uint32_t *out)
Checked multiplication: *out = a * b, only if the result fits uint32_t.
Definition rte_cast.c:1131
rte_status_t rte_cast_u8_to_i32(uint8_t in, int32_t *out)
Checked cast from uint8_t to int32_t.
Definition rte_cast.c:560
rte_status_t rte_cast_u16_to_i16(uint16_t in, int16_t *out)
Checked cast from uint16_t to int16_t.
Definition rte_cast.c:644
rte_status_t rte_cast_i32_to_u8(int32_t in, uint8_t *out)
Checked cast from int32_t to uint8_t.
Definition rte_cast.c:296
rte_status_t rte_cast_bounds_check(size_t index, size_t count)
Checked array/index bounds check: is index a valid index into an array of count elements?
Definition rte_cast.c:1199
rte_status_t rte_cast_i32_to_i8(int32_t in, int8_t *out)
Checked cast from int32_t to int8_t.
Definition rte_cast.c:248
rte_status_t rte_cast_i32_to_u64(int32_t in, uint64_t *out)
Checked cast from int32_t to uint64_t.
Definition rte_cast.c:349
rte_status_t rte_cast_size_to_u64(size_t in, uint64_t *out)
Checked cast from size_t to uint64_t.
Definition rte_cast.c:1083
rte_status_t rte_cast_u16_to_u8(uint16_t in, uint8_t *out)
Checked cast from uint16_t to uint8_t.
Definition rte_cast.c:679
rte_status_t rte_cast_u64_to_u32(uint64_t in, uint32_t *out)
Checked cast from uint64_t to uint32_t.
Definition rte_cast.c:937
rte_status_t rte_cast_checked_sub_size(size_t a, size_t b, size_t *out)
Checked subtraction: *out = a - b, only if b <= a (no underflow).
Definition rte_cast.c:1167
rte_status_t rte_cast_u8_to_u32(uint8_t in, uint32_t *out)
Checked cast from uint8_t to uint32_t.
Definition rte_cast.c:590
rte_status_t rte_cast_u16_to_i32(uint16_t in, int32_t *out)
Checked cast from uint16_t to int32_t.
Definition rte_cast.c:659
rte_status_t rte_cast_i64_to_u16(int64_t in, uint16_t *out)
Checked cast from int64_t to uint16_t.
Definition rte_cast.c:461
rte_status_t rte_cast_i64_to_u64(int64_t in, uint64_t *out)
Checked cast from int64_t to uint64_t.
Definition rte_cast.c:499
rte_status_t rte_cast_i32_to_i64(int32_t in, int64_t *out)
Checked cast from int32_t to int64_t.
Definition rte_cast.c:286
rte_status_t rte_cast_i8_to_u8(int8_t in, uint8_t *out)
Checked cast from int8_t to uint8_t.
Definition rte_cast.c:43
rte_status_t rte_cast_i64_to_i16(int64_t in, int16_t *out)
Checked cast from int64_t to int16_t.
Definition rte_cast.c:404
rte_status_t rte_cast_u8_to_i8(uint8_t in, int8_t *out)
Checked cast from uint8_t to int8_t.
Definition rte_cast.c:535
rte_status_t rte_cast_u64_to_size(uint64_t in, size_t *out)
Checked cast from uint64_t to size_t.
Definition rte_cast.c:952
rte_status_t rte_cast_i8_to_i32(int8_t in, int32_t *out)
Checked cast from int8_t to int32_t.
Definition rte_cast.c:23
rte_status_t rte_cast_size_to_i8(size_t in, int8_t *out)
Checked cast from size_t to int8_t.
Definition rte_cast.c:971
rte_status_t rte_cast_i32_to_size(int32_t in, size_t *out)
Checked cast from int32_t to size_t.
Definition rte_cast.c:364
rte_status_t rte_cast_i16_to_i64(int16_t in, int64_t *out)
Checked cast from int16_t to int64_t.
Definition rte_cast.c:153
rte_status_t rte_cast_i64_to_u8(int64_t in, uint8_t *out)
Checked cast from int64_t to uint8_t.
Definition rte_cast.c:442
rte_status_t rte_cast_i16_to_u8(int16_t in, uint8_t *out)
Checked cast from int16_t to uint8_t.
Definition rte_cast.c:163
rte_status_t rte_cast_u32_to_i16(uint32_t in, int16_t *out)
Checked cast from uint32_t to int16_t.
Definition rte_cast.c:748
rte_status_t rte_cast_i8_to_u16(int8_t in, uint16_t *out)
Checked cast from int8_t to uint16_t.
Definition rte_cast.c:58
rte_status_t rte_cast_i32_to_u32(int32_t in, uint32_t *out)
Checked cast from int32_t to uint32_t.
Definition rte_cast.c:334
rte_status_t rte_cast_u32_to_u64(uint32_t in, uint64_t *out)
Checked cast from uint32_t to uint64_t.
Definition rte_cast.c:818
rte_status_t rte_cast_u8_to_i64(uint8_t in, int64_t *out)
Checked cast from uint8_t to int64_t.
Definition rte_cast.c:570
rte_status_t rte_cast_checked_sub_u32(uint32_t a, uint32_t b, uint32_t *out)
Checked subtraction: *out = a - b, only if b <= a (no underflow).
Definition rte_cast.c:1115
rte_status_t rte_cast_u8_to_u16(uint8_t in, uint16_t *out)
Checked cast from uint8_t to uint16_t.
Definition rte_cast.c:580
rte_status_t rte_cast_i8_to_u32(int8_t in, uint32_t *out)
Checked cast from int8_t to uint32_t.
Definition rte_cast.c:73
rte_status_t rte_cast_u16_to_size(uint16_t in, size_t *out)
Checked cast from uint16_t to size_t.
Definition rte_cast.c:714
rte_status_t rte_cast_i64_to_i8(int64_t in, int8_t *out)
Checked cast from int64_t to int8_t.
Definition rte_cast.c:385
rte_status_t rte_cast_i64_to_size(int64_t in, size_t *out)
Checked cast from int64_t to size_t.
Definition rte_cast.c:514
rte_status_t rte_cast_checked_add_u32(uint32_t a, uint32_t b, uint32_t *out)
Checked addition: *out = a + b, only if the result fits uint32_t.
Definition rte_cast.c:1094
rte_status_t rte_cast_size_to_i64(size_t in, int64_t *out)
Checked cast from size_t to int64_t.
Definition rte_cast.c:1019
rte_status_t rte_cast_u16_to_u32(uint16_t in, uint32_t *out)
Checked cast from uint16_t to uint32_t.
Definition rte_cast.c:694
rte_status_t rte_cast_u16_to_u64(uint16_t in, uint64_t *out)
Checked cast from uint16_t to uint64_t.
Definition rte_cast.c:704
rte_status_t rte_cast_u16_to_i8(uint16_t in, int8_t *out)
Checked cast from uint16_t to int8_t.
Definition rte_cast.c:629
rte_status_t rte_cast_i8_to_u64(int8_t in, uint64_t *out)
Checked cast from int8_t to uint64_t.
Definition rte_cast.c:88
rte_status_t rte_cast_u64_to_i8(uint64_t in, int8_t *out)
Checked cast from uint64_t to int8_t.
Definition rte_cast.c:847
rte_status_t rte_cast_size_to_u16(size_t in, uint16_t *out)
Checked cast from size_t to uint16_t.
Definition rte_cast.c:1051
rte_status_t rte_cast_i64_to_u32(int64_t in, uint32_t *out)
Checked cast from int64_t to uint32_t.
Definition rte_cast.c:480
rte_status_t rte_cast_u8_to_size(uint8_t in, size_t *out)
Checked cast from uint8_t to size_t.
Definition rte_cast.c:610
rte_status_t rte_cast_i32_to_i16(int32_t in, int16_t *out)
Checked cast from int32_t to int16_t.
Definition rte_cast.c:267
rte_status_t rte_cast_i16_to_i32(int16_t in, int32_t *out)
Checked cast from int16_t to int32_t.
Definition rte_cast.c:143
rte_status_t rte_cast_u64_to_i16(uint64_t in, int16_t *out)
Checked cast from uint64_t to int16_t.
Definition rte_cast.c:862
rte_status_t rte_cast_size_to_i16(size_t in, int16_t *out)
Checked cast from size_t to int16_t.
Definition rte_cast.c:987
rte_status_t rte_cast_i16_to_u16(int16_t in, uint16_t *out)
Checked cast from int16_t to uint16_t.
Definition rte_cast.c:182
rte_status_t rte_cast_checked_mul_size(size_t a, size_t b, size_t *out)
Checked multiplication: *out = a * b, only if the result fits size_t.
Definition rte_cast.c:1183
rte_status_t rte_cast_u32_to_i64(uint32_t in, int64_t *out)
Checked cast from uint32_t to int64_t.
Definition rte_cast.c:778
rte_status_t rte_cast_u16_to_i64(uint16_t in, int64_t *out)
Checked cast from uint16_t to int64_t.
Definition rte_cast.c:669
rte_status_t rte_cast_u32_to_i8(uint32_t in, int8_t *out)
Checked cast from uint32_t to int8_t.
Definition rte_cast.c:733
rte_status_t rte_cast_i8_to_i16(int8_t in, int16_t *out)
Checked cast from int8_t to int16_t.
Definition rte_cast.c:13
rte_status_t rte_cast_u32_to_size(uint32_t in, size_t *out)
Checked cast from uint32_t to size_t.
Definition rte_cast.c:828
rte_status_t rte_cast_size_to_u32(size_t in, uint32_t *out)
Checked cast from size_t to uint32_t.
Definition rte_cast.c:1067
rte_status_t rte_cast_i64_to_i32(int64_t in, int32_t *out)
Checked cast from int64_t to int32_t.
Definition rte_cast.c:423
rte_status_t rte_cast_i16_to_u64(int16_t in, uint64_t *out)
Checked cast from int16_t to uint64_t.
Definition rte_cast.c:212
rte_status_t rte_cast_i8_to_size(int8_t in, size_t *out)
Checked cast from int8_t to size_t.
Definition rte_cast.c:103
rte_status_t rte_cast_u64_to_u16(uint64_t in, uint16_t *out)
Checked cast from uint64_t to uint16_t.
Definition rte_cast.c:922
rte_status_t rte_cast_u32_to_i32(uint32_t in, int32_t *out)
Checked cast from uint32_t to int32_t.
Definition rte_cast.c:763
rte_status_t rte_cast_i32_to_u16(int32_t in, uint16_t *out)
Checked cast from int32_t to uint16_t.
Definition rte_cast.c:315
rte_status_t rte_cast_u32_to_u16(uint32_t in, uint16_t *out)
Checked cast from uint32_t to uint16_t.
Definition rte_cast.c:803
rte_status_t rte_cast_checked_add_size(size_t a, size_t b, size_t *out)
Checked addition: *out = a + b, only if the result fits size_t.
Definition rte_cast.c:1148
rte_status_t rte_cast_i16_to_i8(int16_t in, int8_t *out)
Checked cast from int16_t to int8_t.
Definition rte_cast.c:124
rte_status_t rte_cast_u64_to_i32(uint64_t in, int32_t *out)
Checked cast from uint64_t to int32_t.
Definition rte_cast.c:877
rte_status_t rte_cast_size_to_i32(size_t in, int32_t *out)
Checked cast from size_t to int32_t.
Definition rte_cast.c:1003
rte_status_t rte_cast_i8_to_i64(int8_t in, int64_t *out)
Checked cast from int8_t to int64_t.
Definition rte_cast.c:33
rte_status_t
Common result/status codes.
Definition rte_status.h:27
Common status/error codes returned by every Safe API Framework function. Shared across all OS Abstrac...
Common fixed-width types and the caller-owned-storage handle pattern used by every OAL service (see A...