libthread: remove unused internal functions and old xinc assembler files
This commit is contained in:
parent
45d1d31847
commit
95565d289e
|
@ -109,44 +109,3 @@ proccreate(void (*f)(void*), void *arg, uint stacksize)
|
|||
{
|
||||
return procrfork(f, arg, stacksize, 0);
|
||||
}
|
||||
|
||||
void
|
||||
_freeproc(Proc *p)
|
||||
{
|
||||
Thread *t, *nextt;
|
||||
|
||||
for(t = p->threads.head; t; t = nextt){
|
||||
if(t->cmdname)
|
||||
free(t->cmdname);
|
||||
assert(t->stk != nil);
|
||||
free(t->stk);
|
||||
nextt = t->nextt;
|
||||
free(t);
|
||||
}
|
||||
free(p);
|
||||
}
|
||||
|
||||
void
|
||||
_freethread(Thread *t)
|
||||
{
|
||||
Proc *p;
|
||||
Thread **l;
|
||||
|
||||
p = t->proc;
|
||||
lock(&p->lock);
|
||||
for(l=&p->threads.head; *l; l=&(*l)->nextt){
|
||||
if(*l == t){
|
||||
*l = t->nextt;
|
||||
if(*l == nil)
|
||||
p->threads.tail = l;
|
||||
break;
|
||||
}
|
||||
}
|
||||
unlock(&p->lock);
|
||||
if (t->cmdname)
|
||||
free(t->cmdname);
|
||||
assert(t->stk != nil);
|
||||
free(t->stk);
|
||||
free(t);
|
||||
}
|
||||
|
||||
|
|
|
@ -159,8 +159,6 @@ struct Iocall
|
|||
char err[ERRMAX];
|
||||
};
|
||||
|
||||
void _freeproc(Proc*);
|
||||
void _freethread(Thread*);
|
||||
Proc* _newproc(void(*)(void*), void*, uint, char*, int, int);
|
||||
int _procsplhi(void);
|
||||
void _procsplx(int);
|
||||
|
@ -183,7 +181,6 @@ void* _threadmalloc(long, int);
|
|||
void _threadnote(void*, char*);
|
||||
void _threadready(Thread*);
|
||||
void* _threadrendezvous(void*, void*);
|
||||
void _threadsignal(void);
|
||||
void _threadsysfatal(char*, va_list);
|
||||
void** _workerdata(void);
|
||||
|
||||
|
|
|
@ -1,29 +0,0 @@
|
|||
/*#define XADDL(s,d) BYTE $0x0F; BYTE $0xC1; BYTE $((0<<6)|(s<<3)|(d))*/
|
||||
|
||||
/*TEXT xadd(SB),$0 /* long xadd(long *, long); */
|
||||
|
||||
/* MOVL l+0(FP),BX
|
||||
/* MOVL i+4(FP),AX
|
||||
/* LOCK
|
||||
/* XADDL(0,3)
|
||||
/* RET
|
||||
*/
|
||||
|
||||
TEXT _xinc(SB),$0 /* void _xinc(long *); */
|
||||
|
||||
MOVL l+0(FP),AX
|
||||
LOCK
|
||||
INCL 0(AX)
|
||||
RET
|
||||
|
||||
TEXT _xdec(SB),$0 /* long _xdec(long *); */
|
||||
|
||||
MOVL l+0(FP),AX
|
||||
LOCK
|
||||
DECL 0(AX)
|
||||
JZ iszero
|
||||
MOVL $1, AX
|
||||
RET
|
||||
iszero:
|
||||
MOVL $0, AX
|
||||
RET
|
|
@ -1,19 +0,0 @@
|
|||
TEXT _xdec(SB), $-8
|
||||
MOVQ R0, R1 /* p */
|
||||
dec1:
|
||||
MOVLL (R1), R0 /* *p */
|
||||
SUBL $1, R0
|
||||
MOVQ R0, R2
|
||||
MOVLC R2, (R1) /* --(*p) */
|
||||
BEQ R2, dec1 /* write failed, retry */
|
||||
RET
|
||||
|
||||
TEXT _xinc(SB), $-8
|
||||
MOVQ R0, R1 /* p */
|
||||
inc1:
|
||||
MOVLL (R1), R0 /* *p */
|
||||
ADDL $1, R0
|
||||
MOVLC R0, (R1) /* (*p)++ */
|
||||
BEQ R0, inc1 /* write failed, retry */
|
||||
RET
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
/*TEXT xadd(SB),$0 /* long xadd(long *, long); */
|
||||
|
||||
/* MOVL i+8(FP),AX
|
||||
/* LOCK
|
||||
/* XADDL AX, (RARG)
|
||||
/* RET
|
||||
*/
|
||||
|
||||
TEXT _xinc(SB),$0 /* void _xinc(long *); */
|
||||
|
||||
LOCK; INCL 0(RARG)
|
||||
RET
|
||||
|
||||
TEXT _xdec(SB),$0 /* long _xdec(long *); */
|
||||
|
||||
MOVL $0, AX
|
||||
MOVL $1, BX
|
||||
LOCK; DECL 0(RARG)
|
||||
CMOVLNE BX, AX
|
||||
RET
|
|
@ -1 +0,0 @@
|
|||
#include "xincport.h"
|
|
@ -1,46 +0,0 @@
|
|||
/*
|
||||
* R4000 user level lock code
|
||||
*/
|
||||
|
||||
#define LL(base, rt) WORD $((060<<26)|((base)<<21)|((rt)<<16))
|
||||
#define SC(base, rt) WORD $((070<<26)|((base)<<21)|((rt)<<16))
|
||||
#define NOOP WORD $0x27
|
||||
|
||||
#ifdef oldstyle
|
||||
TEXT xadd(SB), $0
|
||||
|
||||
MOVW R1, R2 /* address of counter */
|
||||
loop: MOVW n+4(FP), R3 /* increment */
|
||||
LL(2, 1)
|
||||
NOOP
|
||||
ADD R1,R3,R3
|
||||
SC(2, 3)
|
||||
NOOP
|
||||
BEQ R3,loop
|
||||
RET
|
||||
#endif
|
||||
|
||||
TEXT _xinc(SB), $0
|
||||
|
||||
MOVW R1, R2 /* address of counter */
|
||||
loop: MOVW $1, R3
|
||||
LL(2, 1)
|
||||
NOOP
|
||||
ADD R1,R3,R3
|
||||
SC(2, 3)
|
||||
NOOP
|
||||
BEQ R3,loop
|
||||
RET
|
||||
|
||||
TEXT _xdec(SB), $0
|
||||
|
||||
MOVW R1, R2 /* address of counter */
|
||||
loop1: MOVW $-1, R3
|
||||
LL(2, 1)
|
||||
NOOP
|
||||
ADD R1,R3,R3
|
||||
MOVW R3, R1
|
||||
SC(2, 3)
|
||||
NOOP
|
||||
BEQ R3,loop1
|
||||
RET
|
|
@ -1,25 +0,0 @@
|
|||
#include <u.h>
|
||||
#include <libc.h>
|
||||
#include <thread.h>
|
||||
|
||||
static Lock l;
|
||||
|
||||
void
|
||||
_xinc(long *p)
|
||||
{
|
||||
|
||||
lock(&l);
|
||||
(*p)++;
|
||||
unlock(&l);
|
||||
}
|
||||
|
||||
long
|
||||
_xdec(long *p)
|
||||
{
|
||||
long r;
|
||||
|
||||
lock(&l);
|
||||
r = --(*p);
|
||||
unlock(&l);
|
||||
return r;
|
||||
}
|
|
@ -1,21 +0,0 @@
|
|||
TEXT _xinc(SB),$0 /* void _xinc(long *); */
|
||||
|
||||
MOVW R3, R4
|
||||
xincloop:
|
||||
LWAR (R4), R3
|
||||
ADD $1, R3
|
||||
DCBT (R4) /* fix 405 errata cpu_210 */
|
||||
STWCCC R3, (R4)
|
||||
BNE xincloop
|
||||
RETURN
|
||||
|
||||
TEXT _xdec(SB),$0 /* long _xdec(long *); */
|
||||
|
||||
MOVW R3, R4
|
||||
xdecloop:
|
||||
LWAR (R4), R3
|
||||
ADD $-1, R3
|
||||
DCBT (R4) /* fix 405 errata cpu_210 */
|
||||
STWCCC R3, (R4)
|
||||
BNE xdecloop
|
||||
RETURN
|
Loading…
Reference in a new issue