亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問(wèn)板塊 發(fā)新帖
查看: 2107 | 回復(fù): 7
打印 上一主題 下一主題

[FreeBSD] 求看過(guò)4.4bsd代碼的大蝦指點(diǎn) [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2013-07-10 19:15 |只看該作者 |倒序?yàn)g覽
本帖最后由 yizhengming 于 2013-07-10 19:19 編輯

下面代碼來(lái)自4.4BSD-Lite2/usr/src/sys/hp300/hp300/locore.s
百思不得其解 a1 + (sp - kstack ) 代表什么地址?
  1. ENTRY(savectx)
  2.     movl    sp@(4),a1
  3.     movw    sr,a1@(PCB_PS)
  4.     movl    usp,a0          | grab USP
  5.     movl    a0,a1@(PCB_USP)     | and save it
  6.     moveml  #0xFCFC,a1@(PCB_REGS)   | save non-scratch registers

  7.     tstl    sp@(8)          | altreturn?
  8.     jeq Lsavedone
  9.     movl    sp,d0           | relocate current sp relative to a1
  10.     subl    #_kstack,d0     |   (sp is relative to kstack):
  11.     addl    d0,a1           |   a1 += sp - kstack
  12.    movl    sp@,a1@         | write return pc at (relocated) sp@
  13. Lsavedone:
  14.     moveq   #0,d0           | return 0
  15.     rts  
復(fù)制代碼

論壇徽章:
5
丑牛
日期:2014-01-21 08:26:26卯兔
日期:2014-03-11 06:37:43天秤座
日期:2014-03-25 08:52:52寅虎
日期:2014-04-19 11:39:48午馬
日期:2014-08-06 03:56:58
2 [報(bào)告]
發(fā)表于 2013-07-10 19:56 |只看該作者
no  看過(guò)  

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2013-07-10 20:01 |只看該作者
換句話說(shuō)  我想知道內(nèi)核棧位于哪個(gè)位置,它和user里的pcb的聯(lián)系

論壇徽章:
29
技術(shù)圖書(shū)徽章
日期:2013-09-02 19:59:502015元宵節(jié)徽章
日期:2015-03-06 15:51:332015小元宵徽章
日期:2015-03-06 15:57:20操作系統(tǒng)版塊每日發(fā)帖之星
日期:2015-08-16 06:20:002015七夕節(jié)徽章
日期:2015-08-21 11:06:17操作系統(tǒng)版塊每日發(fā)帖之星
日期:2015-09-21 06:20:002015亞冠之水原三星
日期:2015-10-30 00:06:07數(shù)據(jù)庫(kù)技術(shù)版塊每日發(fā)帖之星
日期:2015-12-24 06:20:0015-16賽季CBA聯(lián)賽之上海
日期:2016-01-07 10:32:07操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-01-08 06:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-05-18 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-07-23 06:20:00
4 [報(bào)告]
發(fā)表于 2013-07-10 23:04 |只看該作者
提示: 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽

論壇徽章:
2
亥豬
日期:2014-03-19 16:36:35午馬
日期:2014-11-23 23:48:46
5 [報(bào)告]
發(fā)表于 2013-07-11 12:42 |只看該作者
回復(fù) 1# yizhengming

要看接近原始4.4BSD的就看看freebsd1 或者netbsd1 吧,4.4的好像體系都太難找,hp300。。。

論壇徽章:
2
亥豬
日期:2014-03-19 16:36:35午馬
日期:2014-11-23 23:48:46
6 [報(bào)告]
發(fā)表于 2013-07-11 12:45 |只看該作者
回復(fù) 3# yizhengming


    棧是運(yùn)行期結(jié)構(gòu),pcb是一堆數(shù)據(jù)描述一個(gè)進(jìn)程,出入棧信息可以放在pcb里面。

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2013-07-11 14:44 |只看該作者
回復(fù) 6# gvim


    謝謝了   這個(gè)內(nèi)核棧的位置搞清楚了   還有個(gè)疑點(diǎn) sp(內(nèi)核堆棧指針) - kstack  代表什么?


cpu_fork(p1, p2)
    register struct proc *p1, *p2;
{
    register struct user *up = p2->p_addr;
    int offset;
    extern caddr_t getsp();
    extern char kstack[];

    p2->p_md.md_regs = p1->p_md.md_regs;
    p2->p_md.md_flags = (p1->p_md.md_flags & ~(MDP_AST|MDP_HPUXTRACE));

    /*  
     * Copy pcb and stack from proc p1 to p2.
     * We do this as cheaply as possible, copying only the active
     * part of the stack.  The stack and pcb need to agree;
     * this is tricky, as the final pcb is constructed by savectx,
     * but its frame isn't yet on the stack when the stack is copied.
     * switch compensates for this when the child eventually runs.
     * This should be done differently, with a single call
     * that copies and updates the pcb+stack,
     * replacing the bcopy and savectx.
     */
    p2->p_addr->u_pcb = p1->p_addr->u_pcb;
    offset = getsp() - kstack;
    bcopy((caddr_t)kstack + offset, (caddr_t)p2->p_addr + offset,
        (unsigned) ctob(UPAGES) - offset);


    PMAP_ACTIVATE(&p2->p_vmspace->vm_pmap, &up->u_pcb, 0);

    /*  
     * Arrange for a non-local goto when the new process
     * is started, to resume here, returning nonzero from setjmp.
     */
    if (savectx(up, 1)) {
        /*
         * Return 1 in child.
         */
        return (1);
    }
    return (0);
}

論壇徽章:
2
亥豬
日期:2014-03-19 16:36:35午馬
日期:2014-11-23 23:48:46
8 [報(bào)告]
發(fā)表于 2013-07-12 10:48 |只看該作者
回復(fù) 7# yizhengming


    體系太偏了,不理解就不好說(shuō)。
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專(zhuān)區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP