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);
|
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];
|
char err[ERRMAX];
|
||||||
};
|
};
|
||||||
|
|
||||||
void _freeproc(Proc*);
|
|
||||||
void _freethread(Thread*);
|
|
||||||
Proc* _newproc(void(*)(void*), void*, uint, char*, int, int);
|
Proc* _newproc(void(*)(void*), void*, uint, char*, int, int);
|
||||||
int _procsplhi(void);
|
int _procsplhi(void);
|
||||||
void _procsplx(int);
|
void _procsplx(int);
|
||||||
|
@ -183,7 +181,6 @@ void* _threadmalloc(long, int);
|
||||||
void _threadnote(void*, char*);
|
void _threadnote(void*, char*);
|
||||||
void _threadready(Thread*);
|
void _threadready(Thread*);
|
||||||
void* _threadrendezvous(void*, void*);
|
void* _threadrendezvous(void*, void*);
|
||||||
void _threadsignal(void);
|
|
||||||
void _threadsysfatal(char*, va_list);
|
void _threadsysfatal(char*, va_list);
|
||||||
void** _workerdata(void);
|
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