Sfoglia il codice sorgente

refreshed files for start of work on directSocketsInterface for TCP in cheerpX, removed useless .d.ts and app.d.js files, started fiddling with networking to try and test TCP

oscar 2 mesi fa
parent
commit
6ef1aa2f44
9 ha cambiato i file con 362 aggiunte e 454 eliminazioni
  1. 136 140
      assets/cx_esm.js
  2. 136 140
      cx.js
  3. 76 76
      cxcore.js
  4. BIN
      cxcore.wasm
  5. 0 3
      src/app.d.js
  6. 2 3
      src/lib/NetworkingTab.svelte
  7. 3 2
      src/lib/WebVM.svelte
  8. 9 10
      src/lib/network.js
  9. 0 80
      types/directSockets.d.ts

File diff suppressed because it is too large
+ 136 - 140
assets/cx_esm.js


File diff suppressed because it is too large
+ 136 - 140
cx.js


+ 76 - 76
cxcore.js

@@ -206,7 +206,7 @@ function __ZN11CheerpXCore16handleInitSystemEjjPN6client10Uint8ArrayES2_(Larg0,L
 			tmp3=HEAP8;
 			Lgeptoindexphi17=HEAP32[4+Lgeptoindex6>>2]|0;
 			Lgeptoindex6=Lgeptoindexphi17;
-			tmp3={type:3,vgaRamOffset:Lgeptoindex6,vgaDevice:((352+(HEAP32[16+tmp4>>2]|0)|0)|0)};
+			tmp3={type:5,vgaRamOffset:Lgeptoindex6,vgaDevice:((352+(HEAP32[16+tmp4>>2]|0)|0)|0)};
 			postMessage(tmp3);
 			return;
 		}
