correct the syscall return type

Long size syscall return values such as shmat()'s and lseek()'s are
broken, because lower 32 bits are only returned.
This commit is contained in:
NAKAMURA Gou
2014-01-31 20:31:37 +09:00
parent 93c5385f65
commit fcbaa9726c
3 changed files with 3 additions and 3 deletions

View File

@ -825,7 +825,7 @@ int main(int argc, char **argv)
void do_syscall_return(int fd, int cpu,
int ret, int n, unsigned long src, unsigned long dest,
long ret, int n, unsigned long src, unsigned long dest,
unsigned long sz)
{
struct syscall_ret_desc desc;

View File

@ -207,7 +207,7 @@ struct syscall_params {
#define SYSCALL_FOOTER return do_syscall(&request, ctx, ihk_mc_get_processor_id())
extern int do_syscall(struct syscall_request *req, ihk_mc_user_context_t *ctx, int cpu);
extern long do_syscall(struct syscall_request *req, ihk_mc_user_context_t *ctx, int cpu);
extern int obtain_clone_cpuid();
extern long syscall_generic_forwarding(int n, ihk_mc_user_context_t *ctx);

View File

@ -151,7 +151,7 @@ static void send_syscall(struct syscall_request *req, int cpu)
}
int do_syscall(struct syscall_request *req, ihk_mc_user_context_t *ctx, int cpu)
long do_syscall(struct syscall_request *req, ihk_mc_user_context_t *ctx, int cpu)
{
struct syscall_response *res;
struct syscall_request req2 IHK_DMA_ALIGN;