static int lua_fn_packet_lock(lua_State *L) { dbuf_t *d = luaL_checkuserdata(L, 1); dlock(d); lua_pushlightuserdata(L, d); return 1; }
static int lua_fn_SetSequenceNumber(lua_State *L) { dbuf_t *d = luaL_checkuserdata(L, 1); u32t seq = luaL_checkint(L, 2); SetSequenceNumber(d->buf, seq); return 0; }
static int lua_fn_MaybeZeroDecodePacket(lua_State *L) { dbuf_t *d = luaL_checkuserdata(L, 1); dbuf_t *d1 = MaybeZeroDecodePacket(d); if(d1 == NULL) { return 0; } lua_pushlightuserdata(L, d1); return 1; }
static Fdelete (lua_State *L) { filedata *f = (filedata *)luaL_checkuserdata(L, 1); if(f->close) luaL_error(L,"attempt to use a deleted file"); if (create_mem_zone(1,f->bf.name,f->taillezone + 24,DELETE_ZONE)<0 ) luaL_error(L,"not enough memory for file"); globalrefresh++; f->close =1; StkId o = index2adr(L,1); setnilvalue(o); return 0; }
static Fresize (lua_State *L) { filedata *f = (filedata *)luaL_checkuserdata(L, 1); if(f->close) luaL_error(L,"attempt to use a deleted file"); int size = luaL_checkint(L, 2); luaL_argcheck(L,size<=0,2,"bad size"); unsigned int newsize = size; if (create_mem_zone(1,f->bf.name,newsize + 24,RESIZE_ZONE)<0 ) luaL_error(L,"not enough memory for file"); globalrefresh++; search_mem_zone(1,f->bf.name,&(f->bf)); f->taillezone = newsize; f->debut = MK_FP(f->bf.segment+1, f->bf.offset+5); f->refreshnum = globalrefresh; //f->close =0; return 0; }
static int lua_fn_IsReliable(lua_State *L) { dbuf_t *d = luaL_checkuserdata(L, 1); lua_pushboolean(L, IsReliable(d->buf)); return 1; }
static int lua_fn_GetSequenceNumber(lua_State *L) { dbuf_t *d = luaL_checkuserdata(L, 1); lua_pushinteger(L, GetSequenceNumber(d->buf)); return 1; }
static int lua_fn_packet_unlock(lua_State *L) { dbuf_t *d = luaL_checkuserdata(L, 1); dunlock(d); return 0; }
static Foption (lua_State *L) { filedata *f = (filedata *)luaL_checkuserdata(L, 1); if(f->close) luaL_error(L,"attempt to use a deleted file"); lua_pushinteger(L,f->option ); return 0; }