@@ -259,22 +259,22 @@ function __ZN11CheerpXCore17handleMessageImplEPN6client11CoreMessageE(Larg0){
 	Lgeptoindex17=2119872|0;
 	tmp1=2120020|0;
 	a:switch((Larg0.type)|0){
-		case 8:
+		case 3:
 		L$poptgep$poptgep$poptgep$poptgep$poptgepsqueezed$poptgepsqueezed$poptgepsqueezed=Larg0.mhz;
 		tmp9=Larg0.mem;
 		tmp4=Larg0.bios;
 		__ZN11CheerpXCore16handleInitSystemEjjPN6client10Uint8ArrayES2_(L$poptgep$poptgep$poptgep$poptgep$poptgepsqueezed$poptgepsqueezed$poptgepsqueezed,tmp9,tmp4,Larg0.vgaBios);
 		break a;
-		case 2:
+		case 4:
 		__ZN11CheerpXCore17handleStartSystemEv();
 		break a;
-		case 7:
+		case 9:
 		L$poptgep$poptgep$poptgep$poptgep$poptgepsqueezed$poptgepsqueezed$poptgepsqueezed=HEAP32[16+(HEAP32[811182]|0)>>2]|0;
 		__ZN10SystemData11scheduleIrqEjj(L$poptgep$poptgep$poptgep$poptgep$poptgepsqueezed$poptgepsqueezed$poptgepsqueezed,0,Larg0.value);
 		__ZN7CoreCtx8setStateENS_5STATEE(HEAP32[12+(HEAP32[811182]|0)>>2]|0,0);
 		__ZN11CheerpXCore8scheduleEv();
 		break a;
-		case 9:
+		case 10:
 		tmp4=2119796|0;
 		if(((Larg0.diskType)|0)!==0){
 			if(((Larg0.diskType)|0)===1){
@@ -335,54 +335,54 @@ function __ZN11CheerpXCore17handleMessageImplEPN6client11CoreMessageE(Larg0){
 		}
 		___assert_fail(Lgeptoindex17,tmp5,396,tmp6);
 		;
-		case 13:
+		case 14:
 		__ZN8Debugger9attachHudEv((__ZN8Debugger11getInstanceEv()|0)|0);
-		tmp4={type:14, intWrapper: ((3242652|0)|0), statType: 0, statName: "ByteCode"};
+		tmp4={type:15, intWrapper: ((3242652|0)|0), statType: 0, statName: "ByteCode"};
 		postMessage(tmp4);
-		tmp4={type:14, intWrapper: ((3241484|0)|0), statType: 0, statName: "JIT - Queue Length"};
+		tmp4={type:15, intWrapper: ((3241484|0)|0), statType: 0, statName: "JIT - Queue Length"};
 		postMessage(tmp4);
-		tmp4={type:14, intWrapper: ((3241504|0)|0), statType: 0, statName: "JIT - Cold"};
+		tmp4={type:15, intWrapper: ((3241504|0)|0), statType: 0, statName: "JIT - Cold"};
 		postMessage(tmp4);
-		tmp4={type:14, intWrapper: ((3241620|0)|0), statType: 0, statName: "JIT - Invalid"};
+		tmp4={type:15, intWrapper: ((3241620|0)|0), statType: 0, statName: "JIT - Invalid"};
 		postMessage(tmp4);
-		tmp4={type:14, intWrapper: ((3244724|0)|0), statType: 0, statName: "JIT - FP80 failed"};
+		tmp4={type:15, intWrapper: ((3244724|0)|0), statType: 0, statName: "JIT - FP80 failed"};
 		postMessage(tmp4);
-		tmp4={type:14, intWrapper: ((3241508|0)|0), statType: 0, statName: "JIT - Rejected"};
+		tmp4={type:15, intWrapper: ((3241508|0)|0), statType: 0, statName: "JIT - Rejected"};
 		postMessage(tmp4);
-		tmp4={type:14, intWrapper: ((3249392|0)|0), statType: 0, statName: "JIT - Stub Recompile"};
+		tmp4={type:15, intWrapper: ((3249392|0)|0), statType: 0, statName: "JIT - Stub Recompile"};
 		postMessage(tmp4);
-		tmp4={type:14, intWrapper: ((3241516|0)|0), statType: 0, statName: "JIT - Pending / Queue"};
+		tmp4={type:15, intWrapper: ((3241516|0)|0), statType: 0, statName: "JIT - Pending / Queue"};
 		postMessage(tmp4);
-		tmp4={type:14, intWrapper: ((3241512|0)|0), statType: 0, statName: "JIT - Valid"};
+		tmp4={type:15, intWrapper: ((3241512|0)|0), statType: 0, statName: "JIT - Valid"};
 		postMessage(tmp4);
-		tmp4={type:14, intWrapper: ((3242648|0)|0), statType: 0, statName: "JIT - Re-enter"};
+		tmp4={type:15, intWrapper: ((3242648|0)|0), statType: 0, statName: "JIT - Re-enter"};
 		postMessage(tmp4);
-		tmp4={type:14, intWrapper: ((3244720|0)|0), statType: 0, statName: "JIT - Exits"};
+		tmp4={type:15, intWrapper: ((3244720|0)|0), statType: 0, statName: "JIT - Exits"};
 		postMessage(tmp4);
-		tmp4={type:14, intWrapper: ((3244716|0)|0), statType: 0, statName: "JIT - Call Failed"};
+		tmp4={type:15, intWrapper: ((3244716|0)|0), statType: 0, statName: "JIT - Call Failed"};
 		postMessage(tmp4);
-		tmp4={type:14, intWrapper: ((3244760|0)|0), statType: 0, statName: "JIT - Dyn Call Helper"};
+		tmp4={type:15, intWrapper: ((3244760|0)|0), statType: 0, statName: "JIT - Dyn Call Helper"};
 		postMessage(tmp4);
-		tmp4={type:14, intWrapper: ((3244756|0)|0), statType: 0, statName: "JIT - Stub Ready"};
+		tmp4={type:15, intWrapper: ((3244756|0)|0), statType: 0, statName: "JIT - Stub Ready"};
 		postMessage(tmp4);
-		tmp4={type:14, intWrapper: ((3244712|0)|0), statType: 0, statName: "JIT - Extra Line Flush"};
+		tmp4={type:15, intWrapper: ((3244712|0)|0), statType: 0, statName: "JIT - Extra Line Flush"};
 		postMessage(tmp4);
-		tmp4={type:14, intWrapper: ((3244708|0)|0), statType: 0, statName: "JIT - Preserve Assumption Failed"};
+		tmp4={type:15, intWrapper: ((3244708|0)|0), statType: 0, statName: "JIT - Preserve Assumption Failed"};
 		postMessage(tmp4);
-		tmp4={type:14, intWrapper: ((3249388|0)|0), statType: 0, statName: "JIT - Possible SMC"};
+		tmp4={type:15, intWrapper: ((3249388|0)|0), statType: 0, statName: "JIT - Possible SMC"};
 		postMessage(tmp4);
-		tmp4={type:14, intWrapper: ((3247852|0)|0), statType: 0, statName: "JIT - Late Failures"};
+		tmp4={type:15, intWrapper: ((3247852|0)|0), statType: 0, statName: "JIT - Late Failures"};
 		postMessage(tmp4);
-		tmp4={type:14, intWrapper: ((3241500|0)|0), statType: 0, statName: "JIT - Caller Pins Overflow"};
+		tmp4={type:15, intWrapper: ((3241500|0)|0), statType: 0, statName: "JIT - Caller Pins Overflow"};
 		postMessage(tmp4);
-		tmp4={type:14, intWrapper: ((3247864|0)|0), statType: 0, statName: "JIT - Ret Failed"};
+		tmp4={type:15, intWrapper: ((3247864|0)|0), statType: 0, statName: "JIT - Ret Failed"};
 		postMessage(tmp4);
-		tmp4={type:14, intWrapper: ((3247916|0)|0), statType: 0, statName: "JIT - Interp Reached"};
+		tmp4={type:15, intWrapper: ((3247916|0)|0), statType: 0, statName: "JIT - Interp Reached"};
 		postMessage(tmp4);
-		tmp4={type:14, intWrapper: ((3248344|0)|0), statType: 0, statName: "JIT - Pinning Conflict"};
+		tmp4={type:15, intWrapper: ((3248344|0)|0), statType: 0, statName: "JIT - Pinning Conflict"};
 		postMessage(tmp4);
 		break a;
-		case 20:
+		case 21:
 		L$poptgep$poptgep$poptgep$poptgep$poptgepsqueezed$poptgepsqueezed$poptgepsqueezed=Larg0.tid;
 		tmp9=Larg0.fd;
 		tmp10=Larg0.devId;
@@ -404,10 +404,10 @@ function __ZN11CheerpXCore17handleMessageImplEPN6client11CoreMessageE(Larg0){
 		Lgeptoindexphi3=Larg0.uid;
 		__ZN8LinuxApp25handleFsSpecialFileResultEjPN6client6ObjectEjjjjjjj(L$poptgep$poptgep$poptgep$poptgep$poptgepsqueezed$poptgepsqueezed$poptgepsqueezed,tmp4,tmp9,tmp10,tmp11,Lxtraiter,Lgeptoindexphi,Lgeptoindexphi3,Larg0.gid);
 		break a;
-		case 16:
+		case 17:
 		__ZN8LinuxApp19handleFsCloseResultEj(Larg0.value);
 		break a;
-		case 18:
+		case 19:
 		L$poptgep$poptgep$poptgep$poptgep$poptgepsqueezed$poptgepsqueezed$poptgepsqueezed=Larg0.tid;
 		tmp4=Larg0.path;
 		tmp9=Larg0.devId;
@@ -432,7 +432,7 @@ function __ZN11CheerpXCore17handleMessageImplEPN6client11CoreMessageE(Larg0){
 		tmp10=Larg0.inodeId;
 		__ZN8LinuxApp23handleFsCacheListResultEjjjRKN6client6TArrayIPNS0_6StringEEE(L$poptgep$poptgep$poptgep$poptgep$poptgepsqueezed$poptgepsqueezed$poptgepsqueezed,tmp9,tmp10,Larg0.files);
 		break a;
-		case 24:
+		case 25:
 		if(((Larg0.value)|0)!==0){
 			__ZN8LinuxApp23handleFsCacheDataResultEj(Larg0.tid);
 			break a;
@@ -516,35 +516,35 @@ function __ZN11CheerpXCore17handleMessageImplEPN6client11CoreMessageE(Larg0){
 		__ZNSt6vectorISbIcSt11char_traitsIcE17TrackingAllocatorIcL7MEM_TAG7EEES2_IS5_LS3_1EEED2B7v160000Ev(tmp9);
 		__ZNSt6vectorISbIcSt11char_traitsIcE17TrackingAllocatorIcL7MEM_TAG7EEES2_IS5_LS3_1EEED2B7v160000Ev(L$poptgep$poptgep$poptgep$poptgep$poptgepsqueezed$poptgepsqueezed$poptgepsqueezed);
 		break a;
-		case 27:
+		case 28:
 		L$poptgep$poptgep$poptgep$poptgep$poptgepsqueezed$poptgepsqueezed$poptgepsqueezed=__ZN8Debugger11getInstanceEv()|0;
 		tmp9=Larg0.ctxType;
 		__ZN8Debugger9attachCtxE12CONTEXT_TYPEj(L$poptgep$poptgep$poptgep$poptgep$poptgepsqueezed$poptgepsqueezed$poptgepsqueezed,tmp9,Larg0.value);
 		break a;
-		case 28:
+		case 29:
 		L$poptgep$poptgep$poptgep$poptgep$poptgepsqueezed$poptgepsqueezed$poptgepsqueezed=__ZN8Debugger11getInstanceEv()|0;
 		tmp9=Larg0.ctxType;
 		if(!(__ZN8Debugger9detachCtxE12CONTEXT_TYPEj(L$poptgep$poptgep$poptgep$poptgep$poptgepsqueezed$poptgepsqueezed$poptgepsqueezed,tmp9,Larg0.value)|0))break a;
 		__ZN12AddressSpace13scheduleLaterEv();
 		break a;
-		case 30:
+		case 31:
 		L$poptgep$poptgep$poptgep$poptgep$poptgepsqueezed$poptgepsqueezed$poptgepsqueezed=__ZN8Debugger11getInstanceEv()|0;
 		tmp9=Larg0.ctxType;
 		L$poptgep$poptgep$poptgep$poptgep$poptgepsqueezed$poptgepsqueezed$poptgepsqueezed=__ZN8Debugger11getCtxForIdE12CONTEXT_TYPEj(L$poptgep$poptgep$poptgep$poptgep$poptgepsqueezed$poptgepsqueezed$poptgepsqueezed,tmp9,Larg0.value)|0;
 		if((L$poptgep$poptgep$poptgep$poptgep$poptgepsqueezed$poptgepsqueezed$poptgepsqueezed|0)==(0|0))break a;
 		__ZN8Debugger11getInstanceEv()|0;
 		L$poptgep$poptgep$poptgep$poptgep$poptgepsqueezed$poptgepsqueezed$poptgepsqueezed=HEAP32[(HEAP32[472+L$poptgep$poptgep$poptgep$poptgep$poptgepsqueezed$poptgepsqueezed$poptgepsqueezed>>2]|0)>>2]|0;
-		tmp4={type:32, text: __ZN8Debugger7disasAtEP12AddressSpacejjj(L$poptgep$poptgep$poptgep$poptgep$poptgepsqueezed$poptgepsqueezed$poptgepsqueezed,Larg0.addr,16)};
+		tmp4={type:33, text: __ZN8Debugger7disasAtEP12AddressSpacejjj(L$poptgep$poptgep$poptgep$poptgep$poptgepsqueezed$poptgepsqueezed$poptgepsqueezed,Larg0.addr,16)};
 		postMessage(tmp4);
 		break a;
-		case 31:
+		case 32:
 		L$poptgep$poptgep$poptgep$poptgep$poptgepsqueezed$poptgepsqueezed$poptgepsqueezed=__ZN8Debugger11getInstanceEv()|0;
 		tmp9=Larg0.ctxType;
 		L$poptgep$poptgep$poptgep$poptgep$poptgepsqueezed$poptgepsqueezed$poptgepsqueezed=__ZN8Debugger11getCtxForIdE12CONTEXT_TYPEj(L$poptgep$poptgep$poptgep$poptgep$poptgepsqueezed$poptgepsqueezed$poptgepsqueezed,tmp9,Larg0.value)|0;
 		if((L$poptgep$poptgep$poptgep$poptgep$poptgepsqueezed$poptgepsqueezed$poptgepsqueezed|0)==(0|0))break a;
 		__ZN8Debugger11getInstanceEv()|0;
 		L$poptgep$poptgep$poptgep$poptgep$poptgepsqueezed$poptgepsqueezed$poptgepsqueezed=HEAP32[(HEAP32[472+L$poptgep$poptgep$poptgep$poptgep$poptgepsqueezed$poptgepsqueezed$poptgepsqueezed>>2]|0)>>2]|0;
-		tmp4={type:32, text: __ZN8Debugger7disasAtEP12AddressSpacejjj(L$poptgep$poptgep$poptgep$poptgep$poptgepsqueezed$poptgepsqueezed$poptgepsqueezed,Larg0.addr,32)};
+		tmp4={type:33, text: __ZN8Debugger7disasAtEP12AddressSpacejjj(L$poptgep$poptgep$poptgep$poptgep$poptgepsqueezed$poptgepsqueezed$poptgepsqueezed,Larg0.addr,32)};
 		postMessage(tmp4);
 		break a;
 		case 51:
@@ -563,16 +563,16 @@ function __ZN11CheerpXCore17handleMessageImplEPN6client11CoreMessageE(Larg0){
 		case 78:
 		console.log("JIT bisecting not available");
 		break a;
-		case 33:
+		case 34:
 		L$poptgep$poptgep$poptgep$poptgep$poptgepsqueezed$poptgepsqueezed$poptgepsqueezed=72+tmp4|0;
 		__ZNSbIcSt11char_traitsIcE17TrackingAllocatorIcL7MEM_TAG7EEEC2B7v160000IDnEEPKc(L$poptgep$poptgep$poptgep$poptgep$poptgepsqueezed$poptgepsqueezed$poptgepsqueezed,2119968|0);
 		tmp9=__ZN10ProcessCtx6createEPS_RKSbIcSt11char_traitsIcE17TrackingAllocatorIcL7MEM_TAG7EEE(0,L$poptgep$poptgep$poptgep$poptgep$poptgepsqueezed$poptgepsqueezed$poptgepsqueezed)|0;
 		__ZNSbIcSt11char_traitsIcE17TrackingAllocatorIcL7MEM_TAG7EEED2Ev(L$poptgep$poptgep$poptgep$poptgep$poptgepsqueezed$poptgepsqueezed$poptgepsqueezed);
 		HEAP32[32+tmp9>>2]=2;
-		tmp4={type:34, tid: -1, value: (HEAP32[436+(HEAP32[12+tmp9>>2]|0)>>2]|0)};
+		tmp4={type:35, tid: -1, value: (HEAP32[436+(HEAP32[12+tmp9>>2]|0)>>2]|0)};
 		postMessage(tmp4);
 		break a;
-		case 35:
+		case 36:
 		tmp9=Larg0.tid;
 		tmp10=HEAP32[812351]|0;
 		while(1){
@@ -589,7 +589,7 @@ function __ZN11CheerpXCore17handleMessageImplEPN6client11CoreMessageE(Larg0){
 					HEAP32[tmp5>>2]=tmp9;
 					__ZN7CoreCtx3logEPKcz(L$poptgep$poptgep$poptgep$poptgep$poptgepsqueezed$poptgepsqueezed$poptgepsqueezed,2119640|0);
 					___setStackPtr(tmp4);
-					tmp4={type:34, tid:(Larg0.tid), value: tmp9};
+					tmp4={type:35, tid:(Larg0.tid), value: tmp9};
 					postMessage(tmp4);
 					break a;
 				}
@@ -600,7 +600,7 @@ function __ZN11CheerpXCore17handleMessageImplEPN6client11CoreMessageE(Larg0){
 			tmp10=HEAP32[92+tmp10>>2]|0;
 			continue;
 		}
-		case 36:
+		case 37:
 		tmp10=Larg0.tid;
 		tmp9=HEAP32[812351]|0;
 		b:if((tmp9|0)!=(0|0)){
@@ -669,7 +669,7 @@ function __ZN11CheerpXCore17handleMessageImplEPN6client11CoreMessageE(Larg0){
 		__ZN12LinearBufferD2Ev(tmp11);
 		__ZN12LinearBufferD2Ev(tmp9);
 		break a;
-		case 37:
+		case 38:
 		tmp9=Larg0.tid;
 		tmp10=HEAP32[812351]|0;
 		while(1){
@@ -688,7 +688,7 @@ function __ZN11CheerpXCore17handleMessageImplEPN6client11CoreMessageE(Larg0){
 								tmp10=48+tmp4|0;
 								__ZN13FileDescEntryC2EP8FileDescj(tmp10,(__ZN8FileDesc3getEP5Inodej(L$poptgep$poptgep$poptgep$poptgep$poptgepsqueezed$poptgepsqueezed$poptgepsqueezed|0)|0)|0);
 								L$poptgep$poptgep$poptgep$poptgep$poptgepsqueezed$poptgepsqueezed$poptgepsqueezed=__ZN10ProcessCtx11addFileDescERK13FileDescEntryj(tmp9|0,tmp10,0)|0;
-								tmp4={type:34, tid:(Larg0.tid), value: L$poptgep$poptgep$poptgep$poptgep$poptgepsqueezed$poptgepsqueezed$poptgepsqueezed};
+								tmp4={type:35, tid:(Larg0.tid), value: L$poptgep$poptgep$poptgep$poptgep$poptgepsqueezed$poptgepsqueezed$poptgepsqueezed};
 								postMessage(tmp4);
 								__ZN12AddressSpace13scheduleLaterEv();
 								break a;
@@ -723,7 +723,7 @@ function __ZN11CheerpXCore17handleMessageImplEPN6client11CoreMessageE(Larg0){
 							tmp4=__ZN18ExternalSocketNode15messageChannelsE;
 							L$poptgep$poptgep$poptgep$poptgep$poptgepsqueezed$poptgepsqueezed$poptgepsqueezed=HEAP32[88+L$poptgep$poptgep$poptgep$poptgep$poptgepsqueezed$poptgepsqueezed$poptgepsqueezed>>2]|0;
 							tmp4=tmp4[0+L$poptgep$poptgep$poptgep$poptgep$poptgepsqueezed$poptgepsqueezed$poptgepsqueezed|0].port2;
-							tmp5={type:34, tid:(Larg0.tid), value: tmp4};
+							tmp5={type:35, tid:(Larg0.tid), value: tmp4};
 							postMessage(tmp5,new Array(tmp4));
 							break a;
 						}
@@ -771,7 +771,7 @@ function __ZN11CheerpXCore17handleMessageImplEPN6client11CoreMessageE(Larg0){
 		case 48:
 		__ZN14AsmCompileBase19completeModuleAsyncEPN6client6ObjectE(Larg0.wasmModule);
 		break a;
-		case 39:
+		case 40:
 		__ZN17WasmGeneratorBase31completeInstructionsModuleAsyncEPN6client6ObjectE(Larg0.wasmModule);
 		break a;
 		case 49:
@@ -786,7 +786,7 @@ function __ZN11CheerpXCore17handleMessageImplEPN6client11CoreMessageE(Larg0){
 		__ZN12TerminalNode8pushCharEj(L$poptgep$poptgep$poptgep$poptgep$poptgepsqueezed$poptgepsqueezed$poptgepsqueezed|0,Larg0.value);
 		__ZN12AddressSpace13scheduleLaterEv();
 		break a;
-		case 38:
+		case 39:
 		HEAP32[530032]=Larg0.value;
 		break a;
 		case 87:
@@ -825,10 +825,10 @@ function __ZN11CheerpXCore17handleMessageImplEPN6client11CoreMessageE(Larg0){
 		__ZN8LinuxApp14setTimezoneEnvEi(~~ +new Date().getTimezoneOffset());
 		__ZN14AsmCompileBase10globalInitEv();
 		__ZN16InterpPrimitives19InitializeMainTableILi32EEEvv();
-		tmp4={type:34, tid:(Larg0.tid), value: 0};
+		tmp4={type:35, tid:(Larg0.tid), value: 0};
 		postMessage(tmp4);
 		break a;
-		case 15:
+		case 16:
 		L$poptgep$poptgep$poptgep$poptgep$poptgepsqueezed$poptgepsqueezed$poptgepsqueezed=Larg0.tid;
 		tmp9=32+tmp4|0;
 		__ZN8LinuxApp27clientStringToTrackedStringERKN6client6StringE(tmp9,Larg0.mountType);
@@ -841,7 +841,7 @@ function __ZN11CheerpXCore17handleMessageImplEPN6client11CoreMessageE(Larg0){
 		case 81:
 		L$poptgep$poptgep$poptgep$poptgep$poptgepsqueezed$poptgepsqueezed$poptgepsqueezed=Larg0.devId;
 		__ZN8LinuxApp19handleDeviceRequestEjj(L$poptgep$poptgep$poptgep$poptgep$poptgepsqueezed$poptgepsqueezed$poptgepsqueezed,Larg0.len);
-		tmp4={type:34, tid:(Larg0.tid), value: 0};
+		tmp4={type:35, tid:(Larg0.tid), value: 0};
 		postMessage(tmp4);
 		break a;
 		case 83:
@@ -890,7 +890,7 @@ function __ZN11CheerpXCore17handleMessageImplEPN6client11CoreMessageE(Larg0){
 		__ZN13PS2Controller11handleKeyUpEj(76+L$poptgep$poptgep$poptgep$poptgep$poptgepsqueezed$poptgepsqueezed$poptgepsqueezed|0,Larg0.value);
 		__ZN12AddressSpace13scheduleLaterEv();
 		break a;
-		case 12:
+		case 13:
 		__ZN13IOTransaction6finishEv((Larg0.ioTransaction)|0);
 		break a;
 		case 57:
@@ -1322,7 +1322,7 @@ function __ZN13WasmGenerator29compileInterpreterModuleAsyncEP25CompiledInterpret
 	tmp2=HEAP8;
 	tmp3=__ZNK10BinaryCode10LinearCode6getBufEv(tmp1)|0;
 	tmp3=tmp3;
-	tmp2={type:47, replyType: 39, start:tmp3, len:(HEAP32[4236+Larg0>>2]|0)};
+	tmp2={type:47, replyType: 40, start:tmp3, len:(HEAP32[4236+Larg0>>2]|0)};
 	postMessage(tmp2);
 	___setStackPtr(LsavedStack);
 }
@@ -1655,7 +1655,7 @@ function __ZN8Debugger15registerContextEP7CoreCtx12CONTEXT_TYPEj(Larg0,Larg1,Lar
 	__ZN11DebuggerCtxC2EP7CoreCtx12CONTEXT_TYPEj(tmp1,Larg1|0,Larg2,Larg3);
 	__ZNSt6vectorI11DebuggerCtx17TrackingAllocatorIS0_L7MEM_TAG1EEE9push_backB7v160000EOS0_(Larg0|0,tmp1);
 	if((HEAP8[16+Larg0>>0]&255)!==0){
-		tmp2={type:25,ctxType:Larg2,value:Larg3,dbgState:(HEAP32[492+Larg1>>2]|0)};
+		tmp2={type:26,ctxType:Larg2,value:Larg3,dbgState:(HEAP32[492+Larg1>>2]|0)};
 		postMessage(tmp2);
 	}
 	___setStackPtr(LsavedStack);
@@ -1678,7 +1678,7 @@ function __ZN8Debugger9attachHudEv(Larg0){
 	tmp5=HEAP32[tmp1>>2]|0;
 	tmp3=HEAP32[tmp2>>2]|0;
 	if((tmp5|0)!=(tmp3|0))while(1){
-		tmp4={type:25,ctxType:(HEAP32[4+tmp5>>2]|0),value:(HEAP32[8+tmp5>>2]|0),dbgState:(HEAP32[492+(HEAP32[tmp5>>2]|0)>>2]|0)};
+		tmp4={type:26,ctxType:(HEAP32[4+tmp5>>2]|0),value:(HEAP32[8+tmp5>>2]|0),dbgState:(HEAP32[492+(HEAP32[tmp5>>2]|0)>>2]|0)};
 		postMessage(tmp4);
 		__ZNSt11__wrap_iterIP11DebuggerCtxEppB7v160000Ev(tmp1)|0;
 		tmp5=HEAP32[tmp1>>2]|0;
@@ -1694,7 +1694,7 @@ function __ZN8Debugger9attachCtxE12CONTEXT_TYPEj(Larg0,Larg1,Larg2){
 		if((HEAP32[492+tmp0>>2]|0)!==0)___assert_fail(2142356|0,2165996|0,1210,2142388|0);
 		;
 		HEAP32[492+tmp0>>2]=1;
-		tmp1={type:26,ctxType:Larg1,value:Larg2,dbgState:1};
+		tmp1={type:27,ctxType:Larg1,value:Larg2,dbgState:1};
 		postMessage(tmp1);
 	}
 }
@@ -1706,7 +1706,7 @@ function __ZN8Debugger9detachCtxE12CONTEXT_TYPEj(Larg0,Larg1,Larg2){
 		if((HEAP32[492+tmp0>>2]|0)!==1)___assert_fail(2142312|0,2165996|0,1222,2142344|0);
 		;
 		HEAP32[492+tmp0>>2]=0;
-		tmp2={type:26,ctxType:Larg1,value:Larg2,dbgState:0};
+		tmp2={type:27,ctxType:Larg1,value:Larg2,dbgState:0};
 		postMessage(tmp2);
 	}
 	return (tmp1^1?1:0)|0;
@@ -2885,7 +2885,7 @@ function __ZN13IDEController12runAsyncReadEjj(Larg0,Larg1,Larg2){
 	tmp0=HEAP32[(__imul((HEAP8[86+Larg0>>0]&255)>>>4&1,12)|0)+48+Larg0>>2]|0;
 	__ZN13IDEController16startTransactionEv(Larg0|0);
 	L$poptgepsqueezed=32+Larg0|0;
-	tmp2={type:10,devId:tmp0,start:Larg1,len:Larg2,ioTransaction:(L$poptgepsqueezed|0),value:(__ZNK13IOTransaction12getBufOffsetEv(L$poptgepsqueezed)|0)};
+	tmp2={type:11,devId:tmp0,start:Larg1,len:Larg2,ioTransaction:(L$poptgepsqueezed|0),value:(__ZNK13IOTransaction12getBufOffsetEv(L$poptgepsqueezed)|0)};
 	postMessage(tmp2);
 }
 function __ZN13IDEController13runAsyncWriteEv(Larg0){
@@ -2902,7 +2902,7 @@ function __ZN13IDEController13runAsyncWriteEv(Larg0){
 			tmp7=HEAP32[(__imul((tmp7&255)>>>4&1,12)|0)+48+Larg0>>2]|0;
 			__ZN13IDEController16startTransactionEv(Larg0|0);
 			L$poptgepsqueezed=32+Larg0|0;
-			tmp6={type:11,devId:tmp7,start:((((tmp3&65535)<<8)+(tmp2<<24&251658240)|0)+(tmp4&255)<<9),len:((tmp0&255)<<9),ioTransaction:(L$poptgepsqueezed|0),value:(__ZNK13IOTransaction12getBufOffsetEv(L$poptgepsqueezed)|0)};
+			tmp6={type:12,devId:tmp7,start:((((tmp3&65535)<<8)+(tmp2<<24&251658240)|0)+(tmp4&255)<<9),len:((tmp0&255)<<9),ioTransaction:(L$poptgepsqueezed|0),value:(__ZNK13IOTransaction12getBufOffsetEv(L$poptgepsqueezed)|0)};
 			postMessage(tmp6);
 			return;
 		}
@@ -2938,7 +2938,7 @@ function __ZN11ChunksCache14postBlindWriteE12CORE_MESSAGEjjPhj(Larg0,Larg1,Larg2
 	tmp1=new Array();
 	tmp0=Marg3;
 	+tmp1.push({bufOffset:tmp0,len:Larg4});
-	tmp1={type:Larg0,replyType:21,tid:0,fd:Larg1,fileOffset:Larg2,slices:tmp1};
+	tmp1={type:Larg0,replyType:22,tid:0,fd:Larg1,fileOffset:Larg2,slices:tmp1};
 	postMessage(tmp1);
 }
 function __ZN18CheerpOSFsProvider9CacheNode17postFsListRequestEjRK7InodeId(Larg0,Larg1,Larg2){
@@ -2996,7 +2996,7 @@ function __ZN18CheerpOSFsProvider9CacheNode17postFsListRequestEjRK7InodeId(Larg0
 }
 function __ZN11ChunksCache20closeAndDestroyAsyncEv(Larg0){
 	var tmp0=null;
-	tmp0={type:22,replyType:16,fd:(HEAP32[Larg0>>2]|0),value:((Larg0|0)|0)};
+	tmp0={type:23,replyType:17,fd:(HEAP32[Larg0>>2]|0),value:((Larg0|0)|0)};
 	postMessage(tmp0);
 }
 function __ZN8LinuxApp19getProcessCtxForPidEj(Larg0){
@@ -3056,7 +3056,7 @@ function __ZN11ConsoleNode16postConsoleWriteEPKhj(Larg0,Larg1,Marg1,Larg2){
 }
 function __ZN11ConsoleNode19postConsoleActivateEj(Larg0){
 	var tmp0=null;
-	tmp0={type:29,arg1:Larg0};
+	tmp0={type:30,arg1:Larg0};
 	postMessage(tmp0);
 }
 function __ZN18CheerpOSFsProvider20postCacheNodeRequestEjRKSbIcSt11char_traitsIcE17TrackingAllocatorIcL7MEM_TAG7EEERK7InodeId12CORE_MESSAGE(Larg0,Larg1,Larg2,Larg3,Larg4){
@@ -3097,7 +3097,7 @@ function __ZN18CheerpOSFsProvider20postCacheNodeRequestEjRKSbIcSt11char_traitsIc
 				break;
 			}
 		}
-		tmp4={type:17,replyType:Larg4,tid:Larg1,path:tmp5,devId:(HEAP32[36+Larg0>>2]|0),parentInodeId:(HEAP32[4+Larg3>>2]|0)};
+		tmp4={type:18,replyType:Larg4,tid:Larg1,path:tmp5,devId:(HEAP32[36+Larg0>>2]|0),parentInodeId:(HEAP32[4+Larg3>>2]|0)};
 		postMessage(tmp4);
 		return;
 	}
@@ -3142,7 +3142,7 @@ function __ZN18CheerpOSFsProvider19postFsUnlinkRequestEjRKSbIcSt11char_traitsIcE
 				break;
 			}
 		}
-		tmp4={type:64,replyType:21,tid:Larg1,path:tmp5,devId:(HEAP32[36+Larg0>>2]|0)};
+		tmp4={type:64,replyType:22,tid:Larg1,path:tmp5,devId:(HEAP32[36+Larg0>>2]|0)};
 		postMessage(tmp4);
 		return;
 	}
@@ -3222,7 +3222,7 @@ function __ZN18CheerpOSFsProvider19postFsRenameRequestEjRKSbIcSt11char_traitsIcE
 				break;
 			}
 		}
-		tmp0={type:65,replyType:21,tid:Larg1,oldPath:tmp3,newPath:tmp8,devId:(HEAP32[36+Larg0>>2]|0)};
+		tmp0={type:65,replyType:22,tid:Larg1,oldPath:tmp3,newPath:tmp8,devId:(HEAP32[36+Larg0>>2]|0)};
 		postMessage(tmp0);
 		return;
 	}
@@ -3472,7 +3472,7 @@ function __ZN18CheerpOSFsProvider18postFsMkdirRequestEjRKSbIcSt11char_traitsIcE1
 }
 function __ZNK18CheerpOSFsProvider19postFsFChmodRequestEjj(Larg0,Larg1){
 	var tmp0=null;
-	tmp0={type:61,replyType:21,tid:0,fd:Larg0,permType:Larg1};
+	tmp0={type:61,replyType:22,tid:0,fd:Larg0,permType:Larg1};
 	postMessage(tmp0);
 }
 function __ZN18CheerpOSFsProvider17postFsOpenRequestEjRKSbIcSt11char_traitsIcE17TrackingAllocatorIcL7MEM_TAG7EEEjjj(Larg0,Larg1,Larg2,Larg3,Larg4){
@@ -3520,7 +3520,7 @@ function __ZN18CheerpOSFsProvider17postFsOpenRequestEjRKSbIcSt11char_traitsIcE17
 		if((tmp4|0)!=(0|0))while(1){
 			if((HEAP32[436+tmp4>>2]|0)===(Larg0|0)){
 				tmp3=HEAP32[472+tmp4>>2]|0;
-				tmp2={type:19,replyType:20,tid:Larg0,path:tmp5,flags:Larg2,permType:Larg3,devId:Larg4,uid:(HEAP32[9616+tmp3>>2]|0),gid:(HEAP32[9628+tmp3>>2]|0)};
+				tmp2={type:20,replyType:21,tid:Larg0,path:tmp5,flags:Larg2,permType:Larg3,devId:Larg4,uid:(HEAP32[9616+tmp3>>2]|0),gid:(HEAP32[9628+tmp3>>2]|0)};
 				postMessage(tmp2);
 				return;
 			}
@@ -4483,7 +4483,7 @@ function __ZN8LinuxApp18handleFsOpenResultEjijjjjjjj(Larg0,Larg1,Larg2,Larg3,Lar
 }
 function __ZZZN8LinuxApp17handleBindWrapperEP7CoreCtxj12LinearBufferENK3$_0clES1_jS2_EN9CheerpTmp3RunEii(Larg0,Larg1){
 	var tmp0=null;
-	tmp0={type:34, tid:Larg0, value: Larg1};
+	tmp0={type:35, tid:Larg0, value: Larg1};
 	postMessage(tmp0);
 }
 function __ZN8LinuxApp14updateWakeTimeEddj(Larg0,Larg1,Larg2){
@@ -4516,12 +4516,12 @@ function __ZN12AddressSpace17notifyWorkerClockEjb(Larg0,Larg1){
 }
 function __ZN8LinuxApp13postSysResultEjj(Larg0,Larg1){
 	var tmp0=null;
-	tmp0={type:34, tid:Larg0, value: Larg1};
+	tmp0={type:35, tid:Larg0, value: Larg1};
 	postMessage(tmp0);
 }
 function __ZZN8LinuxApp19handleConnectToPortEjjEN9CheerpTmp3RunEj(Larg0){
 	var tmp0=null;
-	tmp0={type:34, tid:Larg0, value: null};
+	tmp0={type:35, tid:Larg0, value: null};
 	HEAP8[3244744]=1;
 	postMessage(tmp0);
 }
@@ -4530,12 +4530,12 @@ function __ZZZN8LinuxApp19handleConnectToPortEjjENK3$_0clEP7CoreCtxP18ExternalSo
 	tmp2=__ZN18ExternalSocketNode15messageChannelsE;
 	tmp0=HEAP32[88+Larg1>>2]|0;
 	tmp2=tmp2[0+tmp0|0].port2;
-	tmp1={type:34, tid:Larg0, value: tmp2};
+	tmp1={type:35, tid:Larg0, value: tmp2};
 	postMessage(tmp1,new Array(tmp2));
 }
 function __ZZN8LinuxApp18handleFsCreateFileEjjRKSbIcSt11char_traitsIcE17TrackingAllocatorIcL7MEM_TAG7EEEEN9CheerpTmp3RunEjj(Larg0,Larg1){
 	var tmp0=null;
-	tmp0={type:34, tid:Larg0, value:Larg1};
+	tmp0={type:35, tid:Larg0, value:Larg1};
 	postMessage(tmp0);
 }
 function __ZN8LinuxApp14runInterpreterEP7CoreCtx(Larg0){
@@ -4726,17 +4726,17 @@ function __ZN9SystemCtx3RunEv(){
 }
 function __ZN9VGADevice9setHeightEi(Larg0){
 	var tmp0=null;
-	tmp0={type:6, value: Larg0};
+	tmp0={type:8, value: Larg0};
 	postMessage(tmp0);
 }
 function __ZN9VGADevice13setRenderModeE15VGA_RENDER_MODE(Larg0){
 	var tmp0=null;
-	tmp0={type:4, value: Larg0};
+	tmp0={type:6, value: Larg0};
 	postMessage(tmp0);
 }
 function __ZN9VGADevice8setWidthEi(Larg0){
 	var tmp0=null;
-	tmp0={type:5, value: Larg0};
+	tmp0={type:7, value: Larg0};
 	postMessage(tmp0);
 }
 function __ZN6Floppy22scheduleAsyncReadWriteEv(Larg0){
@@ -4769,7 +4769,7 @@ function __ZN6Floppy17runAsyncReadWriteEPS_(Larg0){
 		HEAP8[7+Larg0>>0]=HEAP8[16+Larg0>>0]|0;
 		HEAP8[8+Larg0>>0]=HEAP8[15+Larg0>>0]|0;
 		HEAP8[9+Larg0>>0]=(HEAP8[17+Larg0>>0]|0)+(tmp8+131071>>>9)|0;
-		tmp9={type:((tmp6&12)===8?11|0:10|0),devId:(HEAP32[(__imul(HEAP8[18+Larg0>>0]&255,12)|0)+8+L$poptgep$poptgep3$poptgepsqueezed>>2]|0),start:(((__imul((__imul(tmp3&255,tmp1&255)|0)+(tmp4&255)|0,L$poptgep$poptgep3$poptgep&255)|0)+(tmp0&255)<<9)-512|0),len:tmp8,ioTransaction:(L$poptgepsqueezed26|0),value:(__ZNK13IOTransaction12getBufOffsetEv(L$poptgepsqueezed26)|0)};
+		tmp9={type:((tmp6&12)===8?12|0:11|0),devId:(HEAP32[(__imul(HEAP8[18+Larg0>>0]&255,12)|0)+8+L$poptgep$poptgep3$poptgepsqueezed>>2]|0),start:(((__imul((__imul(tmp3&255,tmp1&255)|0)+(tmp4&255)|0,L$poptgep$poptgep3$poptgep&255)|0)+(tmp0&255)<<9)-512|0),len:tmp8,ioTransaction:(L$poptgepsqueezed26|0),value:(__ZNK13IOTransaction12getBufOffsetEv(L$poptgepsqueezed26)|0)};
 		postMessage(tmp9);
 		return;
 	}

BIN
cxcore.wasm


+ 0 - 3
src/app.d.js

@@ -1,3 +0,0 @@
-import 'types/directSockets';
-
-export {};

+ 2 - 3
src/lib/NetworkingTab.svelte

@@ -1,5 +1,5 @@
 <script>
-	import { networkData, startLogin, updateButtonData } from '$lib/network.js'
+	import { connectToServer, disconnectFromServer, updateButtonData, networkData } from '$lib/network.js'
 	import { createEventDispatcher } from 'svelte';
 	import PanelButton from './PanelButton.svelte';
 	var dispatch = createEventDispatcher();
@@ -20,5 +20,4 @@
 		<i class='fas fa-circle fa-xs ml-auto {$exitNode ? 'text-green-500' : 'text-amber-500'}' title={$exitNode ? 'Ready' : 'No exit node'}></i>
 	{/if}
 </PanelButton>
-<p>WebVM can connect to the Internet via Tailscale</p>
-<p>Using Tailscale is required since browser do not support TCP/UDP sockets (yet!)</p>
+<p>WebVM can connect to the Internet via TCP through directSockets API!</p>

+ 3 - 2
src/lib/WebVM.svelte

@@ -6,7 +6,7 @@
 	import '$lib/global.css';
 	import '@xterm/xterm/css/xterm.css'
 	import '@fortawesome/fontawesome-free/css/all.min.css'
-	import { networkInterface, startLogin } from '$lib/network.js'
+	import { directSocketsInterface, networkInterface } from '$lib/network.js'
 	import { cpuActivity, diskActivity, cpuPercentage, diskLatency } from '$lib/activities.js'
 	import { introMessage, errorMessage, unexpectedErrorMessage } from '$lib/messages.js'
 	import { displayConfig, handleToolImpl } from '$lib/anthropic.js'
@@ -19,6 +19,7 @@
 	export let diskLatencies = [];
 	export let activityEventsInterval = 0;
 
+
 	var term = null;
 	var cx = null;
 	var fitAddon = null;
@@ -309,7 +310,7 @@
 		try
 		{
 			console.debug("calling Linux.create()");
-			cx = await CheerpX.Linux.create({mounts: mountPoints});
+			cx = await CheerpX.Linux.create({mounts: mountPoints, directSocketsInterface: directSocketsInterface});
 			console.debug("Linux.create() finished");
 		}
 		catch(e)

+ 9 - 10
src/lib/network.js

@@ -1,5 +1,5 @@
 import { writable } from 'svelte/store';
-import { browser } from '$app/environment'
+import { browser } from '$app/environment';
 
 let authKey = undefined;
 let controlUrl = undefined;
@@ -82,15 +82,6 @@ async function handleCopyIP(event)
 
 export function updateButtonData(state, handleConnect) {
 	switch(state) {
-		case "DISCONNECTED":
-			return {
-				buttonText: "Connect to Tailscale",
-				isClickable: true,
-				clickHandler: handleConnect,
-				clickUrl: null,
-				buttonTooltip: null,
-				rightClickHandler: null
-			};
 		case "DOWNLOADING":
 			return {
 				buttonText: "Loading IP stack...",
@@ -151,3 +142,11 @@ export function updateButtonData(state, handleConnect) {
 export const networkInterface = { authKey: authKey, controlUrl: controlUrl, loginUrlCb: loginUrlCb, stateUpdateCb: stateUpdateCb, netmapUpdateCb: netmapUpdateCb };
 
 export const networkData = { currentIp: null, connectionState: connectionState, exitNode: exitNode, loginUrl: null, dashboardUrl: dashboardUrl }
+
+//
+// IWA test
+// 
+let host = "127.0.0.1";
+let port = 4321;
+let kind = "TCP";
+export const directSocketsInterface = { host, port, kind};

+ 0 - 80
types/directSockets.d.ts

@@ -1,80 +0,0 @@
-/**
- * Copyright 2022 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/* https://wicg.github.io/direct-sockets/#dom-tcpsocketoptions */
-interface TCPSocketOptions {
-  sendBufferSize?: number;
-  receiveBufferSize?: number;
-
-  noDelay?: boolean;
-  keepAliveDelay?: number;
-}
-
-/* https://wicg.github.io/direct-sockets/#dom-tcpsocketopeninfo */
-interface TCPSocketOpenInfo {
-  readable: ReadableStream<Uint8Array>;
-  writable: WritableStream<Uint8Array>;
-
-  remoteAddress: string;
-  remotePort: number;
-
-  localAddress: string;
-  localPort: number;
-}
-
-/**
- * https://wicg.github.io/direct-sockets/#dom-tcpsocket
- */
-declare class TCPSocket {
-  constructor(
-    remoteAddress: string,
-    remotePort: number,
-    options?: TCPSocketOptions,
-  );
-
-  opened: Promise<TCPSocketOpenInfo>;
-  closed: Promise<void>;
-
-  close(): Promise<void>;
-}
-
-/* https://wicg.github.io/direct-sockets/#dom-tcpserversocketoptions */
-interface TCPServerSocketOptions {
-  localPort?: number;
-  backlog?: number;
-
-  ipv6Only?: boolean;
-}
-
-/* https://wicg.github.io/direct-sockets/#dom-tcpserversocketopeninfo */
-interface TCPServerSocketOpenInfo {
-  readable: ReadableStream<TCPSocket>;
-
-  localAddress: string;
-  localPort: number;
-}
-
-/**
- * https://wicg.github.io/direct-sockets/#dom-tcpserversocket
- */
-declare class TCPServerSocket {
-  constructor(localAddress: string, options?: TCPServerSocketOptions);
-
-  opened: Promise<TCPServerSocketOpenInfo>;
-  closed: Promise<void>;
-
-  close(): Promise<void>;
-}

Some files were not shown because too many files changed in this diff