1 Adjust types and sizes for 32-bit pointers
2 --- xen-4.14.3/tools/golang/xenlight/gengotypes.py.orig 2021-09-10 14:30:40.000000000 +0200
3 +++ xen-4.14.3/tools/golang/xenlight/gengotypes.py 2021-11-07 17:39:55.516237472 +0100
5 s += 'x.{0} = nil\n'.format(goname)
6 s += 'if n := int(xc.{0}); n > 0 {{\n'.format(clenvar)
7 s += '{0} := '.format(cslice)
8 - s +='(*[1<<28]C.{0})(unsafe.Pointer(xc.{1}))[:n:n]\n'.format(ctypename, cname)
9 + s +='(*[(1<<22)]C.{0})(unsafe.Pointer(xc.{1}))[:n:n]\n'.format(ctypename, cname)
10 s += 'x.{0} = make([]{1}, n)\n'.format(goname, gotypename)
11 s += 'for i, v := range {0} {{\n'.format(cslice)
14 s += 'xc.{0} = (*C.{1})(C.malloc(C.size_t({2}*{3})))\n'.format(cname,ctypename,
16 s += 'xc.{0} = C.int({1})\n'.format(clenvar,golenvar)
17 - s += 'c{0} := (*[1<<28]C.{1})(unsafe.Pointer(xc.{2}))[:{3}:{4}]\n'.format(goname,
18 + s += 'c{0} := (*[(1<<22)]C.{1})(unsafe.Pointer(xc.{2}))[:{3}:{4}]\n'.format(goname,
21 s += 'for i,v := range x.{0} {{\n'.format(goname)
25 s += 'if {0} := len(x.{1}); {2} > 0 {{\n'.format(golenvar,goname,golenvar)
26 - s += 'xc.{0} = (*C.{1})(C.malloc(C.ulong({2})*C.sizeof_{3}))\n'.format(cname,ctypename,
27 + s += 'xc.{0} = (*C.{1})(C.malloc(C.size_t({2})*C.sizeof_{3}))\n'.format(cname,ctypename,
29 s += 'xc.{0} = C.int({1})\n'.format(clenvar,golenvar)
30 - s += 'c{0} := (*[1<<28]C.{1})(unsafe.Pointer(xc.{2}))[:{3}:{4}]\n'.format(goname,
31 + s += 'c{0} := (*[(1<<22)]C.{1})(unsafe.Pointer(xc.{2}))[:{3}:{4}]\n'.format(goname,
34 s += 'for i,v := range x.{0} {{\n'.format(goname)
35 --- xen-4.14.3/tools/golang/xenlight/xenlight.go.orig 2021-09-10 14:30:40.000000000 +0200
36 +++ xen-4.14.3/tools/golang/xenlight/xenlight.go 2021-11-07 17:46:36.600731277 +0100
37 @@ -478,7 +478,7 @@ type StringList []string
39 func (sl *StringList) fromC(csl *C.libxl_string_list) error {
40 size := int(C.libxl_string_list_length(csl))
41 - list := (*[1 << 30]*C.char)(unsafe.Pointer(csl))[:size:size]
42 + list := (*[1 << 28]*C.char)(unsafe.Pointer(csl))[:size:size]
44 *sl = make([]string, size)
46 @@ -492,8 +492,8 @@ func (sl *StringList) fromC(csl *C.libxl
47 func (sl StringList) toC(csl *C.libxl_string_list) error {
50 - *csl = (C.libxl_string_list)(C.malloc(C.ulong(size) * C.ulong(unsafe.Sizeof(char))))
51 - clist := (*[1 << 30]*C.char)(unsafe.Pointer(csl))[:size:size]
52 + *csl = (C.libxl_string_list)(C.malloc(C.size_t(size) * C.size_t(unsafe.Sizeof(char))))
53 + clist := (*[1 << 28]*C.char)(unsafe.Pointer(csl))[:size:size]
55 for i, v := range sl {
56 clist[i] = C.CString(v)
57 @@ -537,8 +537,8 @@ func (bm *Bitmap) toC(cbm *C.libxl_bitma
58 size := len(bm.bitmap)
59 cbm.size = C.uint32_t(size)
61 - cbm._map = (*C.uint8_t)(C.malloc(C.ulong(cbm.size) * C.sizeof_uint8_t))
62 - cs := (*[1 << 31]C.uint8_t)(unsafe.Pointer(cbm._map))[:size:size]
63 + cbm._map = (*C.uint8_t)(C.malloc(C.size_t(cbm.size) * C.sizeof_uint8_t))
64 + cs := (*[1 << 30]C.uint8_t)(unsafe.Pointer(cbm._map))[:size:size]
68 @@ -605,7 +605,7 @@ func (Ctx *Context) ListCpupool() (list
72 - cpupoolListSlice := (*[1 << 30]C.libxl_cpupoolinfo)(unsafe.Pointer(c_cpupool_list))[:nbPool:nbPool]
73 + cpupoolListSlice := (*[1 << 26]C.libxl_cpupoolinfo)(unsafe.Pointer(c_cpupool_list))[:nbPool:nbPool]
74 for i := range cpupoolListSlice {
76 _ = info.fromC(&cpupoolListSlice[i])
77 @@ -1081,7 +1081,7 @@ func (Ctx *Context) ListDomain() (glist
81 - gslice := (*[1 << 30]C.libxl_dominfo)(unsafe.Pointer(clist))[:nbDomain:nbDomain]
82 + gslice := (*[1 << 24]C.libxl_dominfo)(unsafe.Pointer(clist))[:nbDomain:nbDomain]
83 for i := range gslice {
85 _ = info.fromC(&gslice[i])
86 @@ -1105,7 +1105,7 @@ func (Ctx *Context) ListVcpu(id Domid) (
90 - gslice := (*[1 << 30]C.libxl_vcpuinfo)(unsafe.Pointer(clist))[:nbVcpu:nbVcpu]
91 + gslice := (*[1 << 25]C.libxl_vcpuinfo)(unsafe.Pointer(clist))[:nbVcpu:nbVcpu]
92 for i := range gslice {
94 _ = info.fromC(&gslice[i])