From ed854de77028ac5787ab7f8ac42a28784c3f80df Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Thu, 7 Feb 2008 16:03:00 +0000 Subject: [PATCH] Also include info about the syscall return type in the extended_syscall_info structure. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23916 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- headers/private/kernel/ksyscalls.h | 13 ++++++++++--- src/tools/gensyscalls/gensyscalls.cpp | 8 ++++++++ 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/headers/private/kernel/ksyscalls.h b/headers/private/kernel/ksyscalls.h index 59764cb560..f57c6ba00e 100644 --- a/headers/private/kernel/ksyscalls.h +++ b/headers/private/kernel/ksyscalls.h @@ -24,10 +24,17 @@ typedef struct syscall_parameter_info { type_code type; } syscall_parameter_info; +typedef struct syscall_return_type_info { + int size; + int used_size; + type_code type; +} syscall_return_type_info; + typedef struct extended_syscall_info { - const char* name; - int parameter_count; - syscall_parameter_info parameters[MAX_SYSCALL_PARAMETERS]; + const char* name; + int parameter_count; + syscall_return_type_info return_type; + syscall_parameter_info parameters[MAX_SYSCALL_PARAMETERS]; } extended_syscall_info; diff --git a/src/tools/gensyscalls/gensyscalls.cpp b/src/tools/gensyscalls/gensyscalls.cpp index 77bfe4a5a3..557e2160ac 100644 --- a/src/tools/gensyscalls/gensyscalls.cpp +++ b/src/tools/gensyscalls/gensyscalls.cpp @@ -419,6 +419,14 @@ public: file << "\t{" << endl; file << "\t\t\"" << syscall->Name() << "\", " << paramCount << "," << endl; + + // return type + Type* returnType = syscall->ReturnType(); + file << "\t\t{ " << returnType->Size() << ", " + << returnType->UsedSize() << ", " + << _GetTypeCode(returnType) << " }," << endl; + + // parameters file << "\t\t{" << endl; for (int k = 0; k < paramCount; k++) {