libthread: remove unused internal functions and old xinc assembler files

front
cinap_lenrek 2015-02-28 13:26:38 +01:00
parent 45d1d31847
commit 95565d289e
9 changed files with 0 additions and 205 deletions

View File

@ -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);
}

View File

@ -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);

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -1 +0,0 @@
#include "xincport.h"

View File

@ -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

View File

@ -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;
}

View File

@ -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