Merge tag 'v3.3.7' into 3.3/master
[zen-stable.git] / arch / tile / include / hv / syscall_public.h
blob9cc0837e69fd7e79aadfb18fbabd6f0ebbef4919
1 /*
2 * Copyright 2010 Tilera Corporation. All Rights Reserved.
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public License
6 * as published by the Free Software Foundation, version 2.
8 * This program is distributed in the hope that it will be useful, but
9 * WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
11 * NON INFRINGEMENT. See the GNU General Public License for
12 * more details.
15 /**
16 * @file syscall.h
17 * Indices for the hypervisor system calls that are intended to be called
18 * directly, rather than only through hypervisor-generated "glue" code.
21 #ifndef _SYS_HV_INCLUDE_SYSCALL_PUBLIC_H
22 #define _SYS_HV_INCLUDE_SYSCALL_PUBLIC_H
24 /** Fast syscall flag bit location. When this bit is set, the hypervisor
25 * handles the syscall specially.
27 #define HV_SYS_FAST_SHIFT 14
29 /** Fast syscall flag bit mask. */
30 #define HV_SYS_FAST_MASK (1 << HV_SYS_FAST_SHIFT)
32 /** Bit location for flagging fast syscalls that can be called from PL0. */
33 #define HV_SYS_FAST_PLO_SHIFT 13
35 /** Fast syscall allowing PL0 bit mask. */
36 #define HV_SYS_FAST_PL0_MASK (1 << HV_SYS_FAST_PLO_SHIFT)
38 /** Perform an MF that waits for all victims to reach DRAM. */
39 #define HV_SYS_fence_incoherent (51 | HV_SYS_FAST_MASK \
40 | HV_SYS_FAST_PL0_MASK)
42 #endif /* !_SYS_HV_INCLUDE_SYSCALL_PUBLIC_H */