From nobody Mon Sep 16 19:03:13 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1694989586; cv=none; d=zohomail.com; s=zohoarc; b=jgqsqY+4Qn9dcXonl8+HXxtMDv4Wjj29aigJhYUgAZo03cF8oUa8Y7+oxjiTCHshsGsTYKv43pucK7lf2fa/wDJVkCwv8MyEQ+Jrw/jFgQlMPDUDZVUA9X3xsmKyLP1hx4X5Bz3M0e3HupuCWeauNUBH04f1bjkjHYkjw20ORIc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1694989586; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=82PM6u/NCtIDdzLUc80xbOvNf5qmXl4JA7JhjNThRVs=; b=OZZJG4yoDhghKCIe5rK0PM8xHr+YkQ01knkSMlOfiVmz4XYgBLEEEQPwDrgH/kvElKZE3H+Nhg0lOJHlbjAhHSUdMg35WE9Tu+zhgw/szpCNUFHUyVaAG+S7wnQOixRV4GY81+kvE8MOOuVuQMVDRlfi3c+BmwnGBidC8DnooMU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1694989586419900.9323775422824; Sun, 17 Sep 2023 15:26:26 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qi0Br-0006ZQ-Nj; Sun, 17 Sep 2023 18:24:31 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qi0Bp-0006YE-H2 for qemu-devel@nongnu.org; Sun, 17 Sep 2023 18:24:29 -0400 Received: from mail-wr1-x42d.google.com ([2a00:1450:4864:20::42d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qi0Bn-0002wR-9s for qemu-devel@nongnu.org; Sun, 17 Sep 2023 18:24:29 -0400 Received: by mail-wr1-x42d.google.com with SMTP id ffacd0b85a97d-32155a45957so144425f8f.0 for ; Sun, 17 Sep 2023 15:24:26 -0700 (PDT) Received: from karim.my.domain ([197.39.215.8]) by smtp.gmail.com with ESMTPSA id f7-20020adff987000000b0031c8a43712asm10652527wrr.69.2023.09.17.15.24.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 17 Sep 2023 15:24:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1694989466; x=1695594266; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=82PM6u/NCtIDdzLUc80xbOvNf5qmXl4JA7JhjNThRVs=; b=OPo4bxzkmGSOfuMHoxGKlf2GAGy3El69JWdCv7np7RhSEMAjK1/lJcNXuJF2reI+BJ C6CPci+3FJb7uqWITkNoKDxIJp0XanRJmOYEJUXLTrsshYyHUAgN3l8oVQQ0kb65UO4S e6L+U329W/9RRXxTUsOYDLNYtmVFH14N3ehcNojzgzJJTGxhLzs/i+GjjbQ2q7NTWPSu MsWbhEJbzXC5HP88Lk5uRmFOEAJl6RZoAIBFXUCholGb09P7CCuwet4vxoWan69iHnei uHcn7Co1IhN6iF0t4AJ3vti36nACkECg2DD3IWftlEEyDNCdwYRu09BmQSJ6DerVxpmI Qf5g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694989466; x=1695594266; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=82PM6u/NCtIDdzLUc80xbOvNf5qmXl4JA7JhjNThRVs=; b=MYPeIqv87FMQTtePHIk1V02xYEIjZAlyJP3itPcMwVDW0TxcsL+3ci8sCXZN+hJi2e GjOIYYY1h1dWjK7f7/UrHM+coXV+rA1OG4CpreT2tQkCZso4vcQX13/bPbIi5wclTyb+ kQktt+QL3cyiUnMqeSCgRWM1d6qrEaxlRi3zq16ppqCcbewR4C0R1ofD5tgDuqbp4Ubr YtbDtk2s06jV/lsr1aTEBZQgehu1YggF5UJ7MGU9ZMzni/CVzqjON9ZAFq0+jfAhCdxK nTfCutHsw3zSFmRrEUl7aulYuDsNvOjoh7riMJRtYTnp8jydKqpkzikbhvIUTBgI5II1 JJLg== X-Gm-Message-State: AOJu0YxovNHLruZ+4kaUh9HxFaaNP0oVWQ52blONXSEQenQOCT4idpgF ag1VxGgI5SZrHwcNSs+cwKcH7cRMEJc= X-Google-Smtp-Source: AGHT+IGfYxxosHoD2vx2v2QUjbe7uv1dBR/BLhfPuPutDRm6QwWtslXuDRMIPnuscBRqvVK+5Jdw7Q== X-Received: by 2002:adf:e9c6:0:b0:317:5e73:7594 with SMTP id l6-20020adfe9c6000000b003175e737594mr5863349wrn.28.1694989465727; Sun, 17 Sep 2023 15:24:25 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: Richard Henderson , imp@bsdimp.com, Stacey Son , Karim Taha Subject: [PATCH v3 15/28] bsd-user: Implement several get/set system calls: Date: Mon, 18 Sep 2023 01:22:32 +0300 Message-ID: <20230917222246.1921-16-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20230917222246.1921-1-kariem.taha2.7@gmail.com> References: <20230917222246.1921-1-kariem.taha2.7@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::42d; envelope-from=kariem.taha2.7@gmail.com; helo=mail-wr1-x42d.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1694989587227100003 Content-Type: text/plain; charset="utf-8" From: Stacey Son getpid(2), getppid(2), getpgrp(2) setreuid(2), setregid(2) getuid(2), geteuid(2), getgid(2), getegid(2), getpgid(2) setuid(2), seteuid(2), setgid(2), setegid(2), setpgid(2) Signed-off-by: Stacey Son Signed-off-by: Karim Taha Reviewed-by: Richard Henderson --- bsd-user/bsd-proc.h | 90 +++++++++++++++++++++++++++++++++++ bsd-user/freebsd/os-syscall.c | 60 +++++++++++++++++++++++ 2 files changed, 150 insertions(+) diff --git a/bsd-user/bsd-proc.h b/bsd-user/bsd-proc.h index 06b5b9e03c..9709939337 100644 --- a/bsd-user/bsd-proc.h +++ b/bsd-user/bsd-proc.h @@ -196,4 +196,94 @@ static inline abi_long do_bsd_setrlimit(abi_long arg1,= abi_ulong arg2) return ret; } =20 +/* getpid(2) */ +static inline abi_long do_bsd_getpid(void) +{ + return get_errno(getpid()); +} + +/* getppid(2) */ +static inline abi_long do_bsd_getppid(void) +{ + return get_errno(getppid()); +} + +/* getuid(2) */ +static inline abi_long do_bsd_getuid(void) +{ + return get_errno(getuid()); +} + +/* geteuid(2) */ +static inline abi_long do_bsd_geteuid(void) +{ + return get_errno(geteuid()); +} + +/* getgid(2) */ +static inline abi_long do_bsd_getgid(void) +{ + return get_errno(getgid()); +} + +/* getegid(2) */ +static inline abi_long do_bsd_getegid(void) +{ + return get_errno(getegid()); +} + +/* setuid(2) */ +static inline abi_long do_bsd_setuid(abi_long arg1) +{ + return get_errno(setuid(arg1)); +} + +/* seteuid(2) */ +static inline abi_long do_bsd_seteuid(abi_long arg1) +{ + return get_errno(seteuid(arg1)); +} + +/* setgid(2) */ +static inline abi_long do_bsd_setgid(abi_long arg1) +{ + return get_errno(setgid(arg1)); +} + +/* setegid(2) */ +static inline abi_long do_bsd_setegid(abi_long arg1) +{ + return get_errno(setegid(arg1)); +} + +/* getpgid(2) */ +static inline abi_long do_bsd_getpgid(pid_t pid) +{ + return get_errno(getpgid(pid)); +} + +/* setpgid(2) */ +static inline abi_long do_bsd_setpgid(int pid, int pgrp) +{ + return get_errno(setpgid(pid, pgrp)); +} + +/* getpgrp(2) */ +static inline abi_long do_bsd_getpgrp(void) +{ + return get_errno(getpgrp()); +} + +/* setreuid(2) */ +static inline abi_long do_bsd_setreuid(abi_long arg1, abi_long arg2) +{ + return get_errno(setreuid(arg1, arg2)); +} + +/* setregid(2) */ +static inline abi_long do_bsd_setregid(abi_long arg1, abi_long arg2) +{ + return get_errno(setregid(arg1, arg2)); +} + #endif /* !BSD_PROC_H_ */ diff --git a/bsd-user/freebsd/os-syscall.c b/bsd-user/freebsd/os-syscall.c index 5cb6086230..7565e69e76 100644 --- a/bsd-user/freebsd/os-syscall.c +++ b/bsd-user/freebsd/os-syscall.c @@ -255,6 +255,66 @@ static abi_long freebsd_syscall(void *cpu_env, int num= , abi_long arg1, ret =3D do_bsd_setrlimit(arg1, arg2); break; =20 + case TARGET_FREEBSD_NR_getpid: /* getpid(2) */ + ret =3D do_bsd_getpid(); + break; + + case TARGET_FREEBSD_NR_getppid: /* getppid(2) */ + ret =3D do_bsd_getppid(); + break; + + case TARGET_FREEBSD_NR_getuid: /* getuid(2) */ + ret =3D do_bsd_getuid(); + break; + + case TARGET_FREEBSD_NR_geteuid: /* geteuid(2) */ + ret =3D do_bsd_geteuid(); + break; + + case TARGET_FREEBSD_NR_getgid: /* getgid(2) */ + ret =3D do_bsd_getgid(); + break; + + case TARGET_FREEBSD_NR_getegid: /* getegid(2) */ + ret =3D do_bsd_getegid(); + break; + + case TARGET_FREEBSD_NR_setuid: /* setuid(2) */ + ret =3D do_bsd_setuid(arg1); + break; + + case TARGET_FREEBSD_NR_seteuid: /* seteuid(2) */ + ret =3D do_bsd_seteuid(arg1); + break; + + case TARGET_FREEBSD_NR_setgid: /* setgid(2) */ + ret =3D do_bsd_setgid(arg1); + break; + + case TARGET_FREEBSD_NR_setegid: /* setegid(2) */ + ret =3D do_bsd_setegid(arg1); + break; + + case TARGET_FREEBSD_NR_getpgrp: /* getpgrp(2) */ + ret =3D do_bsd_getpgrp(); + break; + + case TARGET_FREEBSD_NR_getpgid: /* getpgid(2) */ + ret =3D do_bsd_getpgid(arg1); + break; + + case TARGET_FREEBSD_NR_setpgid: /* setpgid(2) */ + ret =3D do_bsd_setpgid(arg1, arg2); + break; + + case TARGET_FREEBSD_NR_setreuid: /* setreuid(2) */ + ret =3D do_bsd_setreuid(arg1, arg2); + break; + + case TARGET_FREEBSD_NR_setregid: /* setregid(2) */ + ret =3D do_bsd_setregid(arg1, arg2); + break; + =20 /* * File system calls. --=20 2.42.0