From: John Hodge Date: Sun, 11 May 2014 09:10:55 +0000 (+0800) Subject: Merge branch 'master' of github.com:thepowersgang/acess2 X-Git-Url: https://git.ucc.asn.au/?a=commitdiff_plain;h=e8fb0fcddc277bf64ed1acbd8162b94177ebd019;hp=ff221f2369f548ce3987a9f2e40f3156b47087cf;p=tpg%2Facess2.git Merge branch 'master' of github.com:thepowersgang/acess2 --- diff --git a/.travis.yml b/.travis.yml index a98da7d9..52dc0327 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,4 +6,6 @@ compiler: clang #env: # - ARCH=host HOST_ARCH=x86 USE_ACPICA=0 # - ARCH=host HOST_ARCH=x86_64 CC="$CC -m64" -script: "make -k utest mtest" +script: + - "make utest-build mtest-build" + - "make -k utest-run mtest-run" diff --git a/KernelLand/Kernel/drv/proc.c b/KernelLand/Kernel/drv/proc.c index 03288aea..60bf4dd8 100644 --- a/KernelLand/Kernel/drv/proc.c +++ b/KernelLand/Kernel/drv/proc.c @@ -50,9 +50,8 @@ tVFS_NodeType gSysFS_DirNodeType = { .FindDir = SysFS_Comm_FindDir }; tSysFS_Ent gSysFS_Version_Kernel = { - NULL, NULL, // Nexts - &gSysFS_Version, // Parent - { + .Parent = &gSysFS_Version, // Parent + .Node = { .Inode = 1, // File #1 .ImplPtr = NULL, .ImplInt = (Uint)&gSysFS_Version_Kernel, // Self-Link @@ -61,12 +60,11 @@ tSysFS_Ent gSysFS_Version_Kernel = { .ACLs = &gVFS_ACL_EveryoneRO, .Type = &gSysFS_FileNodeType }, - "Kernel" + .Name = {"Kernel"} }; tSysFS_Ent gSysFS_Version = { - NULL, NULL, - &gSysFS_Root, - { + .Parent = &gSysFS_Root, + .Node = { .Size = 1, .ImplPtr = &gSysFS_Version_Kernel, .ImplInt = (Uint)&gSysFS_Version, // Self-Link @@ -75,7 +73,7 @@ tSysFS_Ent gSysFS_Version = { .Flags = VFS_FFLAG_DIRECTORY, .Type = &gSysFS_DirNodeType }, - "Version" + .Name = {"Version"} }; // Root of the SysFS tree (just used to keep the code clean) tSysFS_Ent gSysFS_Root = { @@ -86,7 +84,7 @@ tSysFS_Ent gSysFS_Root = { .ImplPtr = &gSysFS_Version, .ImplInt = (Uint)&gSysFS_Root // Self-Link }, - "/" + {"/"} }; tDevFS_Driver gSysFS_DriverInfo = { NULL, "system", diff --git a/KernelLand/Kernel/events.c b/KernelLand/Kernel/events.c index b0225efe..ec47a169 100644 --- a/KernelLand/Kernel/events.c +++ b/KernelLand/Kernel/events.c @@ -7,8 +7,8 @@ */ #define DEBUG 0 #include -#include #include +#include // === CODE === void Threads_PostEvent(tThread *Thread, Uint32 EventMask) diff --git a/KernelLand/Modules/IPStack/icmpv6.h b/KernelLand/Modules/IPStack/icmpv6.h index bda70b13..66f61341 100644 --- a/KernelLand/Modules/IPStack/icmpv6.h +++ b/KernelLand/Modules/IPStack/icmpv6.h @@ -26,32 +26,32 @@ typedef struct { Uint16 RouterLifetime; // Seconds, life time as a default router (wtf does that mean?) Uint32 ReachableTime; Uint32 RetransTimer; // Miliseconds, time between transmissions of RAs from this router - Uint8 Options[]; + Uint8 Options[0]; } PACKED tICMPv6_RA; typedef struct { Uint32 Reserved; tIPv6 TargetAddress; - Uint8 Options[]; + Uint8 Options[0]; } PACKED tICMPv6_NS; typedef struct { Uint32 Flags; tIPv6 TargetAddress; - Uint8 Options[]; + Uint8 Options[0]; } PACKED tICMPv6_NA; typedef struct { Uint32 Reserved; tIPv6 TargetAddress; tIPv6 DestinationAddress; - Uint8 Options[]; + Uint8 Options[0]; } PACKED tICMPv6_Redirect; typedef struct { Uint8 Type; // 1,2 Uint8 Length; // Length of field in units of 8 bytes (incl header), typically 1 - Uint8 Address[]; + Uint8 Address[0]; } PACKED tICMPv6_Opt_LinkAddr; typedef struct { @@ -62,7 +62,7 @@ typedef struct { Uint32 ValidLifetime; Uint32 PreferredLifetime; Uint32 _reserved2; - tIPv6 Prefix[]; + tIPv6 Prefix[0]; } PACKED tICMPv6_Opt_Prefix; typedef struct { @@ -70,7 +70,7 @@ typedef struct { Uint8 Length; Uint16 _rsvd1; Uint32 _rsvd2; - Uint8 Data[]; // All or part of the redirected message (not exceeding MTU) + Uint8 Data[0]; // All or part of the redirected message (not exceeding MTU) } PACKED tICMPv6_Opt_Redirect; typedef struct { diff --git a/KernelLand/Modules/IPStack/ipv6.h b/KernelLand/Modules/IPStack/ipv6.h index 35cd7422..fec00f75 100644 --- a/KernelLand/Modules/IPStack/ipv6.h +++ b/KernelLand/Modules/IPStack/ipv6.h @@ -32,7 +32,7 @@ struct sIPv6Header Uint8 HopLimit; tIPv6 Source; tIPv6 Destination; - char Data[]; + char Data[0]; }; #define IPV6_ETHERNET_ID 0x86DD diff --git a/Makefile b/Makefile index c283ec62..c3c26c16 100644 --- a/Makefile +++ b/Makefile @@ -66,20 +66,26 @@ all-install: install-Filesystem SyscallList ai-user ai-kmode clean: clean-kmode clean-user install: install-Filesystem SyscallList install-user install-kmode -utest: $(USRLIBS:%=utest-%) +utest-build: $(USRLIBS:%=utest-build-%) +utest-run: $(USRLIBS:%=utest-run-%) +utest: utest-build utest-run -$(USRLIBS:%=utest-%): utest-%: +utest-build-%: @CC=$(NCC) $(SUBMAKE) -C Usermode/Libraries/$*_src generate_exp - @CC=$(NCC) $(SUBMAKE) -C Usermode/Libraries/$*_src utest -k + @CC=$(NCC) $(SUBMAKE) -C Usermode/Libraries/$*_src utest-build +utest-run-%: + @CC=$(NCC) $(SUBMAKE) -C Usermode/Libraries/$*_src utest-run -k # TODO: Module tests using DiskTool and NetTest -mtest: mtest-Network +mtest: mtest-build mtest-run @echo > /dev/null - -mtest-Network: - @$(SUBMAKE) -C Tools/nativelib - @$(SUBMAKE) -C Tools/NetTest - @$(SUBMAKE) -C Tools/NetTest_Runner +mtest-build: + # Network + @CC=$(NCC) $(SUBMAKE) -C Tools/nativelib + @CC=$(NCC) $(SUBMAKE) -C Tools/NetTest + @CC=$(NCC) $(SUBMAKE) -C Tools/NetTest_Runner +mtest-run: + @echo "=== Network Module Test ===" @cd Tools && ./nettest_runner SyscallList: include/syscalls.h diff --git a/Tools/NetTest_Runner/net.c b/Tools/NetTest_Runner/net.c index 231df502..4cbf3c8d 100644 --- a/Tools/NetTest_Runner/net.c +++ b/Tools/NetTest_Runner/net.c @@ -9,6 +9,8 @@ #include #include "net.h" #include +#include // unlink/... +#include // gettimeofday #define CONNECT_TIMEOUT 10*1000 #define MAX_IFS 4 @@ -145,7 +147,7 @@ size_t Net_Receive(int IfNum, size_t MaxLen, void *DestBuf, unsigned int Timeout if( Net_int_EnsureConnected(IfNum) && WaitOnFD(If->FD, false, Timeout) ) { - size_t rv = recvfrom(If->FD, DestBuf, MaxLen, 0, &If->addr, &If->addrlen); + size_t rv = recvfrom(If->FD, DestBuf, MaxLen, 0, (struct sockaddr*)&If->addr, &If->addrlen); Net_int_SavePacket(If, rv, DestBuf); return rv; } @@ -160,7 +162,7 @@ void Net_Send(int IfNum, size_t Length, const void *Buf) if( !WaitOnFD(If->FD, true, CONNECT_TIMEOUT) ) return ; Net_int_SavePacket(If, Length, Buf); - int rv = sendto(If->FD, Buf, Length, 0, &If->addr, If->addrlen); + int rv = sendto(If->FD, Buf, Length, 0, (struct sockaddr*)&If->addr, If->addrlen); if( rv < 0 ) perror("Net_Send - send"); } diff --git a/Tools/nativelib/include/threads_int.h b/Tools/nativelib/include/threads_int.h index 7bd91c17..08bb4f78 100644 --- a/Tools/nativelib/include/threads_int.h +++ b/Tools/nativelib/include/threads_int.h @@ -103,12 +103,12 @@ extern int Threads_int_CreateThread(struct sThread *Thread); extern int Threads_int_ThreadingEnabled(void); -extern tThread *Proc_GetCurThread(void); -extern tThread *Threads_RemActive(void); -extern void Threads_AddActive(tThread *Thread); +extern struct sThread *Proc_GetCurThread(void); +extern struct sThread *Threads_RemActive(void); +extern void Threads_AddActive(struct sThread *Thread); extern void Threads_int_WaitForStatusEnd(enum eThreadStatus Status); -extern int Threads_int_Sleep(enum eThreadStatus Status, void *Ptr, int Num, tThread **ListHead, tThread **ListTail, tShortSpinlock *Lock); -extern void Semaphore_ForceWake(tThread *Thread); +extern int Threads_int_Sleep(enum eThreadStatus Status, void *Ptr, int Num, struct sThread **ListHead, struct sThread **ListTail, tShortSpinlock *Lock); +extern void Semaphore_ForceWake(struct sThread *Thread); extern tThreadIntMutex *Threads_int_MutexCreate(void); extern void Threads_int_MutexDestroy(tThreadIntMutex *Mutex); diff --git a/Usermode/Libraries/Makefile.tpl b/Usermode/Libraries/Makefile.tpl index 5317079e..5c796c3a 100644 --- a/Usermode/Libraries/Makefile.tpl +++ b/Usermode/Libraries/Makefile.tpl @@ -42,8 +42,9 @@ all: _libs $(_BIN) $(_XBIN) .PHONY: _libs +.PRECIOUS: .no -HEADERS := $(patsubst include_exp/%,../../include/%,$(shell find include_exp/ -name \*.h)) +HEADERS := $(patsubst include_exp/%,../../include/%,$(shell find include_exp/ -name \*.h 2>/dev/null)) _libs: $(HEADERS) ../../include/%: include_exp/% @@ -58,6 +59,7 @@ generate_exp: $(UTESTS:%=EXP_%.txt) @echo > /dev/null utest-build: $(UTESTS:%=TEST_%) + @echo > /dev/null utest-run: $(UTESTS:%=runtest-%) @echo > /dev/null diff --git a/Usermode/Libraries/acess.ld_src/Makefile b/Usermode/Libraries/acess.ld_src/Makefile index 25a5c565..09a7c8f8 100644 --- a/Usermode/Libraries/acess.ld_src/Makefile +++ b/Usermode/Libraries/acess.ld_src/Makefile @@ -8,7 +8,7 @@ BIN = $(OUTPUTDIR)Libs/acess.ld -.PHONY: all clean install utest generate_exp +.PHONY: all clean install utest utest-build utest-run generate_exp all: $(BIN) @@ -18,7 +18,7 @@ clean: install: $(BIN) # How does one unit test a linker script? -utest generate_exp: +utest generate_exp utest-build utest-run: @echo > /dev/null $(BIN): acess_$(ARCHDIR).ld.h diff --git a/Usermode/Libraries/crt0.o_src/Makefile b/Usermode/Libraries/crt0.o_src/Makefile index 7ddc5f41..3c208960 100644 --- a/Usermode/Libraries/crt0.o_src/Makefile +++ b/Usermode/Libraries/crt0.o_src/Makefile @@ -6,7 +6,7 @@ BIN = $(OUTPUTDIR)Libs/crt0.o $(OUTPUTDIR)Libs/crtbegin.o $(OUTPUTDIR)Libs/crtend.o -.PHONY: all clean install utest generate_exp +.PHONY: all clean install utest utest-build generate_exp all: $(BIN) @@ -16,7 +16,7 @@ clean: $(RM) $(BIN) # Disabled unit tests -utest generate_exp: +utest generate_exp utest-build utest-run: @echo > /dev/null $(OUTPUTDIR)Libs/%.o: %.c