如何将值传递到系统调用 XV6

2023-12-04

我正在尝试创建一个系统调用,该系统调用将增加添加到 cpu 结构中的数字。但是我相信系统调用必须是空的,那么我如何在调用它时传递一个值。

增量数(3);


Xv6 有自己的函数,用于将参数从用户空间传递到内核空间(系统调用)。您可以使用 argint() 在系统调用中检索整数参数,并使用 argstr() 检索字符串参数。

可以通过传统方式传递参数,但要检索参数,您必须使用这些方法。在你的情况下:

在 syscall.c 中:

extern int incrementNum(int);

static int (*syscalls[])(void) = {
...
[SYS_incrementNum]  sys_incrementNum,
};

在系统调用.h中

#define SYS_incrementNum 22

在用户.h中

int incrementNum(int);

在美国系统公司

SYSCALL(incrementNum);

在 sysproc.c 中(您要检索参数的位置)

int 
sys_incrementNum(int num)
{
    argint(0,&num); //retrieving first argument
    cprintf("%d - Inside system call!",num);
}

现在可以通过以下方式调用系统调用:

incrementNum(3);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将值传递到系统调用 XV6 的相关文章

  • 本地化 ASP.NET MVC 应用程序母版页中的字符串

    I have 设法本地化视图页面在我的应用程序中 但有包含一些字符串的母版页 看来母版页中包含的字符串必须添加到每个页面的资源文件中 这看起来很可怕 如何优雅地本地化母版页中的字符串 如果您不想弄乱访问修饰符 您可以创建一个助手来简化访问资
  • Ormlite - 扩展 BaseDaoImpl 时构造函数调用失败

    我有以下表格 DatabaseTable tableName b daoClass B DaoImpl class public class B DatabaseField public String b1 public B For Orm
  • 如何在 SQL 动态查询中使用 Pass 逗号分隔字符串

    我有一个函数将从逗号分隔的字符串返回整数值 它需要两个参数 string nvarchar 4000 delimiter char 1 所以问题是 如果我在动态查询中使用这个函数 我会收到错误 这里是查询 declare ProductID
  • 无法将 JMX 与 Spring 应用程序集成

    我有一个SPRING应用 当我跑步时 mvn jetty run 一切都好 我想用JMX在我的项目中 我创建了另一个项目 我尝试了初学者教程 我能够看到一些变化jconsole 现在 我想在我的实际项目中使用 JMX 并且我想使用管理 JM
  • 如何将 Django 应用程序测试拆分到多个文件中

    我正在开发 Django 1 2 应用程序 并且我是该框架的初学者 我想将我的测试拆分为应用程序的多个文件https github com vkhemlan BolsaTrabajo tree master bolsa trabajo 我怎
  • 在 Cassandra 中创建触发器的示例,仅支持 Java 吗?

    想要检查 Cassandra 中的触发器功能 有人可以提供一个创建触发器的示例吗 从这个博客 http www datastax com dev blog whats new in cassandra 2 0 prototype trigg
  • “为什么”Python 数据类型是不可变的

    Why 不是如何 像 int 和 string 这样的 python 原始数据类型是不可变的 这是因为脚本语言的实现限制吗 举个例子 a 5 a 6 在第二行 a 6 而不是创建一个新的内存位置 为什么不能将第一个内存位置更改为6 某些 P
  • Go调度器什么时候会创建新的M和P?

    刚刚学习了golang GMP模型 现在我了解了goroutines 操作系统线程和golang上下文 处理器如何相互协作 但我还是不明白什么时候会产生M和P 例如 我有一个测试代码来在数据库上运行一些操作 并且有两个测试用例 两批 gor
  • bash $* 的 Powershell 等效项是什么?

    换句话说 我怎样才能获得脚本本身的命令行 所以 我知道 PSBoundParameters 但并不相同 我只想按原样获取包含传入参数的字符串 我该怎么做 See get help about Automatic Variables Args
  • 错误:系列的真值不明确。蟒蛇和熊猫

    我正在尝试识别当天交易量超过 10 000 份的 MSFT 和 GOOG 的所有期权合约 并打印出交易品种的名称 我收到错误 一系列的真值不明确 使用 empty a bool a item a any 或 a all 错误出现在第 13

