mail.coreboot.org
Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2021
March
February
January
2020
December
November
October
September
August
July
June
May
April
March
February
January
2019
December
November
October
September
August
July
June
May
April
March
February
January
2018
December
November
October
September
August
July
June
May
April
March
February
January
2017
December
November
October
September
August
July
June
May
April
March
February
January
2016
December
November
October
September
August
July
June
May
April
March
February
January
2015
December
November
October
September
August
July
June
May
April
March
February
January
2014
December
November
October
September
August
July
June
May
April
March
February
January
2013
December
November
October
September
August
July
June
May
April
March
February
January
2012
December
November
October
September
August
July
June
May
April
March
February
January
2011
December
November
October
September
August
July
June
May
April
March
February
January
2010
December
November
October
September
August
July
June
May
April
March
February
January
2009
December
November
List overview
Download
SerialICE
February 2015
----- 2021 -----
March 2021
February 2021
January 2021
----- 2020 -----
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
----- 2019 -----
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
----- 2018 -----
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
----- 2017 -----
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
----- 2016 -----
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
----- 2015 -----
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
----- 2014 -----
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
----- 2013 -----
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
----- 2012 -----
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
May 2012
April 2012
March 2012
February 2012
January 2012
----- 2011 -----
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
----- 2010 -----
December 2010
November 2010
October 2010
September 2010
August 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
----- 2009 -----
December 2009
November 2009
serialice@serialice.com
2 participants
2 discussions
Start a n
N
ew thread
New patch to review for serialice: 8b16c47 Port to lua 5.3
by Lubomir Rintel
Lubomir Rintel (lkundrak(a)v3.sk) just uploaded a new patch set to gerrit, which you can find at
http://review.coreboot.org/8524
-gerrit commit 8b16c47a643ad47d8417f6337b921ad34c01ce37 Author: Lubomir Rintel <lkundrak(a)v3.sk> Date: Wed Feb 11 09:14:40 2015 +0100 Port to lua 5.3 It uses integers natively and removes the bit32 library. The intsize patch is no longer needed. Change-Id: I9db21b37aaae167fe7f6ebbefc20ea21a872553a Signed-off-by: Lubomir Rintel <lkundrak(a)v3.sk> --- SerialICE/patches/lua-5.2.0-intsize.diff | 20 --------- SerialICE/patches/lua-5.2.0-shared.diff | 42 ------------------- SerialICE/patches/lua-5.2.0-x64-fix.diff | 12 ------ SerialICE/simba/chipset/i82801.lua | 6 +-- SerialICE/simba/chipset/intel_bars.lua | 14 +++---- SerialICE/simba/chipset/intel_smbus.lua | 38 ++++++++--------- SerialICE/simba/chipset/pc80.lua | 72 ++++++++++++++++---------------- SerialICE/simba/chipset/smbus_host.lua | 14 +++---- SerialICE/simba/chipset/superio.lua | 4 +- SerialICE/simba/chipset/via_bars.lua | 8 ++-- SerialICE/simba/core_io.lua | 4 +- SerialICE/simba/cpu.lua | 10 ++--- SerialICE/simba/hooks.lua | 10 ++--- SerialICE/simba/mmio.lua | 4 +- SerialICE/simba/pci_cfg.lua | 48 ++++++++++----------- SerialICE/simba/replay.lua | 4 +- qemu-0.15.x/configure | 28 +++---------- qemu-0.15.x/serialice-lua.c | 2 +- 18 files changed, 125 insertions(+), 215 deletions(-) diff --git a/SerialICE/patches/lua-5.2.0-intsize.diff b/SerialICE/patches/lua-5.2.0-intsize.diff deleted file mode 100644 index e29ffae..0000000 --- a/SerialICE/patches/lua-5.2.0-intsize.diff +++ /dev/null @@ -1,20 +0,0 @@ -diff -ur lua-5.2.0/src/luaconf.h lua-5.2.0-shared/src/luaconf.h ---- lua-5.2.0/src/luaconf.h 2011-12-06 17:58:36.000000000 +0100 -+++ lua-5.2.0-shared/src/luaconf.h 2012-06-12 22:25:20.179943819 +0200 -@@ -10,6 +10,7 @@ - - #include <limits.h> - #include <stddef.h> -+#include <stdint.h> - - - /* -@@ -444,7 +445,7 @@ - ** CHANGE that if ptrdiff_t is not adequate on your machine. (On most - ** machines, ptrdiff_t gives a good choice between int or long.) - */ --#define LUA_INTEGER ptrdiff_t -+#define LUA_INTEGER int64_t - - /* - @@ LUA_UNSIGNED is the integral type used by lua_pushunsigned/lua_tounsigned. diff --git a/SerialICE/patches/lua-5.2.0-shared.diff b/SerialICE/patches/lua-5.2.0-shared.diff deleted file mode 100644 index 4b8aaaf..0000000 --- a/SerialICE/patches/lua-5.2.0-shared.diff +++ /dev/null @@ -1,42 +0,0 @@ -diff -ur lua-5.2.0/Makefile lua-5.2.0-shared/Makefile ---- lua-5.2.0/Makefile 2011-11-16 00:38:12.000000000 +0100 -+++ lua-5.2.0-shared/Makefile 2012-06-12 21:42:25.953250340 +0200 -@@ -41,7 +41,7 @@ - # What to install. - TO_BIN= lua luac - TO_INC= lua.h luaconf.h lualib.h lauxlib.h lua.hpp --TO_LIB= liblua.a -+TO_LIB= liblua.a liblua.so - TO_MAN= lua.1 luac.1 - - # Lua version and release. -diff -ur lua-5.2.0/src/Makefile lua-5.2.0-shared/src/Makefile ---- lua-5.2.0/src/Makefile 2011-09-19 14:45:14.000000000 +0200 -+++ lua-5.2.0-shared/src/Makefile 2012-06-12 21:44:17.476584177 +0200 -@@ -29,6 +29,7 @@ - PLATS= aix ansi bsd freebsd generic linux macosx mingw posix solaris - - LUA_A= liblua.a -+LUA_SO= liblua.so - CORE_O= lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o \ - lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o \ - ltm.o lundump.o lvm.o lzio.o -@@ -43,7 +44,7 @@ - LUAC_O= luac.o - - ALL_O= $(BASE_O) $(LUA_O) $(LUAC_O) --ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) -+ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) $(LUA_SO) - ALL_A= $(LUA_A) - - # Targets start here. -@@ -59,6 +60,9 @@ - $(AR) $@ $? - $(RANLIB) $@ - -+$(LUA_SO): $(CORE_O) $(LIB_O) -+ $(CC) -o $@ -shared $? -lm -ldl -+ - $(LUA_T): $(LUA_O) $(LUA_A) - $(CC) -o $@ $(LDFLAGS) $(LUA_O) $(LUA_A) $(LIBS) - diff --git a/SerialICE/patches/lua-5.2.0-x64-fix.diff b/SerialICE/patches/lua-5.2.0-x64-fix.diff deleted file mode 100644 index d649f7a..0000000 --- a/SerialICE/patches/lua-5.2.0-x64-fix.diff +++ /dev/null @@ -1,12 +0,0 @@ -diff -ur lua-5.2.0/src/Makefile lua-5.2.0-shared/src/Makefile ---- lua-5.2.0/src/Makefile 2011-09-19 14:45:14.000000000 +0200 -+++ lua-5.2.0-shared/src/Makefile 2012-06-12 22:24:16.973276561 +0200 -@@ -103,7 +103,7 @@ - generic: $(ALL) - - linux: -- $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-Wl,-E -ldl -lreadline -lncurses" -+ $(MAKE) $(ALL) SYSCFLAGS="-fPIC -DLUA_USE_LINUX" SYSLIBS="-Wl,-E -ldl -lreadline -lncurses" - - macosx: - $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_MACOSX" SYSLIBS="-lreadline" diff --git a/SerialICE/simba/chipset/i82801.lua b/SerialICE/simba/chipset/i82801.lua index 24da007..40be0f9 100644 --- a/SerialICE/simba/chipset/i82801.lua +++ b/SerialICE/simba/chipset/i82801.lua @@ -44,11 +44,11 @@ function pm_io_bar(f, action) end function lpc_io_bar(f, action) - local base = bit32.band(action.data, 0xffff) - local mask = bit32.bor(bit32.rshift(action.data, 16), 3) + local base = (action.data & 0xffff) + local mask = (action.data >> 16) | 3 local size = mask + 1 - base = bit32.band(base, bit32.bnot(mask)) + base = (base & ~mask) add_bar(f.dev, f.reg, "LPC", size) f.dev.bar[f.reg].val = base diff --git a/SerialICE/simba/chipset/intel_bars.lua b/SerialICE/simba/chipset/intel_bars.lua index 0841a23..63feb23 100644 --- a/SerialICE/simba/chipset/intel_bars.lua +++ b/SerialICE/simba/chipset/intel_bars.lua @@ -35,7 +35,7 @@ dev_i915 = { } function i915_pcie_bar(f, action) - local baseaddr = bit32.band(action.data, 0xf0000000) + local baseaddr = (action.data & 0xf0000000) local size = 256*1024*1024 -- enable is 0:00.0 [054] .31 @@ -58,26 +58,26 @@ end function i945_pcie_bar(f, action) local base = action.data - local sizebits = bit32.band(bit32.rshift(base, 1), 0x3) + local sizebits = (base >> 1) & 0x3 local baseaddr = 0 local size = 0 if sizebits == 0 then size = 256*1024*1024 - baseaddr = bit32.band(base, 0xf0000000) + baseaddr = (base & 0xf0000000) elseif sizebits == 1 then size = 128*1024*1024 - baseaddr = bit32.band(base, 0xf8000000) + baseaddr = (base & 0xf8000000) elseif sizebits == 2 then size = 64*1024*1024 - baseaddr = bit32.band(base, 0xfc000000) + baseaddr = (base & 0xfc000000) else -- undefined, really - baseaddr = bit32.band(base, 0xfe000000) + baseaddr = (base & 0xfe000000) size = 32*1024*1024 end - if bit32.band(base, 1) ~= 0 then + if (base & 1) ~= 0 then pcie_mm_enable(f.dev, f.reg, baseaddr, size) else pcie_mm_disable(f.dev, f.reg, baseaddr, size) diff --git a/SerialICE/simba/chipset/intel_smbus.lua b/SerialICE/simba/chipset/intel_smbus.lua index 1c2606d..469e7c8 100644 --- a/SerialICE/simba/chipset/intel_smbus.lua +++ b/SerialICE/simba/chipset/intel_smbus.lua @@ -31,7 +31,7 @@ I801_PEC_EN = 0x80 local function intel_smbus_get_protocol(f) - local proto = bit32.band(f.reg.control, 0x1c) + local proto = (f.reg.control & 0x1c) if proto == I801_QUICK then return SMBUS_QUICK @@ -73,7 +73,7 @@ local function intel_smbus_host_status(f, action) if not smbus.passive(f) then f.reg.status = 0x0 end - if bit32.band(f.reg.status, 0x40) ~= 0 then + if (f.reg.status & 0x40) ~= 0 then printk(f, action, "Host may be busy, ignoring.\n") end smbus.get_resource(f) @@ -83,19 +83,19 @@ local function intel_smbus_host_status(f, action) elseif smbus.state(f, HOST_STARTED) then if not smbus.passive(f) then - f.reg.status = bit32.band(f.reg.status, 0xFE) + f.reg.status = (f.reg.status & 0xFE) if f.reg.busy_count > 0 then f.reg.busy_count = f.reg.busy_count - 1 - f.reg.status = bit32.bor(f.reg.status, 0x01) + f.reg.status = (f.reg.status | 0x01) end - if bit32.band(f.reg.status, 0x02) == 0 then + if (f.reg.status & 0x02) == 0 then smbus_transaction(host) end end - local irq = bit32.band(f.reg.status, 0x02) ~= 0 - local failures = bit32.band(f.reg.status, 0x1c) ~= 0 - local host_busy = bit32.band(f.reg.status, 0x01) ~= 0 + local irq = (f.reg.status & 0x02) ~= 0 + local failures = (f.reg.status & 0x1c) ~= 0 + local host_busy = (f.reg.status & 0x01) ~= 0 if irq and not host_busy then smbus.done(f) @@ -107,17 +107,17 @@ local function intel_smbus_host_status(f, action) if not smbus.passive(f) then action.data = f.reg.status; - f.reg.status = bit32.bor(f.reg.status, 0x40) + f.reg.status = (f.reg.status | 0x40) end else if not smbus.passive(f) then - f.reg.status = bit32.band(f.reg.status, bit32.bnot(action.data)) + f.reg.status = (f.reg.status & ~action.data) end - local ack_irq = bit32.band(action.data, 0x02) ~= 0 - local release_host = bit32.band(action.data, 0x40) ~= 0 - local failures = bit32.band(action.data, 0x1c) ~= 0 + local ack_irq = (action.data & 0x02) ~= 0 + local release_host = (action.data & 0x40) ~= 0 + local failures = (action.data & 0x1c) ~= 0 if release_host then smbus.put_resource(f) end @@ -137,18 +137,18 @@ local function intel_smbus_host_control(f, action) if not action.write then f.reg.block_ptr=0; if not smbus.passive(f) then - action.data = bit32.band(f.reg.control, bit32.bnot(0x40)) + action.data = (f.reg.control & ~0x40) end else f.reg.control = action.data; - if bit32.band(f.reg.control, 0x80) ~= 0 then + if (f.reg.control & 0x80) ~= 0 then printk(f, action, "No PEC simulation\n") end - local abort = bit32.band(f.reg.control, 0x02) ~= 0 - local start = bit32.band(f.reg.control, 0x40) ~= 0 + local abort = (f.reg.control & 0x02) ~= 0 + local start = (f.reg.control & 0x40) ~= 0 if abort then smbus.abort(f) end @@ -171,7 +171,7 @@ local function intel_smbus_block_data(f, action) end local function intel_smbus_host_access(f, action) - local reg = bit32.band(action.addr, (f.size-1)) + local reg = action.addr & (f.size-1) -- mirror hw register both ways local data_write = 0 @@ -246,7 +246,7 @@ local intel_smbus_host = { function intel_smbus_setup(base, size) local f = intel_smbus_host - f.base = bit32.band(base, bit32.bnot(size-1)) + f.base = (base & ~size-1) f.size = size if not f.reg then f.reg = { control = 0, status = 0, busy_count = 0, block_ptr = 0, aux_ctl = 0, aux_sts = 0 } diff --git a/SerialICE/simba/chipset/pc80.lua b/SerialICE/simba/chipset/pc80.lua index 35d01e3..454bdda 100644 --- a/SerialICE/simba/chipset/pc80.lua +++ b/SerialICE/simba/chipset/pc80.lua @@ -25,9 +25,9 @@ filter_debugport = { -- i8259 PIC function i8259_pre(f, action) - local master = (bit32.rshift(0x05, action.addr) == 0x1) - local slave = (bit32.rshift(0x05, action.addr) == 0x5) - local reg = bit32.band(0x03, action.addr) + local master = ((0x05 >> action.addr) == 0x1) + local slave = ((0x05 >> action.addr) == 0x5) + local reg = (0x03 & action.addr) if reg == 0 or reg == 1 then return handle_action(f, action) end @@ -35,7 +35,7 @@ function i8259_pre(f, action) end function i8259_post(f,action) - local reg = bit32.band(0x03, action.addr) + local reg = (0x03 & action.addr) if reg == 0 or reg == 1 then return true end @@ -133,37 +133,37 @@ function i8254_pre(f, action) return handle_action(f, action) end - local reg = bit32.band(0x03, action.addr) + local reg = (0x03 & action.addr) if reg >= 0x0 and reg < 0x03 then local counter_n = 0 local counter_p = 0 if f.counter[reg].lsb then f.counter[reg].lsb = f.counter[reg].after_lsb counter_n = action.data - counter_p = bit32.band(0xff00, f.counter[reg].init) + counter_p = (0xff00 & f.counter[reg].init) else - counter_n = bit32.lshift(action.data, 8) - counter_p = bit32.band(0x00ff, f.counter[reg].init) + counter_n = (action.data << 8) + counter_p = (0x00ff & f.counter[reg].init) end - f.counter[reg].init = bit32.bor(counter_n, counter_p) + f.counter[reg].init = (counter_n | counter_p) elseif reg == 0x03 then - local reg2 = bit32.rshift(action.data, 6) - local rwsel = bit32.band(0x3, bit32.rshift(action.data, 4)) + local reg2 = (action.data >> 6) + local rwsel = 0x3 & (action.data >> 4) if reg2 == 0x3 then - if bit32.band(0x10, action.data) == 0 then - f.counter[0].readback = (bit32.band(0x2, action.data) ~= 0) - f.counter[1].readback = (bit32.band(0x4, action.data) ~= 0) - f.counter[2].readback = (bit32.band(0x8, action.data) ~= 0) + if (0x10 & action.data) == 0 then + f.counter[0].readback = ((0x2 & action.data) ~= 0) + f.counter[1].readback = ((0x4 & action.data) ~= 0) + f.counter[2].readback = ((0x8 & action.data) ~= 0) end - if bit32.band(0x20, action.data) == 0 then - f.counter[0].latch = (bit32.band(0x2, action.data) ~= 0) - f.counter[1].latch = (bit32.band(0x4, action.data) ~= 0) - f.counter[2].latch = (bit32.band(0x8, action.data) ~= 0) + if (0x20 & action.data) == 0 then + f.counter[0].latch = ((0x2 & action.data) ~= 0) + f.counter[1].latch = ((0x4 & action.data) ~= 0) + f.counter[2].latch = ((0x8 & action.data) ~= 0) end elseif rwsel == 0x0 then f.counter[reg2].latch = true else - f.counter[reg2].mode = bit32.band(0xf, action.data) + f.counter[reg2].mode = (0xf & action.data) if rwsel == 0x1 then f.counter[reg2].lsb = true f.counter[reg2].after_lsb = true @@ -180,17 +180,17 @@ function i8254_pre(f, action) end function i8254_post(f, action) - local reg = bit32.band(0x03, action.addr) + local reg = (0x03 & action.addr) if reg >= 0x0 and reg < 0x03 then if action.write then - local mode = bit32.band(0x0f, f.counter[reg].mode); + local mode = (0x0f & f.counter[reg].mode); local modestr = "Mode" .. mode if mode == 0x4 then modestr = "Square Wave" elseif mode == 0x6 then modestr = "Rate Generator" end - if bit32.band(0x01, mode) ~= 0 then + if (0x01 & mode) ~= 0 then modestr = modestr .. " (BCD)" end @@ -262,15 +262,15 @@ filter_i8254_b = { function i8042_write(f, action) if action.addr == 0x60 then f.reg.data = action.data - f.reg.sts = bit32.band(f.reg.sts, 0xf7) + f.reg.sts = (f.reg.sts & 0xf7) if (f.reg.cmd == 0xd1) then - f.reg.A20 = (bit32.band(0x02, action.data) == 0x02) + f.reg.A20 = ((0x02 & action.data) == 0x02) end return handle_action(f, action) end if action.addr == 0x64 then f.reg.cmd = action.data - f.reg.sts = bit32.bor(f.reg.sts, 0x0a) + f.reg.sts = (f.reg.sts | 0x0a) return handle_action(f, action) end return skip_filter(f, action) @@ -278,7 +278,7 @@ end function i8042_read(f, action) if action.addr == 0x60 then - f.reg.sts = bit32.band(f.reg.sts, 0xfe) + f.reg.sts = (f.reg.sts & 0xfe) return handle_action(f, action) end if action.addr == 0x64 then @@ -330,11 +330,11 @@ filter_i8042 = { function nvram_bank(addr) - if bit32.band(0xfe, addr) == 0x70 then + if (0xfe & addr) == 0x70 then return 1 - elseif bit32.band(0xfe, addr) == 0x72 then + elseif (0xfe & addr) == 0x72 then return 2 - elseif bit32.band(0xfe, addr) == 0x74 then + elseif (0xfe & addr) == 0x74 then return 2 else return 0 @@ -344,12 +344,12 @@ end function nvram_write(f, action) local val = action.data local rtc = false - local is_index = (bit32.band(0x01, action.addr) == 0x0) + local is_index = ((0x01 & action.addr) == 0x0) local bank = nvram_bank(action.addr) if bank == 1 then if is_index then - f.reg.p70 = bit32.band(0x7f, val) + f.reg.p70 = (0x7f & val) if f.reg.p70 < 0x0E then rtc = true end @@ -362,7 +362,7 @@ function nvram_write(f, action) end elseif bank == 2 then if is_index then - f.reg.p72 = bit32.band(0x7f, val) + f.reg.p72 = (0x7f & val) else local index = 0x80 + f.reg.p72 f.nvram_data[index] = val @@ -379,7 +379,7 @@ end function nvram_read(f, action) local val = 0 local rtc = false - local is_index = (bit32.band(0x01, action.addr) == 0x0) + local is_index = ((0x01 & action.addr) == 0x0) local bank = nvram_bank(action.addr) if bank == 1 then @@ -423,7 +423,7 @@ function nvram_pre(f, action) end function nvram_post(f, action) - if bit32.band(0x01, action.addr) == 0x0 then + if (0x01 & action.addr) == 0x0 then return true end @@ -463,7 +463,7 @@ filter_nvram = { function sys_rst_pre(f, action) if action.size == 1 then - if action.write and bit32.band(action.data, 0x04) == 0x04 then + if action.write and (action.data & 0x04) == 0x04 then SerialICE_system_reset() end return handle_action(f, action) diff --git a/SerialICE/simba/chipset/smbus_host.lua b/SerialICE/simba/chipset/smbus_host.lua index 1da4b0c..f8baf2e 100644 --- a/SerialICE/simba/chipset/smbus_host.lua +++ b/SerialICE/simba/chipset/smbus_host.lua @@ -50,19 +50,19 @@ local function signal_reset(f) end local function signal_set(f, flag) - local mask = bit32.lshift(1, flag) - f.host.signals = bit32.bor(f.host.signals, mask) + local mask = (1 << flag) + f.host.signals = (f.host.signals | mask) end local function signal_clr(f, flag) - local mask = bit32.bnot(bit32.lshift(1, flag)) - f.host.signals = bit32.band(f.host.signals, mask) + local mask = ~(1 << flag) + f.host.signals = (f.host.signals & mask) end local function signal_in(f, flag) - local mask = bit32.lshift(1, flag) - return bit32.band(f.host.signals, mask) ~= 0 + local mask = (1 << flag) + return (f.host.signals & mask) ~= 0 end -- ******************* @@ -119,7 +119,7 @@ local function host_proto(f, proto) end local function host_reading(f) - return bit32.band(f.host.slave, 0x01) == 0x01 + return (f.host.slave & 0x01) == 0x01 end diff --git a/SerialICE/simba/chipset/superio.lua b/SerialICE/simba/chipset/superio.lua index 7d6252c..03e1e61 100644 --- a/SerialICE/simba/chipset/superio.lua +++ b/SerialICE/simba/chipset/superio.lua @@ -59,7 +59,7 @@ function superio_try_enable_io(f, idx) if ldn.set[0x30] and ldn.data[0x30] ~= 0x0 then if idx == 0 and ldn.set[0x60] and ldn.set[0x61] then - local iobase = bit32.bor(bit32.lshift(ldn.data[0x60], 8), ldn.data[0x61]) + local iobase = (ldn.data[0x60] << 8) | ldn.data[0x61] if not ldn.bar0.size then ldn.bar0.size = 1 end @@ -73,7 +73,7 @@ function superio_try_enable_io(f, idx) end end if idx == 1 and ldn.set[0x62] and ldn.set[0x63] then - local iobase = bit32.bor(bit32.lshift(ldn.data[0x62], 8), ldn.data[0x63]) + local iobase = (ldn.data[0x62] << 8) | ldn.data[0x63] if not ldn.bar1.size then ldn.bar1.size = 1 end diff --git a/SerialICE/simba/chipset/via_bars.lua b/SerialICE/simba/chipset/via_bars.lua index 5610230..71f026a 100644 --- a/SerialICE/simba/chipset/via_bars.lua +++ b/SerialICE/simba/chipset/via_bars.lua @@ -35,7 +35,7 @@ dev_nb_traf_ctl = { } function vx900_pcie_bar(f, action) - local baseaddr = bit32.lshift(action.data, 28) + local baseaddr = (action.data << 28) local size = 256*1024*1024 -- enable is 0:00.5 [060] .10 @@ -57,7 +57,7 @@ dev_sb = { function sb_mmio_bar(f, action) -- This MMIO space is used for SPI and CEC control f.dev.mmio.name = "SB_MMIO" - f.dev.mmio.val = bit32.lshift(bit32.band(action.data, 0xfff0), 8) + f.dev.mmio.val = (action.data & 0xfff0) << 8 f.dev.mmio.size = 0x10000 generic_mmio_bar(f.dev.mmio) @@ -65,13 +65,13 @@ end function pm_io_bar(f, action) f.dev.acpi.name = "ACPI" - f.dev.acpi.val = bit32.band(action.data, 0xff80) + f.dev.acpi.val = (action.data & 0xff80) f.dev.acpi.size = 0x80 generic_io_bar(f.dev.acpi) end function smbus_bar_hook(f, action) - local base = bit32.band(action.data, 0xfff0) + local base = (action.data & 0xfff0) intel_smbus_setup(base, 0x10) end diff --git a/SerialICE/simba/core_io.lua b/SerialICE/simba/core_io.lua index 08ae42e..f1bf8cb 100644 --- a/SerialICE/simba/core_io.lua +++ b/SerialICE/simba/core_io.lua @@ -58,9 +58,9 @@ function mem_post(f, action) end elseif f.decode == F_RANGE then if (action.write) then - printk(f, action, "[%08x] <= %s\n", bit32.band(action.addr, (f.size - 1)), size) + printk(f, action, "[%08x] <= %s\n", action.addr & (f.size - 1), size) else - printk(f, action, "[%08x] => %s\n", bit32.band(action.addr, (f.size - 1)), size) + printk(f, action, "[%08x] => %s\n", action.addr & (f.size - 1), size) end end return true diff --git a/SerialICE/simba/cpu.lua b/SerialICE/simba/cpu.lua index 02839a9..10a7fe4 100644 --- a/SerialICE/simba/cpu.lua +++ b/SerialICE/simba/cpu.lua @@ -19,14 +19,14 @@ function var_mtrr_post(f, action) elseif mt == 6 then memtype = "Write-Back" else memtype = "Unknown" end - printk(f, action, "Set MTRR %x base to %08x.%08x (%s)\n", (addr - 0x200) / 2, hi, bit32.band(lo, 0xffffff00), memtype) + printk(f, action, "Set MTRR %x base to %08x.%08x (%s)\n", (addr - 0x200) / 2, hi, (lo & 0xffffff00), memtype) else - if bit32.band(lo, 0x800) == 0x800 then + if (lo & 0x800) == 0x800 then valid = "valid" else valid = "disabled" end - printk(f, action, "Set MTRR %x mask to %08x.%08x (%s)\n", (addr - 0x200) / 2, hi, bit32.band(lo, 0xfffff000), valid) + printk(f, action, "Set MTRR %x mask to %08x.%08x (%s)\n", (addr - 0x200) / 2, hi, (lo & 0xfffff000), valid) end return true end @@ -114,8 +114,8 @@ function multicore_post(f, action) -- Set number of cores to 1 on Core Duo and Atom to trick the -- firmware into not trying to wake up non-BSP nodes. if not action.write and rin.eax == 0x01 then - rout.ebx = bit32.band(0xff00ffff, rout.ebx); - rout.ebx = bit32.bor(0x00010000, rout.ebx); + rout.ebx = (0xff00ffff & rout.ebx); + rout.ebx = (0x00010000 | rout.ebx); return fake_action(f, action, 0) end return skip_filter(f, action) diff --git a/SerialICE/simba/hooks.lua b/SerialICE/simba/hooks.lua index c726e8c..3813088 100644 --- a/SerialICE/simba/hooks.lua +++ b/SerialICE/simba/hooks.lua @@ -141,7 +141,7 @@ function generic_io_bar(bar) f.size = bar.size bar.f = f end - bar.f.base = bit32.band(bar.val, bit32.bnot(bar.size-1)) + bar.f.base = (bar.val & ~bar.size-1) if (bar.f.base ~= 0) then enable_hook(io_hooks, bar.f) else @@ -160,7 +160,7 @@ function generic_mmio_bar(bar) f.size = bar.size bar.f = f end - bar.f.base = bit32.band(bar.val, bit32.bnot(bar.size-1)) + bar.f.base = (bar.val & ~bar.size-1) if bar.f.base ~= 0 then enable_hook(mem_hooks, bar.f) else @@ -230,11 +230,11 @@ function pre_action(action, dir_wr, addr, size, data) action.size = size if action.write then if size == 1 then - action.data = bit32.band(0xff, data) + action.data = (0xff & data) elseif size == 2 then - action.data = bit32.band(0xffff, data) + action.data = (0xffff & data) elseif size == 4 then - action.data = bit32.band(0xffffffff, data) + action.data = (0xffffffff & data) end end end diff --git a/SerialICE/simba/mmio.lua b/SerialICE/simba/mmio.lua index c6ba1e5..628a87e 100644 --- a/SerialICE/simba/mmio.lua +++ b/SerialICE/simba/mmio.lua @@ -7,9 +7,9 @@ -- We should avoid that someone wakes up cores -- on the target system that go wild. function mem_lapic(f, action) - if bit32.band(action.addr, f.size-1) == 0x300 then + if (action.addr & f.size-1) == 0x300 then -- replace Start-Up IPI with Init IPI - if action.write and bit32.band(action.data, 0xf0f00) == 0xc0600 then + if action.write and (action.data & 0xf0f00) == 0xc0600 then return fake_action(f, action, 0xc0500) end end diff --git a/SerialICE/simba/pci_cfg.lua b/SerialICE/simba/pci_cfg.lua index e7bdf65..2e892a7 100644 --- a/SerialICE/simba/pci_cfg.lua +++ b/SerialICE/simba/pci_cfg.lua @@ -11,10 +11,10 @@ PCI_CFG_WRITE = true pci_cfg_hooks = new_hooks("PCI") function add_pci_cfg_hook(dev, reg, size, func) - local bdfr = bit32.bor(dev.pci_dev, reg) + local bdfr = (dev.pci_dev | reg) local name = string.format("%x:%02x.%x [%03x]", - bit32.band(0xff,bit32.rshift(bdfr, 20)), bit32.band(0x1f,bit32.rshift(bdfr, 15)), - bit32.band(0x7,bit32.rshift(bdfr, 12)), bit32.band(0xfff,bdfr)) + (0xff & (bdfr >> 20)), (0x1f & (bdfr >> 15)), + (0x7 & (bdfr >> 12)), (0xfff & bdfr)) local filter = { base = bdfr, dev = dev, @@ -30,7 +30,7 @@ end function is_pci_cfg_hooked(bdf) local l = pci_cfg_hooks.list while l do - if bdf == bit32.band(l.hook.base, bit32.bnot(0x03)) then + if bdf == (l.hook.base & ~0x03) then return true end l = l.next @@ -151,8 +151,8 @@ function pci_cfg_print(f, action, bdfr) end printk(f, action, "%x:%02x.%x [%03x] %s %s\n", - bit32.band(0xff,bit32.rshift(bdfr, 20)), bit32.band(0x1f,bit32.rshift(bdfr, 15)), - bit32.band(0x7,bit32.rshift(bdfr, 12)), bit32.band(0xfff,bdfr), + (0xff & (bdfr >> 20)), (0x1f & (bdfr >> 15)), + (0x7 & (bdfr >> 12)), (0xfff & bdfr), dir_str, size_data(action.size, action.data)) end @@ -186,19 +186,19 @@ function pci_cfg_access(f, action) if (size == 1) then av[addr%4] = true bv[addr%4] = true - amask = bit32.lshift(0xff, ll) - omask = bit32.lshift(data, ll) - f.reg.data = bit32.band(f.reg.data, bit32.bnot(amask)) - f.reg.data = bit32.bor(f.reg.data, omask) + amask = (0xff << ll) + omask = (data << ll) + f.reg.data = (f.reg.data & ~amask) + f.reg.data = (f.reg.data | omask) elseif (size == 2) then av[addr%4] = true bv[addr%4] = true av[addr%4+1] = true bv[addr%4+1] = true - amask = bit32.lshift(0xffff, ll) - omask = bit32.lshift(data, ll) - f.reg.data = bit32.band(f.reg.data, bit32.bnot(amask)) - f.reg.data = bit32.bor(f.reg.data, omask) + amask = (0xffff << ll) + omask = (data << ll) + f.reg.data = (f.reg.data & ~amask) + f.reg.data = (f.reg.data | omask) elseif (size == 4) then f.reg.data = data for i = 0, 3, 1 do av[i] = true end @@ -211,14 +211,14 @@ function pci_cfg_access(f, action) if (bv[i] and av[i]) then call_pci_cfg_hook(action, bdfr + i, 1, val) end - val = bit32.rshift(val, 8) + val = (val >> 8) end val = f.reg.data for i = 0, 2, 1 do if ((bv[i] and bv[i+1]) and (av[i] or av[i+1])) then call_pci_cfg_hook(action, bdfr + i, 2, val) end - val = bit32.rshift(val, 8) + val = (val >> 8) end val = f.reg.data if (bv[0] and bv[1] and bv[2] and bv[3]) then @@ -233,20 +233,20 @@ end function pci_io_cfg_pre(f, action) if action.addr == 0xcf8 and action.size == 4 then if action.write then - if bit32.band(0x80000000, action.data) ~= 0 then + if (0x80000000 & action.data) ~= 0 then f.reg.reset = true new_parent_action() end local bdfr = 0 -- BDFR is like normal BDF but reg has 12 bits to cover all extended space -- Copy bus/device/function - bdfr = bit32.lshift(action.data, 4) - bdfr = bit32.band(bdfr, 0x0ffff000) + bdfr = (action.data << 4) + bdfr = (bdfr & 0x0ffff000) -- Some chipsets allows (on request) performing extended register space access -- Usually using bits 27:24, copy that to right place - bdfr = bit32.bor(bdfr, bit32.band(0xf00, bit32.rshift(action.data, 24 - 8))) + bdfr = bdfr | (0xf00 & (action.data >> 24 - 8)) -- Add the classic PCI register - bdfr = bit32.bor(bdfr, bit32.band(action.data, 0xfc)) + bdfr = bdfr | (action.data & 0xfc) pci_cfg_select(f, bdfr) end return handle_action(f, action) @@ -287,8 +287,8 @@ filter_pci_io_cfg = { function pci_mm_cfg_pre(f, action) local bdfr = 0 - bdfr = bit32.band(action.addr, bit32.bnot(f.base)) - bdfr = bit32.band(bdfr, bit32.bnot(0x3)) + bdfr = (action.addr & ~f.base) + bdfr = (bdfr & ~0x3) pci_cfg_select(f, bdfr) pci_cfg_access(f, action) @@ -297,7 +297,7 @@ function pci_mm_cfg_pre(f, action) end function pci_mm_cfg_post(f, action) - local bdfr = bit32.band(action.addr, bit32.bnot(f.base)) + local bdfr = (action.addr & ~f.base) pci_cfg_print(f, action, bdfr) return true end diff --git a/SerialICE/simba/replay.lua b/SerialICE/simba/replay.lua index 8ec3b0a..e7a2868 100644 --- a/SerialICE/simba/replay.lua +++ b/SerialICE/simba/replay.lua @@ -153,8 +153,8 @@ function parse_pci(line) return false end - local nreg = bit32.band(0xfc, tonumber(reg,16)) - local noff = bit32.band(0x03, tonumber(reg,16)) + local nreg = 0xfc & tonumber(reg,16) + local noff = 0x03 & tonumber(reg,16) local ndata = tonumber(data,16) local nsize = string.len(data)/2 diff --git a/qemu-0.15.x/configure b/qemu-0.15.x/configure index 947fa3f..7f8f104 100755 --- a/qemu-0.15.x/configure +++ b/qemu-0.15.x/configure @@ -1743,44 +1743,28 @@ EOF got_lua=yes fi fi - if test "$got_lua" != "yes" && $pkg_config --atleast-version=5.2 lua ; then + if test "$got_lua" != "yes" && $pkg_config --atleast-version=5.3 lua ; then lua_cflags=`$pkg_config --cflags lua 2> /dev/null` lua_ldflags=`$pkg_config --libs lua 2> /dev/null` if compile_prog "$lua_cflags" "$lua_ldflags" > /dev/null 2> /dev/null ; then got_lua=yes fi fi - if test "$got_lua" != "yes" && $pkg_config --exists lua5.2 ; then - lua_cflags=`$pkg_config --cflags lua5.2 2> /dev/null` - lua_ldflags=`$pkg_config --libs lua5.2 2> /dev/null` + if test "$got_lua" != "yes" && $pkg_config --exists lua5.3 ; then + lua_cflags=`$pkg_config --cflags lua5.3 2> /dev/null` + lua_ldflags=`$pkg_config --libs lua5.3 2> /dev/null` if compile_prog "$lua_cflags" "$lua_ldflags" > /dev/null 2> /dev/null ; then got_lua=yes fi fi if test "$got_lua" != "yes" ; then echo - echo "Error Lua version >= 5.2 not found. Can't build QEMU with SerialICE support." - echo - exit 1 - fi - -# Test if lua-5.2.x-intsize.patch has been applied. On a 32bit host system -# LUA_INTEGER is often a signed 32bit integer (ptrdiff_t) and not enough for our needs. - cat > $TMPC << EOF -#include <lua.h> -int main(void) { LUA_INTEGER a = (unsigned long int)1<<31; if (a<0) return 1; else return 0; } -EOF - - if compile_prog "$lua_cflags" "$lua_ldflags" && $TMPE > /dev/null 2> /dev/null ; then - serialice=yes - else - echo - echo "Error Found Lua but it needs a patch to handle 32bit unsigned integers" - echo "correctly. Can't build QEMU with SerialICE support." + echo "Error Lua version >= 5.3 not found. Can't build QEMU with SerialICE support." echo exit 1 fi + serialice=yes libs_softmmu="$lua_ldflags $libs_softmmu" fi # test "$serialice" diff --git a/qemu-0.15.x/serialice-lua.c b/qemu-0.15.x/serialice-lua.c index 0216eb2..cdf3e25 100644 --- a/qemu-0.15.x/serialice-lua.c +++ b/qemu-0.15.x/serialice-lua.c @@ -106,7 +106,7 @@ static int serialice_system_reset(lua_State * luastate) static int register_set(lua_State * L) { const char *key = luaL_checkstring(L, 2); - int val = luaL_checkint(L, 3); + int val = luaL_checkinteger(L, 3); int ret = 1; if (strcmp(key, "eax") == 0) {
6 years
1
0
0
0
[PATCH] Port to lua 5.3
by Lubomir Rintel
It uses integers natively and removes the bit32 library. The intsize patch is no longer needed. --- SerialICE/patches/lua-5.2.0-intsize.diff | 20 --------- SerialICE/patches/lua-5.2.0-shared.diff | 42 ------------------- SerialICE/patches/lua-5.2.0-x64-fix.diff | 12 ------ SerialICE/simba/chipset/i82801.lua | 6 +-- SerialICE/simba/chipset/intel_bars.lua | 14 +++---- SerialICE/simba/chipset/intel_smbus.lua | 38 ++++++++--------- SerialICE/simba/chipset/pc80.lua | 72 ++++++++++++++++---------------- SerialICE/simba/chipset/smbus_host.lua | 14 +++---- SerialICE/simba/chipset/superio.lua | 4 +- SerialICE/simba/chipset/via_bars.lua | 8 ++-- SerialICE/simba/core_io.lua | 4 +- SerialICE/simba/cpu.lua | 10 ++--- SerialICE/simba/hooks.lua | 10 ++--- SerialICE/simba/mmio.lua | 4 +- SerialICE/simba/pci_cfg.lua | 48 ++++++++++----------- SerialICE/simba/replay.lua | 4 +- qemu-0.15.x/configure | 28 +++---------- qemu-0.15.x/serialice-lua.c | 2 +- 18 files changed, 125 insertions(+), 215 deletions(-) delete mode 100644 SerialICE/patches/lua-5.2.0-intsize.diff delete mode 100644 SerialICE/patches/lua-5.2.0-shared.diff delete mode 100644 SerialICE/patches/lua-5.2.0-x64-fix.diff diff --git a/SerialICE/patches/lua-5.2.0-intsize.diff b/SerialICE/patches/lua-5.2.0-intsize.diff deleted file mode 100644 index e29ffae..0000000 --- a/SerialICE/patches/lua-5.2.0-intsize.diff +++ /dev/null @@ -1,20 +0,0 @@ -diff -ur lua-5.2.0/src/luaconf.h lua-5.2.0-shared/src/luaconf.h ---- lua-5.2.0/src/luaconf.h 2011-12-06 17:58:36.000000000 +0100 -+++ lua-5.2.0-shared/src/luaconf.h 2012-06-12 22:25:20.179943819 +0200 -@@ -10,6 +10,7 @@ - - #include <limits.h> - #include <stddef.h> -+#include <stdint.h> - - - /* -@@ -444,7 +445,7 @@ - ** CHANGE that if ptrdiff_t is not adequate on your machine. (On most - ** machines, ptrdiff_t gives a good choice between int or long.) - */ --#define LUA_INTEGER ptrdiff_t -+#define LUA_INTEGER int64_t - - /* - @@ LUA_UNSIGNED is the integral type used by lua_pushunsigned/lua_tounsigned. diff --git a/SerialICE/patches/lua-5.2.0-shared.diff b/SerialICE/patches/lua-5.2.0-shared.diff deleted file mode 100644 index 4b8aaaf..0000000 --- a/SerialICE/patches/lua-5.2.0-shared.diff +++ /dev/null @@ -1,42 +0,0 @@ -diff -ur lua-5.2.0/Makefile lua-5.2.0-shared/Makefile ---- lua-5.2.0/Makefile 2011-11-16 00:38:12.000000000 +0100 -+++ lua-5.2.0-shared/Makefile 2012-06-12 21:42:25.953250340 +0200 -@@ -41,7 +41,7 @@ - # What to install. - TO_BIN= lua luac - TO_INC= lua.h luaconf.h lualib.h lauxlib.h lua.hpp --TO_LIB= liblua.a -+TO_LIB= liblua.a liblua.so - TO_MAN= lua.1 luac.1 - - # Lua version and release. -diff -ur lua-5.2.0/src/Makefile lua-5.2.0-shared/src/Makefile ---- lua-5.2.0/src/Makefile 2011-09-19 14:45:14.000000000 +0200 -+++ lua-5.2.0-shared/src/Makefile 2012-06-12 21:44:17.476584177 +0200 -@@ -29,6 +29,7 @@ - PLATS= aix ansi bsd freebsd generic linux macosx mingw posix solaris - - LUA_A= liblua.a -+LUA_SO= liblua.so - CORE_O= lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o \ - lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o \ - ltm.o lundump.o lvm.o lzio.o -@@ -43,7 +44,7 @@ - LUAC_O= luac.o - - ALL_O= $(BASE_O) $(LUA_O) $(LUAC_O) --ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) -+ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) $(LUA_SO) - ALL_A= $(LUA_A) - - # Targets start here. -@@ -59,6 +60,9 @@ - $(AR) $@ $? - $(RANLIB) $@ - -+$(LUA_SO): $(CORE_O) $(LIB_O) -+ $(CC) -o $@ -shared $? -lm -ldl -+ - $(LUA_T): $(LUA_O) $(LUA_A) - $(CC) -o $@ $(LDFLAGS) $(LUA_O) $(LUA_A) $(LIBS) - diff --git a/SerialICE/patches/lua-5.2.0-x64-fix.diff b/SerialICE/patches/lua-5.2.0-x64-fix.diff deleted file mode 100644 index d649f7a..0000000 --- a/SerialICE/patches/lua-5.2.0-x64-fix.diff +++ /dev/null @@ -1,12 +0,0 @@ -diff -ur lua-5.2.0/src/Makefile lua-5.2.0-shared/src/Makefile ---- lua-5.2.0/src/Makefile 2011-09-19 14:45:14.000000000 +0200 -+++ lua-5.2.0-shared/src/Makefile 2012-06-12 22:24:16.973276561 +0200 -@@ -103,7 +103,7 @@ - generic: $(ALL) - - linux: -- $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-Wl,-E -ldl -lreadline -lncurses" -+ $(MAKE) $(ALL) SYSCFLAGS="-fPIC -DLUA_USE_LINUX" SYSLIBS="-Wl,-E -ldl -lreadline -lncurses" - - macosx: - $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_MACOSX" SYSLIBS="-lreadline" diff --git a/SerialICE/simba/chipset/i82801.lua b/SerialICE/simba/chipset/i82801.lua index 24da007..40be0f9 100644 --- a/SerialICE/simba/chipset/i82801.lua +++ b/SerialICE/simba/chipset/i82801.lua @@ -44,11 +44,11 @@ function pm_io_bar(f, action) end function lpc_io_bar(f, action) - local base = bit32.band(action.data, 0xffff) - local mask = bit32.bor(bit32.rshift(action.data, 16), 3) + local base = (action.data & 0xffff) + local mask = (action.data >> 16) | 3 local size = mask + 1 - base = bit32.band(base, bit32.bnot(mask)) + base = (base & ~mask) add_bar(f.dev, f.reg, "LPC", size) f.dev.bar[f.reg].val = base diff --git a/SerialICE/simba/chipset/intel_bars.lua b/SerialICE/simba/chipset/intel_bars.lua index 0841a23..63feb23 100644 --- a/SerialICE/simba/chipset/intel_bars.lua +++ b/SerialICE/simba/chipset/intel_bars.lua @@ -35,7 +35,7 @@ dev_i915 = { } function i915_pcie_bar(f, action) - local baseaddr = bit32.band(action.data, 0xf0000000) + local baseaddr = (action.data & 0xf0000000) local size = 256*1024*1024 -- enable is 0:00.0 [054] .31 @@ -58,26 +58,26 @@ end function i945_pcie_bar(f, action) local base = action.data - local sizebits = bit32.band(bit32.rshift(base, 1), 0x3) + local sizebits = (base >> 1) & 0x3 local baseaddr = 0 local size = 0 if sizebits == 0 then size = 256*1024*1024 - baseaddr = bit32.band(base, 0xf0000000) + baseaddr = (base & 0xf0000000) elseif sizebits == 1 then size = 128*1024*1024 - baseaddr = bit32.band(base, 0xf8000000) + baseaddr = (base & 0xf8000000) elseif sizebits == 2 then size = 64*1024*1024 - baseaddr = bit32.band(base, 0xfc000000) + baseaddr = (base & 0xfc000000) else -- undefined, really - baseaddr = bit32.band(base, 0xfe000000) + baseaddr = (base & 0xfe000000) size = 32*1024*1024 end - if bit32.band(base, 1) ~= 0 then + if (base & 1) ~= 0 then pcie_mm_enable(f.dev, f.reg, baseaddr, size) else pcie_mm_disable(f.dev, f.reg, baseaddr, size) diff --git a/SerialICE/simba/chipset/intel_smbus.lua b/SerialICE/simba/chipset/intel_smbus.lua index 1c2606d..469e7c8 100644 --- a/SerialICE/simba/chipset/intel_smbus.lua +++ b/SerialICE/simba/chipset/intel_smbus.lua @@ -31,7 +31,7 @@ I801_PEC_EN = 0x80 local function intel_smbus_get_protocol(f) - local proto = bit32.band(f.reg.control, 0x1c) + local proto = (f.reg.control & 0x1c) if proto == I801_QUICK then return SMBUS_QUICK @@ -73,7 +73,7 @@ local function intel_smbus_host_status(f, action) if not smbus.passive(f) then f.reg.status = 0x0 end - if bit32.band(f.reg.status, 0x40) ~= 0 then + if (f.reg.status & 0x40) ~= 0 then printk(f, action, "Host may be busy, ignoring.\n") end smbus.get_resource(f) @@ -83,19 +83,19 @@ local function intel_smbus_host_status(f, action) elseif smbus.state(f, HOST_STARTED) then if not smbus.passive(f) then - f.reg.status = bit32.band(f.reg.status, 0xFE) + f.reg.status = (f.reg.status & 0xFE) if f.reg.busy_count > 0 then f.reg.busy_count = f.reg.busy_count - 1 - f.reg.status = bit32.bor(f.reg.status, 0x01) + f.reg.status = (f.reg.status | 0x01) end - if bit32.band(f.reg.status, 0x02) == 0 then + if (f.reg.status & 0x02) == 0 then smbus_transaction(host) end end - local irq = bit32.band(f.reg.status, 0x02) ~= 0 - local failures = bit32.band(f.reg.status, 0x1c) ~= 0 - local host_busy = bit32.band(f.reg.status, 0x01) ~= 0 + local irq = (f.reg.status & 0x02) ~= 0 + local failures = (f.reg.status & 0x1c) ~= 0 + local host_busy = (f.reg.status & 0x01) ~= 0 if irq and not host_busy then smbus.done(f) @@ -107,17 +107,17 @@ local function intel_smbus_host_status(f, action) if not smbus.passive(f) then action.data = f.reg.status; - f.reg.status = bit32.bor(f.reg.status, 0x40) + f.reg.status = (f.reg.status | 0x40) end else if not smbus.passive(f) then - f.reg.status = bit32.band(f.reg.status, bit32.bnot(action.data)) + f.reg.status = (f.reg.status & ~action.data) end - local ack_irq = bit32.band(action.data, 0x02) ~= 0 - local release_host = bit32.band(action.data, 0x40) ~= 0 - local failures = bit32.band(action.data, 0x1c) ~= 0 + local ack_irq = (action.data & 0x02) ~= 0 + local release_host = (action.data & 0x40) ~= 0 + local failures = (action.data & 0x1c) ~= 0 if release_host then smbus.put_resource(f) end @@ -137,18 +137,18 @@ local function intel_smbus_host_control(f, action) if not action.write then f.reg.block_ptr=0; if not smbus.passive(f) then - action.data = bit32.band(f.reg.control, bit32.bnot(0x40)) + action.data = (f.reg.control & ~0x40) end else f.reg.control = action.data; - if bit32.band(f.reg.control, 0x80) ~= 0 then + if (f.reg.control & 0x80) ~= 0 then printk(f, action, "No PEC simulation\n") end - local abort = bit32.band(f.reg.control, 0x02) ~= 0 - local start = bit32.band(f.reg.control, 0x40) ~= 0 + local abort = (f.reg.control & 0x02) ~= 0 + local start = (f.reg.control & 0x40) ~= 0 if abort then smbus.abort(f) end @@ -171,7 +171,7 @@ local function intel_smbus_block_data(f, action) end local function intel_smbus_host_access(f, action) - local reg = bit32.band(action.addr, (f.size-1)) + local reg = action.addr & (f.size-1) -- mirror hw register both ways local data_write = 0 @@ -246,7 +246,7 @@ local intel_smbus_host = { function intel_smbus_setup(base, size) local f = intel_smbus_host - f.base = bit32.band(base, bit32.bnot(size-1)) + f.base = (base & ~size-1) f.size = size if not f.reg then f.reg = { control = 0, status = 0, busy_count = 0, block_ptr = 0, aux_ctl = 0, aux_sts = 0 } diff --git a/SerialICE/simba/chipset/pc80.lua b/SerialICE/simba/chipset/pc80.lua index 35d01e3..454bdda 100644 --- a/SerialICE/simba/chipset/pc80.lua +++ b/SerialICE/simba/chipset/pc80.lua @@ -25,9 +25,9 @@ filter_debugport = { -- i8259 PIC function i8259_pre(f, action) - local master = (bit32.rshift(0x05, action.addr) == 0x1) - local slave = (bit32.rshift(0x05, action.addr) == 0x5) - local reg = bit32.band(0x03, action.addr) + local master = ((0x05 >> action.addr) == 0x1) + local slave = ((0x05 >> action.addr) == 0x5) + local reg = (0x03 & action.addr) if reg == 0 or reg == 1 then return handle_action(f, action) end @@ -35,7 +35,7 @@ function i8259_pre(f, action) end function i8259_post(f,action) - local reg = bit32.band(0x03, action.addr) + local reg = (0x03 & action.addr) if reg == 0 or reg == 1 then return true end @@ -133,37 +133,37 @@ function i8254_pre(f, action) return handle_action(f, action) end - local reg = bit32.band(0x03, action.addr) + local reg = (0x03 & action.addr) if reg >= 0x0 and reg < 0x03 then local counter_n = 0 local counter_p = 0 if f.counter[reg].lsb then f.counter[reg].lsb = f.counter[reg].after_lsb counter_n = action.data - counter_p = bit32.band(0xff00, f.counter[reg].init) + counter_p = (0xff00 & f.counter[reg].init) else - counter_n = bit32.lshift(action.data, 8) - counter_p = bit32.band(0x00ff, f.counter[reg].init) + counter_n = (action.data << 8) + counter_p = (0x00ff & f.counter[reg].init) end - f.counter[reg].init = bit32.bor(counter_n, counter_p) + f.counter[reg].init = (counter_n | counter_p) elseif reg == 0x03 then - local reg2 = bit32.rshift(action.data, 6) - local rwsel = bit32.band(0x3, bit32.rshift(action.data, 4)) + local reg2 = (action.data >> 6) + local rwsel = 0x3 & (action.data >> 4) if reg2 == 0x3 then - if bit32.band(0x10, action.data) == 0 then - f.counter[0].readback = (bit32.band(0x2, action.data) ~= 0) - f.counter[1].readback = (bit32.band(0x4, action.data) ~= 0) - f.counter[2].readback = (bit32.band(0x8, action.data) ~= 0) + if (0x10 & action.data) == 0 then + f.counter[0].readback = ((0x2 & action.data) ~= 0) + f.counter[1].readback = ((0x4 & action.data) ~= 0) + f.counter[2].readback = ((0x8 & action.data) ~= 0) end - if bit32.band(0x20, action.data) == 0 then - f.counter[0].latch = (bit32.band(0x2, action.data) ~= 0) - f.counter[1].latch = (bit32.band(0x4, action.data) ~= 0) - f.counter[2].latch = (bit32.band(0x8, action.data) ~= 0) + if (0x20 & action.data) == 0 then + f.counter[0].latch = ((0x2 & action.data) ~= 0) + f.counter[1].latch = ((0x4 & action.data) ~= 0) + f.counter[2].latch = ((0x8 & action.data) ~= 0) end elseif rwsel == 0x0 then f.counter[reg2].latch = true else - f.counter[reg2].mode = bit32.band(0xf, action.data) + f.counter[reg2].mode = (0xf & action.data) if rwsel == 0x1 then f.counter[reg2].lsb = true f.counter[reg2].after_lsb = true @@ -180,17 +180,17 @@ function i8254_pre(f, action) end function i8254_post(f, action) - local reg = bit32.band(0x03, action.addr) + local reg = (0x03 & action.addr) if reg >= 0x0 and reg < 0x03 then if action.write then - local mode = bit32.band(0x0f, f.counter[reg].mode); + local mode = (0x0f & f.counter[reg].mode); local modestr = "Mode" .. mode if mode == 0x4 then modestr = "Square Wave" elseif mode == 0x6 then modestr = "Rate Generator" end - if bit32.band(0x01, mode) ~= 0 then + if (0x01 & mode) ~= 0 then modestr = modestr .. " (BCD)" end @@ -262,15 +262,15 @@ filter_i8254_b = { function i8042_write(f, action) if action.addr == 0x60 then f.reg.data = action.data - f.reg.sts = bit32.band(f.reg.sts, 0xf7) + f.reg.sts = (f.reg.sts & 0xf7) if (f.reg.cmd == 0xd1) then - f.reg.A20 = (bit32.band(0x02, action.data) == 0x02) + f.reg.A20 = ((0x02 & action.data) == 0x02) end return handle_action(f, action) end if action.addr == 0x64 then f.reg.cmd = action.data - f.reg.sts = bit32.bor(f.reg.sts, 0x0a) + f.reg.sts = (f.reg.sts | 0x0a) return handle_action(f, action) end return skip_filter(f, action) @@ -278,7 +278,7 @@ end function i8042_read(f, action) if action.addr == 0x60 then - f.reg.sts = bit32.band(f.reg.sts, 0xfe) + f.reg.sts = (f.reg.sts & 0xfe) return handle_action(f, action) end if action.addr == 0x64 then @@ -330,11 +330,11 @@ filter_i8042 = { function nvram_bank(addr) - if bit32.band(0xfe, addr) == 0x70 then + if (0xfe & addr) == 0x70 then return 1 - elseif bit32.band(0xfe, addr) == 0x72 then + elseif (0xfe & addr) == 0x72 then return 2 - elseif bit32.band(0xfe, addr) == 0x74 then + elseif (0xfe & addr) == 0x74 then return 2 else return 0 @@ -344,12 +344,12 @@ end function nvram_write(f, action) local val = action.data local rtc = false - local is_index = (bit32.band(0x01, action.addr) == 0x0) + local is_index = ((0x01 & action.addr) == 0x0) local bank = nvram_bank(action.addr) if bank == 1 then if is_index then - f.reg.p70 = bit32.band(0x7f, val) + f.reg.p70 = (0x7f & val) if f.reg.p70 < 0x0E then rtc = true end @@ -362,7 +362,7 @@ function nvram_write(f, action) end elseif bank == 2 then if is_index then - f.reg.p72 = bit32.band(0x7f, val) + f.reg.p72 = (0x7f & val) else local index = 0x80 + f.reg.p72 f.nvram_data[index] = val @@ -379,7 +379,7 @@ end function nvram_read(f, action) local val = 0 local rtc = false - local is_index = (bit32.band(0x01, action.addr) == 0x0) + local is_index = ((0x01 & action.addr) == 0x0) local bank = nvram_bank(action.addr) if bank == 1 then @@ -423,7 +423,7 @@ function nvram_pre(f, action) end function nvram_post(f, action) - if bit32.band(0x01, action.addr) == 0x0 then + if (0x01 & action.addr) == 0x0 then return true end @@ -463,7 +463,7 @@ filter_nvram = { function sys_rst_pre(f, action) if action.size == 1 then - if action.write and bit32.band(action.data, 0x04) == 0x04 then + if action.write and (action.data & 0x04) == 0x04 then SerialICE_system_reset() end return handle_action(f, action) diff --git a/SerialICE/simba/chipset/smbus_host.lua b/SerialICE/simba/chipset/smbus_host.lua index 1da4b0c..f8baf2e 100644 --- a/SerialICE/simba/chipset/smbus_host.lua +++ b/SerialICE/simba/chipset/smbus_host.lua @@ -50,19 +50,19 @@ local function signal_reset(f) end local function signal_set(f, flag) - local mask = bit32.lshift(1, flag) - f.host.signals = bit32.bor(f.host.signals, mask) + local mask = (1 << flag) + f.host.signals = (f.host.signals | mask) end local function signal_clr(f, flag) - local mask = bit32.bnot(bit32.lshift(1, flag)) - f.host.signals = bit32.band(f.host.signals, mask) + local mask = ~(1 << flag) + f.host.signals = (f.host.signals & mask) end local function signal_in(f, flag) - local mask = bit32.lshift(1, flag) - return bit32.band(f.host.signals, mask) ~= 0 + local mask = (1 << flag) + return (f.host.signals & mask) ~= 0 end -- ******************* @@ -119,7 +119,7 @@ local function host_proto(f, proto) end local function host_reading(f) - return bit32.band(f.host.slave, 0x01) == 0x01 + return (f.host.slave & 0x01) == 0x01 end diff --git a/SerialICE/simba/chipset/superio.lua b/SerialICE/simba/chipset/superio.lua index 7d6252c..03e1e61 100644 --- a/SerialICE/simba/chipset/superio.lua +++ b/SerialICE/simba/chipset/superio.lua @@ -59,7 +59,7 @@ function superio_try_enable_io(f, idx) if ldn.set[0x30] and ldn.data[0x30] ~= 0x0 then if idx == 0 and ldn.set[0x60] and ldn.set[0x61] then - local iobase = bit32.bor(bit32.lshift(ldn.data[0x60], 8), ldn.data[0x61]) + local iobase = (ldn.data[0x60] << 8) | ldn.data[0x61] if not ldn.bar0.size then ldn.bar0.size = 1 end @@ -73,7 +73,7 @@ function superio_try_enable_io(f, idx) end end if idx == 1 and ldn.set[0x62] and ldn.set[0x63] then - local iobase = bit32.bor(bit32.lshift(ldn.data[0x62], 8), ldn.data[0x63]) + local iobase = (ldn.data[0x62] << 8) | ldn.data[0x63] if not ldn.bar1.size then ldn.bar1.size = 1 end diff --git a/SerialICE/simba/chipset/via_bars.lua b/SerialICE/simba/chipset/via_bars.lua index 5610230..71f026a 100644 --- a/SerialICE/simba/chipset/via_bars.lua +++ b/SerialICE/simba/chipset/via_bars.lua @@ -35,7 +35,7 @@ dev_nb_traf_ctl = { } function vx900_pcie_bar(f, action) - local baseaddr = bit32.lshift(action.data, 28) + local baseaddr = (action.data << 28) local size = 256*1024*1024 -- enable is 0:00.5 [060] .10 @@ -57,7 +57,7 @@ dev_sb = { function sb_mmio_bar(f, action) -- This MMIO space is used for SPI and CEC control f.dev.mmio.name = "SB_MMIO" - f.dev.mmio.val = bit32.lshift(bit32.band(action.data, 0xfff0), 8) + f.dev.mmio.val = (action.data & 0xfff0) << 8 f.dev.mmio.size = 0x10000 generic_mmio_bar(f.dev.mmio) @@ -65,13 +65,13 @@ end function pm_io_bar(f, action) f.dev.acpi.name = "ACPI" - f.dev.acpi.val = bit32.band(action.data, 0xff80) + f.dev.acpi.val = (action.data & 0xff80) f.dev.acpi.size = 0x80 generic_io_bar(f.dev.acpi) end function smbus_bar_hook(f, action) - local base = bit32.band(action.data, 0xfff0) + local base = (action.data & 0xfff0) intel_smbus_setup(base, 0x10) end diff --git a/SerialICE/simba/core_io.lua b/SerialICE/simba/core_io.lua index 08ae42e..f1bf8cb 100644 --- a/SerialICE/simba/core_io.lua +++ b/SerialICE/simba/core_io.lua @@ -58,9 +58,9 @@ function mem_post(f, action) end elseif f.decode == F_RANGE then if (action.write) then - printk(f, action, "[%08x] <= %s\n", bit32.band(action.addr, (f.size - 1)), size) + printk(f, action, "[%08x] <= %s\n", action.addr & (f.size - 1), size) else - printk(f, action, "[%08x] => %s\n", bit32.band(action.addr, (f.size - 1)), size) + printk(f, action, "[%08x] => %s\n", action.addr & (f.size - 1), size) end end return true diff --git a/SerialICE/simba/cpu.lua b/SerialICE/simba/cpu.lua index 02839a9..10a7fe4 100644 --- a/SerialICE/simba/cpu.lua +++ b/SerialICE/simba/cpu.lua @@ -19,14 +19,14 @@ function var_mtrr_post(f, action) elseif mt == 6 then memtype = "Write-Back" else memtype = "Unknown" end - printk(f, action, "Set MTRR %x base to %08x.%08x (%s)\n", (addr - 0x200) / 2, hi, bit32.band(lo, 0xffffff00), memtype) + printk(f, action, "Set MTRR %x base to %08x.%08x (%s)\n", (addr - 0x200) / 2, hi, (lo & 0xffffff00), memtype) else - if bit32.band(lo, 0x800) == 0x800 then + if (lo & 0x800) == 0x800 then valid = "valid" else valid = "disabled" end - printk(f, action, "Set MTRR %x mask to %08x.%08x (%s)\n", (addr - 0x200) / 2, hi, bit32.band(lo, 0xfffff000), valid) + printk(f, action, "Set MTRR %x mask to %08x.%08x (%s)\n", (addr - 0x200) / 2, hi, (lo & 0xfffff000), valid) end return true end @@ -114,8 +114,8 @@ function multicore_post(f, action) -- Set number of cores to 1 on Core Duo and Atom to trick the -- firmware into not trying to wake up non-BSP nodes. if not action.write and rin.eax == 0x01 then - rout.ebx = bit32.band(0xff00ffff, rout.ebx); - rout.ebx = bit32.bor(0x00010000, rout.ebx); + rout.ebx = (0xff00ffff & rout.ebx); + rout.ebx = (0x00010000 | rout.ebx); return fake_action(f, action, 0) end return skip_filter(f, action) diff --git a/SerialICE/simba/hooks.lua b/SerialICE/simba/hooks.lua index c726e8c..3813088 100644 --- a/SerialICE/simba/hooks.lua +++ b/SerialICE/simba/hooks.lua @@ -141,7 +141,7 @@ function generic_io_bar(bar) f.size = bar.size bar.f = f end - bar.f.base = bit32.band(bar.val, bit32.bnot(bar.size-1)) + bar.f.base = (bar.val & ~bar.size-1) if (bar.f.base ~= 0) then enable_hook(io_hooks, bar.f) else @@ -160,7 +160,7 @@ function generic_mmio_bar(bar) f.size = bar.size bar.f = f end - bar.f.base = bit32.band(bar.val, bit32.bnot(bar.size-1)) + bar.f.base = (bar.val & ~bar.size-1) if bar.f.base ~= 0 then enable_hook(mem_hooks, bar.f) else @@ -230,11 +230,11 @@ function pre_action(action, dir_wr, addr, size, data) action.size = size if action.write then if size == 1 then - action.data = bit32.band(0xff, data) + action.data = (0xff & data) elseif size == 2 then - action.data = bit32.band(0xffff, data) + action.data = (0xffff & data) elseif size == 4 then - action.data = bit32.band(0xffffffff, data) + action.data = (0xffffffff & data) end end end diff --git a/SerialICE/simba/mmio.lua b/SerialICE/simba/mmio.lua index c6ba1e5..628a87e 100644 --- a/SerialICE/simba/mmio.lua +++ b/SerialICE/simba/mmio.lua @@ -7,9 +7,9 @@ -- We should avoid that someone wakes up cores -- on the target system that go wild. function mem_lapic(f, action) - if bit32.band(action.addr, f.size-1) == 0x300 then + if (action.addr & f.size-1) == 0x300 then -- replace Start-Up IPI with Init IPI - if action.write and bit32.band(action.data, 0xf0f00) == 0xc0600 then + if action.write and (action.data & 0xf0f00) == 0xc0600 then return fake_action(f, action, 0xc0500) end end diff --git a/SerialICE/simba/pci_cfg.lua b/SerialICE/simba/pci_cfg.lua index e7bdf65..2e892a7 100644 --- a/SerialICE/simba/pci_cfg.lua +++ b/SerialICE/simba/pci_cfg.lua @@ -11,10 +11,10 @@ PCI_CFG_WRITE = true pci_cfg_hooks = new_hooks("PCI") function add_pci_cfg_hook(dev, reg, size, func) - local bdfr = bit32.bor(dev.pci_dev, reg) + local bdfr = (dev.pci_dev | reg) local name = string.format("%x:%02x.%x [%03x]", - bit32.band(0xff,bit32.rshift(bdfr, 20)), bit32.band(0x1f,bit32.rshift(bdfr, 15)), - bit32.band(0x7,bit32.rshift(bdfr, 12)), bit32.band(0xfff,bdfr)) + (0xff & (bdfr >> 20)), (0x1f & (bdfr >> 15)), + (0x7 & (bdfr >> 12)), (0xfff & bdfr)) local filter = { base = bdfr, dev = dev, @@ -30,7 +30,7 @@ end function is_pci_cfg_hooked(bdf) local l = pci_cfg_hooks.list while l do - if bdf == bit32.band(l.hook.base, bit32.bnot(0x03)) then + if bdf == (l.hook.base & ~0x03) then return true end l = l.next @@ -151,8 +151,8 @@ function pci_cfg_print(f, action, bdfr) end printk(f, action, "%x:%02x.%x [%03x] %s %s\n", - bit32.band(0xff,bit32.rshift(bdfr, 20)), bit32.band(0x1f,bit32.rshift(bdfr, 15)), - bit32.band(0x7,bit32.rshift(bdfr, 12)), bit32.band(0xfff,bdfr), + (0xff & (bdfr >> 20)), (0x1f & (bdfr >> 15)), + (0x7 & (bdfr >> 12)), (0xfff & bdfr), dir_str, size_data(action.size, action.data)) end @@ -186,19 +186,19 @@ function pci_cfg_access(f, action) if (size == 1) then av[addr%4] = true bv[addr%4] = true - amask = bit32.lshift(0xff, ll) - omask = bit32.lshift(data, ll) - f.reg.data = bit32.band(f.reg.data, bit32.bnot(amask)) - f.reg.data = bit32.bor(f.reg.data, omask) + amask = (0xff << ll) + omask = (data << ll) + f.reg.data = (f.reg.data & ~amask) + f.reg.data = (f.reg.data | omask) elseif (size == 2) then av[addr%4] = true bv[addr%4] = true av[addr%4+1] = true bv[addr%4+1] = true - amask = bit32.lshift(0xffff, ll) - omask = bit32.lshift(data, ll) - f.reg.data = bit32.band(f.reg.data, bit32.bnot(amask)) - f.reg.data = bit32.bor(f.reg.data, omask) + amask = (0xffff << ll) + omask = (data << ll) + f.reg.data = (f.reg.data & ~amask) + f.reg.data = (f.reg.data | omask) elseif (size == 4) then f.reg.data = data for i = 0, 3, 1 do av[i] = true end @@ -211,14 +211,14 @@ function pci_cfg_access(f, action) if (bv[i] and av[i]) then call_pci_cfg_hook(action, bdfr + i, 1, val) end - val = bit32.rshift(val, 8) + val = (val >> 8) end val = f.reg.data for i = 0, 2, 1 do if ((bv[i] and bv[i+1]) and (av[i] or av[i+1])) then call_pci_cfg_hook(action, bdfr + i, 2, val) end - val = bit32.rshift(val, 8) + val = (val >> 8) end val = f.reg.data if (bv[0] and bv[1] and bv[2] and bv[3]) then @@ -233,20 +233,20 @@ end function pci_io_cfg_pre(f, action) if action.addr == 0xcf8 and action.size == 4 then if action.write then - if bit32.band(0x80000000, action.data) ~= 0 then + if (0x80000000 & action.data) ~= 0 then f.reg.reset = true new_parent_action() end local bdfr = 0 -- BDFR is like normal BDF but reg has 12 bits to cover all extended space -- Copy bus/device/function - bdfr = bit32.lshift(action.data, 4) - bdfr = bit32.band(bdfr, 0x0ffff000) + bdfr = (action.data << 4) + bdfr = (bdfr & 0x0ffff000) -- Some chipsets allows (on request) performing extended register space access -- Usually using bits 27:24, copy that to right place - bdfr = bit32.bor(bdfr, bit32.band(0xf00, bit32.rshift(action.data, 24 - 8))) + bdfr = bdfr | (0xf00 & (action.data >> 24 - 8)) -- Add the classic PCI register - bdfr = bit32.bor(bdfr, bit32.band(action.data, 0xfc)) + bdfr = bdfr | (action.data & 0xfc) pci_cfg_select(f, bdfr) end return handle_action(f, action) @@ -287,8 +287,8 @@ filter_pci_io_cfg = { function pci_mm_cfg_pre(f, action) local bdfr = 0 - bdfr = bit32.band(action.addr, bit32.bnot(f.base)) - bdfr = bit32.band(bdfr, bit32.bnot(0x3)) + bdfr = (action.addr & ~f.base) + bdfr = (bdfr & ~0x3) pci_cfg_select(f, bdfr) pci_cfg_access(f, action) @@ -297,7 +297,7 @@ function pci_mm_cfg_pre(f, action) end function pci_mm_cfg_post(f, action) - local bdfr = bit32.band(action.addr, bit32.bnot(f.base)) + local bdfr = (action.addr & ~f.base) pci_cfg_print(f, action, bdfr) return true end diff --git a/SerialICE/simba/replay.lua b/SerialICE/simba/replay.lua index 8ec3b0a..e7a2868 100644 --- a/SerialICE/simba/replay.lua +++ b/SerialICE/simba/replay.lua @@ -153,8 +153,8 @@ function parse_pci(line) return false end - local nreg = bit32.band(0xfc, tonumber(reg,16)) - local noff = bit32.band(0x03, tonumber(reg,16)) + local nreg = 0xfc & tonumber(reg,16) + local noff = 0x03 & tonumber(reg,16) local ndata = tonumber(data,16) local nsize = string.len(data)/2 diff --git a/qemu-0.15.x/configure b/qemu-0.15.x/configure index 947fa3f..7f8f104 100755 --- a/qemu-0.15.x/configure +++ b/qemu-0.15.x/configure @@ -1743,44 +1743,28 @@ EOF got_lua=yes fi fi - if test "$got_lua" != "yes" && $pkg_config --atleast-version=5.2 lua ; then + if test "$got_lua" != "yes" && $pkg_config --atleast-version=5.3 lua ; then lua_cflags=`$pkg_config --cflags lua 2> /dev/null` lua_ldflags=`$pkg_config --libs lua 2> /dev/null` if compile_prog "$lua_cflags" "$lua_ldflags" > /dev/null 2> /dev/null ; then got_lua=yes fi fi - if test "$got_lua" != "yes" && $pkg_config --exists lua5.2 ; then - lua_cflags=`$pkg_config --cflags lua5.2 2> /dev/null` - lua_ldflags=`$pkg_config --libs lua5.2 2> /dev/null` + if test "$got_lua" != "yes" && $pkg_config --exists lua5.3 ; then + lua_cflags=`$pkg_config --cflags lua5.3 2> /dev/null` + lua_ldflags=`$pkg_config --libs lua5.3 2> /dev/null` if compile_prog "$lua_cflags" "$lua_ldflags" > /dev/null 2> /dev/null ; then got_lua=yes fi fi if test "$got_lua" != "yes" ; then echo - echo "Error Lua version >= 5.2 not found. Can't build QEMU with SerialICE support." - echo - exit 1 - fi - -# Test if lua-5.2.x-intsize.patch has been applied. On a 32bit host system -# LUA_INTEGER is often a signed 32bit integer (ptrdiff_t) and not enough for our needs. - cat > $TMPC << EOF -#include <lua.h> -int main(void) { LUA_INTEGER a = (unsigned long int)1<<31; if (a<0) return 1; else return 0; } -EOF - - if compile_prog "$lua_cflags" "$lua_ldflags" && $TMPE > /dev/null 2> /dev/null ; then - serialice=yes - else - echo - echo "Error Found Lua but it needs a patch to handle 32bit unsigned integers" - echo "correctly. Can't build QEMU with SerialICE support." + echo "Error Lua version >= 5.3 not found. Can't build QEMU with SerialICE support." echo exit 1 fi + serialice=yes libs_softmmu="$lua_ldflags $libs_softmmu" fi # test "$serialice" diff --git a/qemu-0.15.x/serialice-lua.c b/qemu-0.15.x/serialice-lua.c index 0216eb2..cdf3e25 100644 --- a/qemu-0.15.x/serialice-lua.c +++ b/qemu-0.15.x/serialice-lua.c @@ -106,7 +106,7 @@ static int serialice_system_reset(lua_State * luastate) static int register_set(lua_State * L) { const char *key = luaL_checkstring(L, 2); - int val = luaL_checkint(L, 3); + int val = luaL_checkinteger(L, 3); int ret = 1; if (strcmp(key, "eax") == 0) { -- 2.1.0
6 years
1
0
0
0
← Newer
1
Older →
Jump to page:
1
Results per page:
10
25
50
100
200