当前位置:  技术问答>linux和unix

怎样增加decompress_kernel参数

    来源: 互联网  发布时间:2016-06-18

    本文导语:  decompress_kernel的原型如下: ulg decompress_kernel(ulg output_start, ulg free_mem_ptr_p, ulg free_mem_ptr_end_p,                   int arch_id) 现在希望增加一个参数ulg last_addr; 变成 ulg decompress_kernel(ulg output_start, ulg free_mem...

decompress_kernel的原型如下:
ulg decompress_kernel(ulg output_start, ulg free_mem_ptr_p, ulg free_mem_ptr_end_p,
                  int arch_id)
现在希望增加一个参数ulg last_addr;
变成
ulg decompress_kernel(ulg output_start, ulg free_mem_ptr_p, ulg free_mem_ptr_end_p,
                  int arch_id,ulg last_addr)

这时候,我想在head.s调用这个函数:
/*
 * r0     = decompressed kernel length
 * r1-r3  = unused
 * r4     = kernel execution address
 * r5     = decompressed kernel start
 * r6     = processor ID
 * r7     = architecture ID
 * r8     = atags pointer
 * r9-r14 = corrupted
 */
                add     r1, r5, r0              @ end of decompressed kernel
                adr     r2, reloc_start
                ldr     r3, LC1
                add     r3, r2, r3
1:              ldmia   r2!, {r9 - r14}         @ copy relocation code
                stmia   r1!, {r9 - r14}
                ldmia   r2!, {r9 - r14}
                stmia   r1!, {r9 - r14}
                cmp     r2, r3
                blo     1b
 
                bl      cache_clean_flush
                add     pc, r5, r0              @ call relocation code
 
/*
 * We're not in danger of overwriting ourselves.  Do this the simple way.
 *
 * r4     = kernel execution address
 * r7     = architecture ID
 */
wont_overwrite: mov     r0, r4
                mov     r3, r7
                bl      decompress_kernel
                b       call_kernel

我应该怎么修改这段arm 代码,让我能够传入第5个参数。。


|
不东修改汇编的,可以用c语言写个函数,反编译下去掉些废指令应该可行

|
arm的汇编?
抽象,不知所云...
只能帮定了~

|
这个不懂, 来接分的。

不过,实在不明白,楼主为什么会有这样的需求?
或者仅仅是兴趣而已。

|
关键要弄明白 decompress_kernel()

的参数是怎么使用寄存器的,你所增加的这个第5个参数是使用哪些寄存器,

往这些寄存器里传参数就可以了。

|
这个不懂。。。
只能帮顶了!
顺便学习~~

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C++ Stacks(堆栈) 成员 push():在栈顶增加元素
  • 在JAVA中怎么在JLIST中增加元素?(不是在JLIST生成时增加,而是随时动态增加)
  • Mysql增加主键或者更改表的列为主键的sql语句
  • 在linux中架设好FTP服务后,增加了用户却无法用新增加的用户访问FTP,纳闷呀..
  • 我linux 上 的 C程序为什么虚拟内存(VSZ) 不断增加 一天之后增加好几倍?
  • 请问如何增加栈(stack)空间的大小
  • GtkTreeIter这个控件不能增加鼠标双击事件吗
  • 如何在已做RAID 5的服务器上增加新的SCSI硬盘
  • 如何增加linux虚拟机文件系统空间
  • oracle增加表空间大小两种实现方法
  • 增加用户?
  • JBuilder 7中如何增加一个新的Server
  • 怎么才能增加虚拟内存?
  • vmware下如何增加系统空间
  • 怎么给一指定用户增加权限
  • 硬盘装rh9.0好后,如何增加软件包??
  • 怎样自动增加编号
  • gvim怎么增加关键字?
  • 如何增加分给Linux的磁盘空间
  • 如何增加VMware下Linux的硬盘容量!
  • 告急!! "/"根目录下空间快慢,请教如何增加根目录的空间?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3