mirror of
https://github.com/AmbiML/sparrow-kata-full.git
synced 2025-08-01 21:59:41 +00:00
sel4-sys: fix pointer mutability in syscall stubs
Change-Id: I2c3139f7c3fb0d0390970f0a388a8ee5bc692bd3 GitOrigin-RevId: ac3853a5ea171e9948aad70b036757ece1aea657
This commit is contained in:
parent
06f2d60e94
commit
0548098405
@ -167,12 +167,12 @@ class Type(object):
|
||||
name = "type_"
|
||||
return "%s: %s" % (name, translate_type(self.name))
|
||||
|
||||
def pointer(self):
|
||||
def pointer(self, mutable):
|
||||
"""
|
||||
Return a new Type class representing a pointer to this
|
||||
object.
|
||||
"""
|
||||
return PointerType(self, self.wordsize)
|
||||
return PointerType(self, self.wordsize, mutable)
|
||||
|
||||
def c_expression(self, var_name, word_num=0):
|
||||
"""
|
||||
@ -198,14 +198,18 @@ class PointerType(Type):
|
||||
A pointer to a standard type.
|
||||
"""
|
||||
|
||||
def __init__(self, base_type, wordsize):
|
||||
def __init__(self, base_type, wordsize, mutable):
|
||||
Type.__init__(self, base_type.name, wordsize, wordsize)
|
||||
self.base_type = base_type
|
||||
self.mutable = mutable
|
||||
|
||||
def render_parameter_name(self, name):
|
||||
if name == "type":
|
||||
name = "type_"
|
||||
return "%s: *mut %s" % (name, translate_type(self.name))
|
||||
if self.mutable:
|
||||
return "%s: *mut %s" % (name, translate_type(self.name))
|
||||
else:
|
||||
return "%s: *const %s" % (name, translate_type(self.name))
|
||||
|
||||
def c_expression(self, var_name, word_num=0):
|
||||
assert word_num == 0
|
||||
@ -466,10 +470,10 @@ def generate_param_list(input_params, output_params):
|
||||
if not param.type.pass_by_reference():
|
||||
params.append(param.type.render_parameter_name(param.name))
|
||||
else:
|
||||
params.append(param.type.pointer().render_parameter_name(param.name))
|
||||
params.append(param.type.pointer(False).render_parameter_name(param.name))
|
||||
for param in output_params:
|
||||
if param.type.pass_by_reference():
|
||||
params.append(param.type.pointer().render_parameter_name(param.name))
|
||||
params.append(param.type.pointer(True).render_parameter_name(param.name))
|
||||
|
||||
return ", ".join(params)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user