void allign(BowlerPacket * Packet,BYTE_FIFO_STORAGE * fifo){ int first = 0; do { FifoReadByteStream(Packet->stream,1,fifo);// peak but dont read yet if((Packet->use.head.ProtocolRevision != BOWLER_VERSION)){ if(first==0){ b_println("bad first byte. Fifo=",INFO_PRINT); // SPI ISR shits out messages when 0xAA fails to match. making this info. p_int(calcByteCount(fifo),INFO_PRINT); print_nnl(" [",INFO_PRINT); } first++; print_nnl(" 0x",INFO_PRINT); prHEX8(Packet->use.head.ProtocolRevision,INFO_PRINT); uint8_t b; if(getNumBytes(fifo)==0) return; //StartCritical(); FifoGetByte(fifo,& b);// dropping bad byte //EndCritical(); } }while(getNumBytes(fifo)>0 && (Packet->use.head.ProtocolRevision != BOWLER_VERSION)); if(first>0){ b_println("] ##Junked total:",INFO_PRINT);p_int(first,INFO_PRINT); } }
METHOD AOBench_write(Ctx *ctx, knh_sfp_t *sfp) { int index = p_int(sfp[1]); int value = p_int(sfp[2]); img[index] = (unsigned char)value; KNH_RETURN_void(ctx, sfp); }
static METHOD knh__String_get(Ctx *ctx, knh_sfp_t *sfp) { knh_bytes_t base = knh_String_tobytes(sfp[0].s); if(knh_String_isASCII(sfp[0].s)) { size_t n = knh_array_index(ctx, p_int(sfp[1]), knh_String_strlen(sfp[0].s)); base.buf = base.buf + n; base.len = 1; KNH_RETURN(ctx, sfp, new_String(ctx, base, sfp[0].s)); } else { size_t off = knh_array_index(ctx, p_int(sfp[1]), knh_bytes_mlen(base)); knh_bytes_t sub = knh_bytes_mofflen(base, off, 1); KNH_RETURN(ctx, sfp, new_String(ctx, sub, sfp[0].s)); } }
void acceptConns(){ int new_socket; struct sockaddr client; char const *message; int i; puts("Waiting for incoming connections..."); int cnt = sizeof(struct sockaddr_in); while( (new_socket = accept(socket_desc, (struct sockaddr *)&client, (socklen_t*)&cnt)) ) { cmgr->addClient(new_socket); message = "Received your connection assigning a handler for you\n"; write(new_socket , message , strlen(message)); std::unique_ptr<int> p_int (new int); *p_int = new_socket; i=threads.size(); threads.emplace_back(std::thread( connection_handler,std::move(p_int) , i,cmgr)); puts("Handler assigned"); } if (new_socket<0) { perror("accept failed"); } }
/* @method String XmlReader.getAttributeNo(Int numer) */ METHOD XmlReader_getAttributeNo(Ctx *ctx, knh_sfp_t *sfp) { xmlTextReaderPtr reader = (xmlTextReaderPtr) p_cptr(sfp[0]); int num = p_int(sfp[1]); char* ret = (char*) xmlTextReaderGetAttributeNo(reader,num); KNH_RETURN(ctx,sfp,new_String(ctx,B(ret),NULL)); }
METHOD System_led(Ctx *ctx, knh_sfp_t *sfp) { int v = p_int(sfp[1]); int ddl, asize; ddl = tk_opn_dev("led_test",TD_UPDATE); tk_swri_dev(ddl, DN_LEMode, &v, sizeof(v), &asize); KNH_RETURN_void(ctx, sfp); }
METHOD System_segLed(Ctx *ctx, knh_sfp_t *sfp) { int x = p_int(sfp[1]); int dd, asize; dd = tk_opn_dev("led", TD_UPDATE); tk_swri_dev(dd, DN_LEDEC, &x, sizeof(x), &asize); KNH_RETURN_void(ctx, sfp); }
static METHOD knh__HashMap_new(Ctx *ctx, knh_sfp_t *sfp) { HashMap *o = (HashMap*)sfp[0].o; int init = IS_NULL(sfp[1].o) ? KNH_HASH_INITSIZE: p_int(sfp[1]); if(init > 0) { ctx->share->StructTable[STRUCT_HashMap].finit(ctx, sfp[0].o, init); } KNH_RETURN(ctx, sfp, o); }
static char *p_int_ge1(const char *val, GError **err) { char *r = p_int(val, err); if(r && int_raw(r) < 1) { g_set_error_literal(err, 1, 0, "Invalid value."); g_free(r); return NULL; } return r; }
static char *p_int_range(const char *val, int min, int max, const char *msg, GError **err) { char *r = p_int(val, err); if(r && (int_raw(r) < min || int_raw(r) > max)) { g_set_error_literal(err, 1, 0, msg); g_free(r); return NULL; } return r; }
static char *p_minislot_size(const char *val, GError **err) { char *r = p_int(val, err); int n = r ? int_raw(r) : 0; g_free(r); if(r && n < 64) { g_set_error_literal(err, 1, 0, "Minislot size must be at least 64 KiB."); return NULL; } return r ? g_strdup_printf("%d", MIN(G_MAXINT, n*1024)) : NULL; }
void printAsyncType(uint8_t t, Print_Level l){ switch(getBcsIoDataTable(t)->PIN.asyncDataType){ case AUTOSAMP: print_nnl("AUTOSAMP",l);return; case NOTEQUAL: print_nnl("NOTEQUAL",l);return; case DEADBAND: print_nnl("DEADBAND",l);return; case THRESHHOLD: print_nnl("THRESHHOLD",l);return; default: print_nnl("UNKNOWN: ",l); p_int(t,l);return; } }
static METHOD knh__String_opMul(Ctx *ctx, knh_sfp_t *sfp) { knh_intptr_t n = p_int(sfp[1]); if(n <= 0) { KNH_RETURN(ctx, sfp, TS_EMPTY); }else if(n == 1) { KNH_RETURN(ctx, sfp, sfp[0].o); } else { knh_bytes_t base = knh_String_tobytes(sfp[0].s); knh_cwb_t cwbbuf, *cwb = knh_cwb_open(ctx, &cwbbuf); knh_intptr_t i; for(i = 0; i < n; i++) { knh_Bytes_write(ctx, cwb->ba, base); } KNH_RETURN(ctx, sfp, knh_cwb_newString(ctx, cwb)); } }
static PyObject * PyFB_ifstats(PyObject *self) { int mib_ifdata[6] = { CTL_NET, PF_LINK, NETLINK_GENERIC, IFMIB_IFDATA, 0, IFDATA_GENERAL}; struct ifmibdata ifmd; size_t len; int value, i; PyObject *r, *d, *t; len = sizeof value; if (sysctlbyname("net.link.generic.system.ifcount", &value, &len, NULL, 0) < 0) return OSERROR(); r = PyDict_New(); for (i = 1; i <= value; i++) { len = sizeof ifmd; mib_ifdata[4] = i; if (sysctl(mib_ifdata, 6, &ifmd, &len, NULL, 0) < 0) { Py_DECREF(r); PyErr_SetFromErrno(PyExc_OSError); return Py_None; } d = PyDict_New(); #define p_long(f) p(PyLong_FromUnsignedLong, unsigned long, f) #define p_str(f) p(PyString_FromString, char *, f) #define p_int(f) p(PyInt_FromLong, long, f) #define p(adoptor, castor, f) \ t = adoptor((castor)ifmd.ifmd_##f); \ PyDict_SetItemString(d, #f, t); \ Py_DECREF(t); p_str(name); p_int(pcount); p_int(flags); p_int(snd_len); p_int(snd_maxlen); p_int(snd_drops); #undef p #define p(adoptor, castor, f) \ t = adoptor((castor)ifmd.ifmd_data.ifi_##f); \ PyDict_SetItemString(d, #f, t); \ Py_DECREF(t); p_int(type); p_int(physical); p_int(addrlen); p_int(hdrlen); p_int(recvquota); p_int(xmitquota); p_long(mtu); p_long(metric); p_long(baudrate); p_long(ipackets); p_long(ierrors); p_long(opackets); p_long(oerrors); p_long(collisions); p_long(ibytes); p_long(obytes); p_long(imcasts); p_long(omcasts); p_long(iqdrops); p_long(noproto); p_long(hwassist); #undef p PyDict_SetItemString(r, ifmd.ifmd_name, d); Py_DECREF(d); } return r; }
METHOD Math_frexp(Ctx *ctx, knh_sfp_t *sfp) { int exp = p_int(sfp[2]); KNH_RETURN_Float(ctx, sfp, frexp(p_double(sfp[1]),&exp)); }
METHOD Math_ldexp(Ctx *ctx, knh_sfp_t *sfp) { KNH_RETURN_Float(ctx, sfp, ldexp(p_double(sfp[1]),p_int(sfp[2]))); }