📄 lru.c
字号:
/* * lru lists are circular with a list head * pointing to the start and end of the list */#include <u.h>#include "lru.h"/* * Create an lru chain of buffers */voidlruinit(Lru *h){ h->lprev = h->lnext = h;}/* * Add a member to an lru chain */voidlruadd(Lru *h, Lru *m){ h->lprev->lnext = m; m->lprev = h->lprev; h->lprev = m; m->lnext = h;}/* * Move to end of lru list */voidlruref(Lru *h, Lru *m){ if(h->lprev == m) return; /* alread at end of list */ /* * remove from list */ m->lprev->lnext = m->lnext; m->lnext->lprev = m->lprev; /* * add in at end */ h->lprev->lnext = m; m->lprev = h->lprev; h->lprev = m; m->lnext = h;}/* * Move to head of lru list */voidlruderef(Lru *h, Lru *m){ if(h->lnext == m) return; /* alread at head of list */ /* * remove from list */ m->lprev->lnext = m->lnext; m->lnext->lprev = m->lprev; /* * add in at head */ h->lnext->lprev = m; m->lnext = h->lnext; h->lnext = m; m->lprev = h;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -