summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/soc/tegra/virt/syscalls.h44
1 files changed, 24 insertions, 20 deletions
diff --git a/include/soc/tegra/virt/syscalls.h b/include/soc/tegra/virt/syscalls.h
index ddf7e0823..aa8e1dfb7 100644
--- a/include/soc/tegra/virt/syscalls.h
+++ b/include/soc/tegra/virt/syscalls.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2014-2019, NVIDIA CORPORATION. All rights reserved. 2 * Copyright (C) 2014-2020, NVIDIA CORPORATION. All rights reserved.
3 * 3 *
4 * Hypervisor interfaces 4 * Hypervisor interfaces
5 * 5 *
@@ -200,8 +200,13 @@ struct hyp_server_page {
200#define _X7_X17 "x7", "x8", "x9", "x10", "x11", "x12", \ 200#define _X7_X17 "x7", "x8", "x9", "x10", "x11", "x12", \
201"x13", "x14", "x15", "x16", "x17" 201"x13", "x14", "x15", "x16", "x17"
202 202
203#if IS_ENABLED(CONFIG_KASAN)
204# define __INLINE __no_sanitize_address __maybe_unused
205#else
206# define __INLINE inline
207#endif
203 208
204static inline int hyp_read_gid(unsigned int *gid) 209static __INLINE int hyp_read_gid(unsigned int *gid)
205{ 210{
206 register uint64_t r0 asm("x0"); 211 register uint64_t r0 asm("x0");
207 register uint64_t r1 asm("x1"); 212 register uint64_t r1 asm("x1");
@@ -215,7 +220,7 @@ static inline int hyp_read_gid(unsigned int *gid)
215 return (int)r0; 220 return (int)r0;
216} 221}
217 222
218static inline uint32_t hyp_read_vcpu_id(void) 223static __INLINE uint32_t hyp_read_vcpu_id(void)
219{ 224{
220 register uint64_t r0 asm("x0"); 225 register uint64_t r0 asm("x0");
221 226
@@ -227,7 +232,7 @@ static inline uint32_t hyp_read_vcpu_id(void)
227 return (uint32_t)r0; 232 return (uint32_t)r0;
228} 233}
229 234
230static inline int hyp_read_nguests(unsigned int *nguests) 235static __INLINE int hyp_read_nguests(unsigned int *nguests)
231{ 236{
232 register uint64_t r0 asm("x0"); 237 register uint64_t r0 asm("x0");
233 register uint64_t r1 asm("x1"); 238 register uint64_t r1 asm("x1");
@@ -241,7 +246,7 @@ static inline int hyp_read_nguests(unsigned int *nguests)
241 return (int)r0; 246 return (int)r0;
242} 247}
243 248
244static inline int hyp_read_ivc_info(uint64_t *ivc_info_page_pa) 249static __INLINE int hyp_read_ivc_info(uint64_t *ivc_info_page_pa)
245{ 250{
246 register uint64_t r0 asm("x0"); 251 register uint64_t r0 asm("x0");
247 register uint64_t r1 asm("x1"); 252 register uint64_t r1 asm("x1");
@@ -255,7 +260,7 @@ static inline int hyp_read_ivc_info(uint64_t *ivc_info_page_pa)
255 return (int)r0; 260 return (int)r0;
256} 261}
257 262
258static inline int hyp_read_ipa_pa_info(struct hyp_ipa_pa_info *info, 263static __INLINE int hyp_read_ipa_pa_info(struct hyp_ipa_pa_info *info,
259 unsigned int guestid, uint64_t ipa) 264 unsigned int guestid, uint64_t ipa)
260{ 265{
261 register uint64_t r0 asm("x0") = guestid; 266 register uint64_t r0 asm("x0") = guestid;
@@ -276,7 +281,7 @@ static inline int hyp_read_ipa_pa_info(struct hyp_ipa_pa_info *info,
276 return (int)r0; 281 return (int)r0;
277} 282}
278 283
279static inline int hyp_raise_irq(unsigned int irq, unsigned int vmid) 284static __INLINE int hyp_raise_irq(unsigned int irq, unsigned int vmid)
280{ 285{
281 register uint64_t r0 asm("x0") = irq; 286 register uint64_t r0 asm("x0") = irq;
282 register uint64_t r1 asm("x1") = vmid; 287 register uint64_t r1 asm("x1") = vmid;
@@ -289,7 +294,7 @@ static inline int hyp_raise_irq(unsigned int irq, unsigned int vmid)
289 return (int)r0; 294 return (int)r0;
290} 295}
291 296
292static inline int hyp_read_guest_state(unsigned int vmid, unsigned int *state) 297static __INLINE int hyp_read_guest_state(unsigned int vmid, unsigned int *state)
293{ 298{
294 register uint64_t r0 asm("x0") = vmid; 299 register uint64_t r0 asm("x0") = vmid;
295 register uint64_t r1 asm("x1"); 300 register uint64_t r1 asm("x1");
@@ -303,7 +308,7 @@ static inline int hyp_read_guest_state(unsigned int vmid, unsigned int *state)
303 return (int)r0; 308 return (int)r0;
304} 309}
305 310
306static inline int hyp_read_hyp_info(uint64_t *hyp_info_page_pa) 311static __INLINE int hyp_read_hyp_info(uint64_t *hyp_info_page_pa)
307{ 312{
308 register uint64_t r0 asm("x0"); 313 register uint64_t r0 asm("x0");
309 register uint64_t r1 asm("x1"); 314 register uint64_t r1 asm("x1");
@@ -317,7 +322,7 @@ static inline int hyp_read_hyp_info(uint64_t *hyp_info_page_pa)
317 return (int)r0; 322 return (int)r0;
318} 323}
319 324
320static inline int hyp_guest_reset(unsigned int id, 325static __INLINE int hyp_guest_reset(unsigned int id,
321 struct hyp_sys_state_info *out) 326 struct hyp_sys_state_info *out)
322{ 327{
323 register uint64_t r0 asm("x0") = id; 328 register uint64_t r0 asm("x0") = id;
@@ -340,7 +345,7 @@ static inline int hyp_guest_reset(unsigned int id,
340 return (int)r0; 345 return (int)r0;
341} 346}
342 347
343static inline uint64_t hyp_sysinfo_ipa(void) 348static __INLINE uint64_t hyp_sysinfo_ipa(void)
344{ 349{
345 register uint64_t r0 asm("x0"); 350 register uint64_t r0 asm("x0");
346 351
@@ -352,7 +357,7 @@ static inline uint64_t hyp_sysinfo_ipa(void)
352 return r0; 357 return r0;
353} 358}
354 359
355static inline int hyp_trace_get_mask(uint64_t *mask) 360static __INLINE int hyp_trace_get_mask(uint64_t *mask)
356{ 361{
357 register uint64_t x0 asm("x0"); 362 register uint64_t x0 asm("x0");
358 register uint64_t x1 asm("x1"); 363 register uint64_t x1 asm("x1");
@@ -370,7 +375,7 @@ static inline int hyp_trace_get_mask(uint64_t *mask)
370 return (int)x0; 375 return (int)x0;
371} 376}
372 377
373static inline int hyp_trace_set_mask(uint64_t mask) 378static __INLINE int hyp_trace_set_mask(uint64_t mask)
374{ 379{
375 register uint64_t x0 asm("x0") = mask; 380 register uint64_t x0 asm("x0") = mask;
376 381
@@ -385,7 +390,7 @@ static inline int hyp_trace_set_mask(uint64_t mask)
385 return (int)x0; 390 return (int)x0;
386} 391}
387 392
388static inline int hyp_read_uart_relay_info(uint64_t *ipa, uint64_t *size, 393static __INLINE int hyp_read_uart_relay_info(uint64_t *ipa, uint64_t *size,
389 uint64_t *num_channels, 394 uint64_t *num_channels,
390 uint64_t *max_msg_size) 395 uint64_t *max_msg_size)
391{ 396{
@@ -410,8 +415,7 @@ static inline int hyp_read_uart_relay_info(uint64_t *ipa, uint64_t *size,
410 return (int)x0; 415 return (int)x0;
411} 416}
412 417
413 418static __INLINE int hyp_read_nvlog_reader_info(uint64_t *ipa, uint64_t *size,
414static inline int hyp_read_nvlog_reader_info(uint64_t *ipa, uint64_t *size,
415 uint64_t *num_vms) 419 uint64_t *num_vms)
416{ 420{
417 register uint64_t x0 asm("x0"); 421 register uint64_t x0 asm("x0");
@@ -434,7 +438,7 @@ static inline int hyp_read_nvlog_reader_info(uint64_t *ipa, uint64_t *size,
434 return (int)x0; 438 return (int)x0;
435} 439}
436 440
437static inline int hyp_read_nvlog_writer_info(uint64_t *ipa, uint64_t *size) 441static __INLINE int hyp_read_nvlog_writer_info(uint64_t *ipa, uint64_t *size)
438{ 442{
439 register uint64_t x0 asm("x0"); 443 register uint64_t x0 asm("x0");
440 register uint64_t x1 asm("x1"); 444 register uint64_t x1 asm("x1");
@@ -455,7 +459,7 @@ static inline int hyp_read_nvlog_writer_info(uint64_t *ipa, uint64_t *size)
455 return (int)x0; 459 return (int)x0;
456} 460}
457 461
458static inline int hyp_read_err_info_get(uint64_t *ipa, uint64_t *buff_size, 462static __INLINE int hyp_read_err_info_get(uint64_t *ipa, uint64_t *buff_size,
459 unsigned int *async_err_arr_items, int *peer_err_irq_id, 463 unsigned int *async_err_arr_items, int *peer_err_irq_id,
460 unsigned int *vcpu_cnt) 464 unsigned int *vcpu_cnt)
461{ 465{
@@ -480,7 +484,7 @@ static inline int hyp_read_err_info_get(uint64_t *ipa, uint64_t *buff_size,
480 return (int)r0; 484 return (int)r0;
481} 485}
482 486
483static inline int hyp_send_async_err_ack(uint64_t local_rd_idx) 487static __INLINE int hyp_send_async_err_ack(uint64_t local_rd_idx)
484{ 488{
485 register uint64_t r0 asm("x0") = local_rd_idx; 489 register uint64_t r0 asm("x0") = local_rd_idx;
486 490
@@ -492,7 +496,7 @@ static inline int hyp_send_async_err_ack(uint64_t local_rd_idx)
492 return (int)r0; 496 return (int)r0;
493} 497}
494 498
495static inline int hyp_send_sync_err_ack(void) 499static __INLINE int hyp_send_sync_err_ack(void)
496{ 500{
497 register uint64_t r0 asm("x0"); 501 register uint64_t r0 asm("x0");
498 502