随机推荐

  • 在 R 中重新缩放变量

    我有一个名为 Esteem 的变量 其比例为 1 7 我想将其重新调整为 1 100 我知道 R 程序可以做到这一点 但是我在语法上遇到了问题 有人可以提供一个如何重新调整该变量的示例吗 另外 我可以在 R Commander 中使用一个工
  • Python-如何验证字符串是否以特定字符串结尾?

    例如我有以下字符串 24499 00 02 05 sys yg ys 如何验证字符串是否以从函数结果中获得的字符串结尾 例如sys yg ys 我在上面的字符串上尝试了以下操作 只是为了检查简单的情况 结果 if line endswith
  • 如何更改 ASP.NET MVC 中的默认视图位置方案?

    我想根据当前的 UI 文化在运行时更改视图位置 如何使用默认的 Web 表单视图引擎实现此目的 基本上我想知道如何实施WebFormViewEngine某事是什么自定义 IDescriptorFilter in Spark 是否有其他视图引
  • 将二进制数转换为 Base 64

    我知道这是一个很愚蠢的问题 但我不知道该怎么办 我有一个任意的二进制数 比如说 10010000001100100000001001000000100000110000000100010000010110001100001100000111
  • Google Drive api:范围“drive.file”和“drive.readonly”的复制错误

    我的问题是 如果您只有范围 drive file 和 drive readonly 是否无法使用 google Drive api 将文件从驱动器中的一个文件夹复制到驱动器中的另一个文件夹 使用 API 浏览器进行测试 https deve
  • PhoneGap:如何获取 appView 的 id 并将其传递?

    对于PhoneGap应用程序 正如说明所述 我已经替换了setContentView 与super loadUrl file android asset www index html 下一行是appView addJavascriptInt
  • 如何将数组的前一个字符串与下一个字符串连接起来?

    我很难理解这个问题 但假设有一个包含这些元素的数组 apple banana pear kiwi orange 我想将此数组转移到 apple apple banana apple banana pear apple banana pear
  • 如何在java上进行mysqldump?

    我在 mySQL 中创建了数据库 并使用 mysqldump 将其导出到文件中 有没有办法让我的 JAVA 程序连接到 mysql 并使用我保存在文件中的结构创建一个空数据库 前提是上述数据库尚未存在于服务器中 谢谢你 尝试类似的方法 Ru
  • 如何嵌套 PHP 代码块

    这段代码被破坏了 因为我正在嵌套 php 代码块 执行此操作的正确方法是什么 gt
  • 在 Meteor 中,我如何在客户端知道服务器端操作何时完成?

    我知道 Meteor 对数据库进行客户端缓存 以获得更好的有效性能 在客户端Meteor方法调用中 有没有办法知道什么时候服务器端数据库操作actually完成 或者如果它实际上失败了 当完整的远程过程调用完成时 我是否可以挂钩一些事件来获
  • 使用 AWS ECS Fargate 进行水平和垂直自动扩展

    我这里有一个具体的用例 我需要自动扩展在 ECS Fargate 上运行的分布式 Web 应用程序 问题是所有节点都需要在内存中保存相同的数据 因此增加节点数量无助于缓解内存压力 因此 只有水平扩展 添加节点 和垂直扩展 增加节点内存 才能
  • LinkedIn inShare 插件共享计数器返回零

    我有一个 WordPress 博客 http bloculus com 我使用 Super Socializer 插件来分享我的帖子 最近 我发现我失去了所有 LinkedIn 分享计数 在每个帖子中 它都回到了 0 我联系了插件作者 我们
  • 使用 CSS 制作脉动环动画

    我想要一个从中心开始的扩展半径div而不是从左上角开始div 想象一下按钮有一个向外的脉动轮廓 那脉动的轮廓应该从中间开始div然后出去 请参阅此处的示例 https jsbin com dinehoqaro edit html css 输
  • IcmpSendEcho2 失败并显示 WSA_QOS_ADMISSION_FAILURE 和 ERROR_NOACCESS

    我有一个应用程序可以 ping 一堆服务器 它运行了好几天 但突然会出现以下两种类型之一的许多故障 WSA QOS ADMISSION FAILURE 11010 由于缺乏资源而发生 QoS 错误 or ERROR NOACCESS 998
  • 在matlab中绘制一个包含许多子图的大图

    我必须打印一张大海报 其中包含数字矩阵 让 MATLAB 排列它们对我来说非常实用 不幸的是 子图是为了适应特定的图形尺寸而显示的 因此很小且扭曲 我不想适应人物尺寸 而是想适应海报的纸张尺寸 我尝试过set gcf Position 并且
  • Delphi 皮肤库

    我想知道最适合您的 Delphi 应用程序皮肤库是什么 我正在寻找 WinXP Windows Vista Windows 7 兼容性 这样应用程序就不会因为皮肤而崩溃或工作异常 我尝试过主题引擎 但它在 Windows Vista 中运行
  • 使用 SSE 的矩阵向量和矩阵矩阵乘法

    我需要编写矩阵 向量和矩阵 矩阵乘法函数 但我无法理解 SSE 命令 矩阵和向量的维数始终是 4 的倍数 我设法编写了向量 向量乘法函数 如下所示 void vector multiplication SSE float m float n
  • 如何获取 Node.js 目录中存在的所有文件的名称列表?

    我正在尝试使用 Node js 获取目录中存在的所有文件的名称列表 我想要的输出是文件名数组 我怎样才能做到这一点 您可以使用fs readdir or fs readdirSync方法 fs包含在 Node js 核心中 因此无需安装任何
  • 类似于 git status 的命令(或脚本)显示自上次 git svn dcommit 以来的所有本地提交?

    这个 python 脚本是迄今为止我想出的最好的脚本 我只是将它组合在一起 在粗略的前几次使用中 似乎表现得正确 但我忍不住觉得有一种更简单的方法可以做到这一点 甚至是内置的东西 尽管我已经搜索了一遍 谢谢您的帮助 usr bin env
  • 如何将值传递到系统调用 XV6

    我正在尝试创建一个系统调用 该系统调用将增加添加到 cpu 结构中的数字 但是我相信系统调用必须是空的 那么我如何在调用它时传递一个值 增量数 3 Xv6 有自己的函数 用于将参数从用户空间传递到内核空间 系统调用 您可以使用 argint