Finish functions in bytes.c
This commit is contained in:
parent
197a49934d
commit
1be20dd542
2 changed files with 30 additions and 18 deletions
10
Makefile
10
Makefile
|
@ -36,6 +36,7 @@ PREFIX ?= /usr/local
|
||||||
includedir = $(DESTDIR)$(PREFIX)/include
|
includedir = $(DESTDIR)$(PREFIX)/include
|
||||||
libdir = $(DESTDIR)$(PREFIX)/lib
|
libdir = $(DESTDIR)$(PREFIX)/lib
|
||||||
|
|
||||||
|
srcs += src/bytes.c
|
||||||
srcs += src/haggis.c
|
srcs += src/haggis.c
|
||||||
hdrs += include/haggis.h
|
hdrs += include/haggis.h
|
||||||
|
|
||||||
|
@ -71,10 +72,13 @@ haggis.o: $(srcs) $(hdrs)
|
||||||
libhaggis.a: haggis.o
|
libhaggis.a: haggis.o
|
||||||
$(AR) rcs $@ haggis.o
|
$(AR) rcs $@ haggis.o
|
||||||
|
|
||||||
haggis_shared.o: $(srcs) $(hdrs)
|
bytes_shared.o: src/bytes.c include/haggis.h
|
||||||
$(CC) -c $(cflags) -fpic -o $@ $(srcs)
|
$(CC) -c $(cflags) -fpic -o $@ src/bytes.c
|
||||||
|
|
||||||
libhaggis.so: haggis_shared.o
|
haggis_shared.o: src/haggis.c include/haggis.h
|
||||||
|
$(CC) -c $(cflags) -fpic -o $@ src/haggis.c
|
||||||
|
|
||||||
|
libhaggis.so: bytes_shared.o haggis_shared.o
|
||||||
$(CC) -shared -o $@ haggis_shared.o
|
$(CC) -shared -o $@ haggis_shared.o
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
|
|
38
src/bytes.c
38
src/bytes.c
|
@ -26,14 +26,29 @@ u16 le_bytes_to_u16(u8 arr[2]) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void u64_to_le_bytes(u64 num, u8 arr[8]) {
|
void u64_to_le_bytes(u64 num, u8 arr[8]) {
|
||||||
// todo
|
u64 eighth = (num & 0xFF00000000000000) >> 56;
|
||||||
|
u64 seventh = (num & 0xFF000000000000) >> 48;
|
||||||
|
u64 sixth = (num & 0xFF0000000000) >> 40;
|
||||||
|
u64 fifth = (num & 0xFF00000000) >> 32;
|
||||||
|
u64 fourth = (num & 0xFF000000) >> 24;
|
||||||
|
u64 third = (num & 0xFF0000) >> 16;
|
||||||
|
u64 second = (num & 0xFF00) >> 8;
|
||||||
|
u64 first = num & 0xFF;
|
||||||
|
arr[0] = (u8)first;
|
||||||
|
arr[1] = (u8)second;
|
||||||
|
arr[2] = (u8)third;
|
||||||
|
arr[3] = (u8)fourth;
|
||||||
|
arr[4] = (u8)fifth;
|
||||||
|
arr[5] = (u8)sixth;
|
||||||
|
arr[6] = (u8)seventh;
|
||||||
|
arr[7] = (u8)eighth;
|
||||||
}
|
}
|
||||||
|
|
||||||
void u32_to_le_bytes(u32 num, u8 arr[4]) {
|
void u32_to_le_bytes(u32 num, u8 arr[4]) {
|
||||||
u32 fourth = (num & 0xFF000000) >> 24;
|
u32 fourth = (num & 0xFF000000) >> 24;
|
||||||
u32 third = (num & 0x00FF0000) >> 16;
|
u32 third = (num & 0xFF0000) >> 16;
|
||||||
u32 second = (num & 0x0000FF00) >> 8;
|
u32 second = (num & 0xFF00) >> 8;
|
||||||
u32 first = num & 0x000000FF;
|
u32 first = num & 0xFF;
|
||||||
arr[0] = (u8)first;
|
arr[0] = (u8)first;
|
||||||
arr[1] = (u8)second;
|
arr[1] = (u8)second;
|
||||||
arr[2] = (u8)third;
|
arr[2] = (u8)third;
|
||||||
|
@ -41,16 +56,9 @@ void u32_to_le_bytes(u32 num, u8 arr[4]) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void u16_to_le_bytes(u16 num, u8 arr[2]) {
|
void u16_to_le_bytes(u16 num, u8 arr[2]) {
|
||||||
// todo
|
u16 second = (num & 0xFF00) >> 8;
|
||||||
|
u16 first = num & 0xFF;
|
||||||
|
arr[0] = (u8)first;
|
||||||
|
arr[1] = (u8)second;
|
||||||
}
|
}
|
||||||
|
|
||||||
int main() {
|
|
||||||
u8 arr[4] = { 42, 1, 0, 0 };
|
|
||||||
u8 new_arr[4];
|
|
||||||
u32 num;
|
|
||||||
|
|
||||||
num = le_bytes_to_u32(arr);
|
|
||||||
printf("Num: %i\n", num);
|
|
||||||
u32_to_le_bytes(num, new_arr);
|
|
||||||
printf("Array: { %i, %i, %i, %i };\n", new_arr[0], new_arr[1], new_arr[2], new_arr[3]);
|
|
||||||
}
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue