void sem_acquire(struct Semaphore *s) { lock_acquire(&s->lock); if (s->count == 0) { add_q(&s->q,getpid()); lock_release(&s->lock); tsleep(); } else { s->count--; lock_release(&s->lock); } }
void sem_acquire( struct Semaphore *s) { lock_acquire(&s->locksem); //printf(1,"acquire lock acquired by: %d\n",getpid()); if(s->count==0) { add_q(&s->t_q, getpid()); lock_release(&s->locksem); //printf(1,"acquire ended release by %d\n",getpid()); tsleep(); } else { s->count--; lock_release(&s->locksem); if(s->count<0) s->count=0; lock_release(&s->locksem); } }
void Fmap(CL_FORM *base, int nargs) { Flist(ARG(3), nargs - 3); ALLOC_CONS(ARG(6), ARG(2), ARG(3), ARG(3)); LOAD_GLOBFUN(&CFmin, ARG(4)); LOAD_GLOBFUN(&CFlength, ARG(5)); COPY(ARG(3), ARG(6)); Fmapcar(ARG(5), 2); Fapply(ARG(4), 2); mv_count = 1; LOAD_FIXNUM(ARG(5), 0, ARG(5)); GEN_HEAPVAR(ARG(5), ARG(6)); { GEN_CLOSURE(array, ARG(6), 4, Z146_get_elem, 1); COPY(ARG(5), &array[3]); LOAD_CLOSURE(array, ARG(6)); } if(CL_TRUEP(ARG(0))) { if(CL_SYMBOLP(ARG(0)) && GET_SYMBOL(ARG(0)) == SYMBOL(Slisp, 28)) /* LIST */ { LOAD_NIL(ARG(7)); LOAD_NIL(ARG(8)); ALLOC_CONS(ARG(9), ARG(7), ARG(8), ARG(7)); M1_1:; COPY(INDIRECT(ARG(5)), ARG(8)); COPY(ARG(4), ARG(9)); Fge(ARG(8), 2); if(CL_TRUEP(ARG(8))) { COPY(GET_CAR(ARG(7)), ARG(0)); goto RETURN1; } COPY(ARG(1), ARG(8)); COPY(ARG(6), ARG(9)); COPY(ARG(3), ARG(10)); Fmaplist(ARG(9), 2); Fapply(ARG(8), 2); mv_count = 1; COPY(ARG(7), ARG(9)); add_q(ARG(8)); COPY(INDIRECT(ARG(5)), ARG(8)); F1plus(ARG(8)); COPY(ARG(8), INDIRECT(ARG(5))); goto M1_1; RETURN1:; } else { COPY(ARG(0), ARG(7)); COPY(ARG(4), ARG(8)); LOAD_NIL(ARG(9)); LOAD_NIL(ARG(10)); make_sequence1(ARG(7)); M2_1:; COPY(INDIRECT(ARG(5)), ARG(8)); COPY(ARG(4), ARG(9)); Fge(ARG(8), 2); if(CL_TRUEP(ARG(8))) { COPY(ARG(7), ARG(0)); goto RETURN2; } COPY(ARG(7), ARG(8)); COPY(INDIRECT(ARG(5)), ARG(9)); COPY(ARG(1), ARG(10)); COPY(ARG(6), ARG(11)); COPY(ARG(3), ARG(12)); Fmaplist(ARG(11), 2); Fapply(ARG(10), 2); mv_count = 1; COPY(ARG(10), ARG(11)); COPY(ARG(8), ARG(12)); COPY(ARG(9), ARG(13)); Fset_elt(ARG(11)); COPY(INDIRECT(ARG(5)), ARG(8)); F1plus(ARG(8)); COPY(ARG(8), INDIRECT(ARG(5))); goto M2_1; RETURN2:; } } else { M3_1:; COPY(INDIRECT(ARG(5)), ARG(7)); COPY(ARG(4), ARG(8)); Fge(ARG(7), 2); if(CL_TRUEP(ARG(7))) { LOAD_NIL(ARG(0)); goto RETURN3; } COPY(ARG(1), ARG(7)); COPY(ARG(6), ARG(8)); COPY(ARG(3), ARG(9)); Fmaplist(ARG(8), 2); Fapply(ARG(7), 2); mv_count = 1; COPY(INDIRECT(ARG(5)), ARG(7)); F1plus(ARG(7)); COPY(ARG(7), INDIRECT(ARG(5))); goto M3_1; RETURN3:; } }
void concatenate_to_list(CL_FORM *base, int nargs) { CL_FORM *rest_0; CL_FORM *local; rest_0 = ARG(0); local = ARG(nargs); { LOAD_NIL(LOCAL(0)); LOAD_NIL(LOCAL(1)); ALLOC_CONS(LOCAL(2), LOCAL(0), LOCAL(1), LOCAL(0)); { CL_FORM *rest_1; LOAD_NIL(LOCAL(1)); rest_1 = rest_0; M1_1:; if(NOT(REST_NOT_EMPTY(rest_1))) { LOAD_NIL(LOCAL(1)); goto RETURN1; } { CL_FORM *rest_2; rest_2 = rest_1; REST_CAR(rest_2, LOCAL(1)); } if(CL_LISTP(LOCAL(1))) { LOAD_NIL(LOCAL(2)); COPY(LOCAL(1), LOCAL(3)); M2_1:; if(CL_ATOMP(LOCAL(3))) { LOAD_NIL(LOCAL(2)); goto RETURN2; } { COPY(LOCAL(3), LOCAL(4)); COPY(GET_CAR(LOCAL(4)), LOCAL(2)); } COPY(LOCAL(2), LOCAL(4)); COPY(LOCAL(0), LOCAL(5)); add_q(LOCAL(4)); { COPY(LOCAL(3), LOCAL(4)); COPY(GET_CDR(LOCAL(4)), LOCAL(3)); } goto M2_1; RETURN2:; } else { LOAD_FIXNUM(LOCAL(2), 0, LOCAL(2)); M3_1:; COPY(LOCAL(2), LOCAL(3)); COPY(LOCAL(1), LOCAL(4)); Flength(LOCAL(4)); Fge(LOCAL(3), 2); if(CL_TRUEP(LOCAL(3))) { goto RETURN3; } COPY(LOCAL(1), LOCAL(3)); COPY(LOCAL(2), LOCAL(4)); Felt(LOCAL(3)); COPY(LOCAL(0), LOCAL(4)); add_q(LOCAL(3)); F1plus(LOCAL(2)); goto M3_1; RETURN3:; } { CL_FORM *rest_3; rest_3 = rest_1; rest_1 = REST_CDR(rest_3); } goto M1_1; } RETURN1:; COPY(GET_CAR(LOCAL(0)), ARG(0)); } }
void list_remove(CL_FORM *base) { LOAD_NIL(ARG(8)); LOAD_NIL(ARG(9)); ALLOC_CONS(ARG(10), ARG(8), ARG(9), ARG(8)); LOAD_SMALLFIXNUM(0, ARG(9)); LOAD_NIL(ARG(10)); LOAD_NIL(ARG(11)); ALLOC_CONS(ARG(12), ARG(10), ARG(11), ARG(10)); LOAD_SMALLFIXNUM(0, ARG(11)); LOAD_NIL(ARG(12)); COPY(ARG(1), ARG(13)); M1_1:; if(CL_ATOMP(ARG(13))) { LOAD_NIL(ARG(12)); goto RETURN1; } COPY(ARG(13), ARG(14)); COPY(GET_CAR(ARG(14)), ARG(12)); COPY(ARG(11), ARG(14)); COPY(ARG(5), ARG(15)); Fge(ARG(14), 2); if(CL_TRUEP(ARG(14))) { goto RETURN1; } COPY(ARG(11), ARG(14)); COPY(ARG(4), ARG(15)); Fge(ARG(14), 2); if(CL_TRUEP(ARG(14))) { COPY(ARG(3), ARG(14)); COPY(ARG(0), ARG(15)); if(CL_TRUEP(ARG(7))) { COPY(ARG(7), ARG(16)); COPY(ARG(12), ARG(17)); Ffuncall(ARG(16), 2); mv_count = 1; } else { COPY(ARG(12), ARG(16)); } Ffuncall(ARG(14), 3); mv_count = 1; } else { goto ELSE1; } if(CL_TRUEP(ARG(14))) { COPY(ARG(11), ARG(14)); COPY(ARG(8), ARG(15)); add_q(ARG(14)); COPY(ARG(9), ARG(14)); F1plus(ARG(14)); COPY(ARG(14), ARG(9)); } ELSE1:; COPY(ARG(11), ARG(14)); F1plus(ARG(14)); COPY(ARG(14), ARG(11)); COPY(ARG(13), ARG(14)); COPY(GET_CDR(ARG(14)), ARG(13)); goto M1_1; RETURN1:; COPY(ARG(8), ARG(11)); COPY(ARG(11), ARG(12)); COPY(GET_CAR(ARG(12)), ARG(8)); if(CL_TRUEP(ARG(2))) { LOAD_SMALLFIXNUM(0, ARG(11)); M2_1:; if(CL_TRUEP(ARG(1))) { if(CL_CONSP(ARG(1))) { LOAD_NIL(ARG(12)); } else { LOAD_SMSTR((CL_FORM *)&KClisp[233], ARG(12)); /* ~a is not a list */ COPY(ARG(1), ARG(13)); Ferror(ARG(12), 2); } } else { LOAD_SYMBOL(SYMBOL(Slisp, 48), ARG(12)); /* T */ } if(CL_TRUEP(ARG(12))) { goto THEN2; } else { COPY(ARG(11), ARG(13)); COPY(ARG(5), ARG(14)); Fge(ARG(13), 2); } if(CL_TRUEP(ARG(13))) { THEN2:; goto RETURN2; } COPY(ARG(9), ARG(12)); COPY(ARG(6), ARG(13)); Fle(ARG(12), 2); if(CL_TRUEP(ARG(12))) { if(CL_CONSP(ARG(8))) { COPY(GET_CAR(ARG(8)), ARG(13)); } else { if(CL_TRUEP(ARG(8))) { LOAD_SMSTR((CL_FORM *)&KClisp[239], ARG(13)); /* ~a is not a list */ COPY(ARG(8), ARG(14)); Ferror(ARG(13), 2); } else { COPY(ARG(8), ARG(13)); } } } else { goto ELSE3; } if(EQL(ARG(11), ARG(13))) { if(CL_CONSP(ARG(8))) { } else { if(CL_TRUEP(ARG(8))) { LOAD_SMSTR((CL_FORM *)&KClisp[239], ARG(12)); /* ~a is not a list */ COPY(ARG(8), ARG(13)); Ferror(ARG(12), 2); } else { } } COPY(ARG(8), ARG(12)); COPY(ARG(12), ARG(13)); if(CL_CONSP(ARG(13))) { COPY(GET_CDR(ARG(13)), ARG(8)); } else { if(CL_TRUEP(ARG(13))) { LOAD_SMSTR((CL_FORM *)&KClisp[241], ARG(14)); /* ~a is not a list */ COPY(ARG(13), ARG(15)); Ferror(ARG(14), 2); } else { LOAD_NIL(ARG(8)); } } COPY(ARG(9), ARG(12)); F1minus(ARG(12)); COPY(ARG(12), ARG(9)); if(CL_CONSP(ARG(1))) { } else { if(CL_TRUEP(ARG(1))) { LOAD_SMSTR((CL_FORM *)&KClisp[239], ARG(12)); /* ~a is not a list */ COPY(ARG(1), ARG(13)); Ferror(ARG(12), 2); } else { } } COPY(ARG(1), ARG(12)); COPY(ARG(12), ARG(13)); if(CL_CONSP(ARG(13))) { COPY(GET_CDR(ARG(13)), ARG(1)); } else { if(CL_TRUEP(ARG(13))) { LOAD_SMSTR((CL_FORM *)&KClisp[241], ARG(14)); /* ~a is not a list */ COPY(ARG(13), ARG(15)); Ferror(ARG(14), 2); } else { LOAD_NIL(ARG(1)); } } } else { ELSE3:; if(CL_CONSP(ARG(1))) { COPY(GET_CAR(ARG(1)), ARG(12)); } else { if(CL_TRUEP(ARG(1))) { LOAD_SMSTR((CL_FORM *)&KClisp[239], ARG(12)); /* ~a is not a list */ COPY(ARG(1), ARG(13)); Ferror(ARG(12), 2); } else { COPY(ARG(1), ARG(12)); } } COPY(ARG(1), ARG(13)); COPY(ARG(13), ARG(14)); if(CL_CONSP(ARG(14))) { COPY(GET_CDR(ARG(14)), ARG(1)); } else { if(CL_TRUEP(ARG(14))) { LOAD_SMSTR((CL_FORM *)&KClisp[241], ARG(15)); /* ~a is not a list */ COPY(ARG(14), ARG(16)); Ferror(ARG(15), 2); } else { LOAD_NIL(ARG(1)); } } COPY(ARG(10), ARG(13)); add_q(ARG(12)); if(CL_CONSP(ARG(8))) { COPY(GET_CAR(ARG(8)), ARG(13)); } else { if(CL_TRUEP(ARG(8))) { LOAD_SMSTR((CL_FORM *)&KClisp[239], ARG(13)); /* ~a is not a list */ COPY(ARG(8), ARG(14)); Ferror(ARG(13), 2); } else { COPY(ARG(8), ARG(13)); } } if(EQL(ARG(11), ARG(13))) { if(CL_CONSP(ARG(8))) { } else { if(CL_TRUEP(ARG(8))) { LOAD_SMSTR((CL_FORM *)&KClisp[239], ARG(12)); /* ~a is not a list */ COPY(ARG(8), ARG(13)); Ferror(ARG(12), 2); } else { } } COPY(ARG(8), ARG(12)); COPY(ARG(12), ARG(13)); if(CL_CONSP(ARG(13))) { COPY(GET_CDR(ARG(13)), ARG(8)); } else { if(CL_TRUEP(ARG(13))) { LOAD_SMSTR((CL_FORM *)&KClisp[241], ARG(14)); /* ~a is not a list */ COPY(ARG(13), ARG(15)); Ferror(ARG(14), 2); } else { LOAD_NIL(ARG(8)); } } COPY(ARG(9), ARG(12)); F1minus(ARG(12)); COPY(ARG(12), ARG(9)); } } F1plus(ARG(11)); goto M2_1; RETURN2:; } else { LOAD_SMALLFIXNUM(0, ARG(11)); M3_1:; if(CL_TRUEP(ARG(1))) { if(CL_CONSP(ARG(1))) { LOAD_NIL(ARG(12)); } else { LOAD_SMSTR((CL_FORM *)&KClisp[233], ARG(12)); /* ~a is not a list */ COPY(ARG(1), ARG(13)); Ferror(ARG(12), 2); } } else { LOAD_SYMBOL(SYMBOL(Slisp, 48), ARG(12)); /* T */ } if(CL_TRUEP(ARG(12))) { goto THEN4; } else { COPY(ARG(11), ARG(13)); COPY(ARG(5), ARG(14)); Fge(ARG(13), 2); } if(CL_TRUEP(ARG(13))) { THEN4:; goto RETURN3; } COPY(ARG(6), ARG(12)); Fplusp(ARG(12)); if(CL_TRUEP(ARG(12))) { if(CL_CONSP(ARG(8))) { COPY(GET_CAR(ARG(8)), ARG(13)); } else { if(CL_TRUEP(ARG(8))) { LOAD_SMSTR((CL_FORM *)&KClisp[239], ARG(13)); /* ~a is not a list */ COPY(ARG(8), ARG(14)); Ferror(ARG(13), 2); } else { COPY(ARG(8), ARG(13)); } } } else { goto ELSE5; } if(EQL(ARG(11), ARG(13))) { if(CL_CONSP(ARG(8))) { } else { if(CL_TRUEP(ARG(8))) { LOAD_SMSTR((CL_FORM *)&KClisp[239], ARG(12)); /* ~a is not a list */ COPY(ARG(8), ARG(13)); Ferror(ARG(12), 2); } else { } } COPY(ARG(8), ARG(12)); COPY(ARG(12), ARG(13)); if(CL_CONSP(ARG(13))) { COPY(GET_CDR(ARG(13)), ARG(8)); } else { if(CL_TRUEP(ARG(13))) { LOAD_SMSTR((CL_FORM *)&KClisp[241], ARG(14)); /* ~a is not a list */ COPY(ARG(13), ARG(15)); Ferror(ARG(14), 2); } else { LOAD_NIL(ARG(8)); } } COPY(ARG(6), ARG(12)); F1minus(ARG(12)); COPY(ARG(12), ARG(6)); if(CL_CONSP(ARG(1))) { } else { if(CL_TRUEP(ARG(1))) { LOAD_SMSTR((CL_FORM *)&KClisp[239], ARG(12)); /* ~a is not a list */ COPY(ARG(1), ARG(13)); Ferror(ARG(12), 2); } else { } } COPY(ARG(1), ARG(12)); COPY(ARG(12), ARG(13)); if(CL_CONSP(ARG(13))) { COPY(GET_CDR(ARG(13)), ARG(1)); } else { if(CL_TRUEP(ARG(13))) { LOAD_SMSTR((CL_FORM *)&KClisp[241], ARG(14)); /* ~a is not a list */ COPY(ARG(13), ARG(15)); Ferror(ARG(14), 2); } else { LOAD_NIL(ARG(1)); } } } else { ELSE5:; if(CL_CONSP(ARG(1))) { COPY(GET_CAR(ARG(1)), ARG(12)); } else { if(CL_TRUEP(ARG(1))) { LOAD_SMSTR((CL_FORM *)&KClisp[239], ARG(12)); /* ~a is not a list */ COPY(ARG(1), ARG(13)); Ferror(ARG(12), 2); } else { COPY(ARG(1), ARG(12)); } } COPY(ARG(1), ARG(13)); COPY(ARG(13), ARG(14)); if(CL_CONSP(ARG(14))) { COPY(GET_CDR(ARG(14)), ARG(1)); } else { if(CL_TRUEP(ARG(14))) { LOAD_SMSTR((CL_FORM *)&KClisp[241], ARG(15)); /* ~a is not a list */ COPY(ARG(14), ARG(16)); Ferror(ARG(15), 2); } else { LOAD_NIL(ARG(1)); } } COPY(ARG(10), ARG(13)); add_q(ARG(12)); } F1plus(ARG(11)); goto M3_1; RETURN3:; } COPY(GET_CAR(ARG(10)), ARG(0)); }
void unparse_unix_directory_list(CL_FORM *base) { LOAD_NIL(STACK(base, 1)); LOAD_NIL(STACK(base, 2)); { CL_FORM *lptr; lptr = form_alloc(STACK(base, 3), 2); COPY(STACK(base, 1), CAR(lptr)); COPY(STACK(base, 2), CDR(lptr)); LOAD_CONS(lptr, STACK(base, 1)); } if(CL_TRUEP(STACK(base, 0))) { COPY(STACK(base, 0), STACK(base, 2)); Fcar(STACK(base, 2)); COPY(STACK(base, 0), STACK(base, 3)); COPY(STACK(base, 3), STACK(base, 4)); Fcdr(STACK(base, 4)); COPY(STACK(base, 4), STACK(base, 0)); if(CL_SYMBOLP(STACK(base, 2)) && GET_SYMBOL(STACK(base, 2)) == SYMBOL(Slisp, 198)) /* ABSOLUTE */ { LOAD_SMSTR((CL_FORM *)&Kunparse_unix_directory_list[0], STACK(base, 3)); /* / */ COPY(STACK(base, 1), STACK(base, 4)); add_q(STACK(base, 3)); } else { if(CL_SYMBOLP(STACK(base, 2)) && GET_SYMBOL(STACK(base, 2)) == SYMBOL(Slisp, 201)) /* RELATIVE */ { LOAD_T(STACK(base, 3)); } else { LOAD_NIL(STACK(base, 3)); } if(CL_TRUEP(STACK(base, 3))) { } else { LOAD_SMSTR((CL_FORM *)&Kunparse_unix_directory_list[2], STACK(base, 4)); /* ecase: the value ~a is not a legal value */ COPY(STACK(base, 2), STACK(base, 5)); Ferror(STACK(base, 4), 2); } } LOAD_NIL(STACK(base, 2)); COPY(STACK(base, 0), STACK(base, 3)); M33_1:; if(CL_ATOMP(STACK(base, 3))) { LOAD_NIL(STACK(base, 2)); goto RETURN34; } COPY(STACK(base, 3), STACK(base, 4)); Fcar(STACK(base, 4)); COPY(STACK(base, 4), STACK(base, 2)); if(CL_SYMBOLP(STACK(base, 2)) && GET_SYMBOL(STACK(base, 2)) == SYMBOL(Slisp, 205)) /* UP */ { LOAD_SMSTR((CL_FORM *)&Kunparse_unix_directory_list[4], STACK(base, 4)); /* ../ */ COPY(STACK(base, 1), STACK(base, 5)); add_q(STACK(base, 4)); } else { if(CL_SYMBOLP(STACK(base, 2)) && GET_SYMBOL(STACK(base, 2)) == SYMBOL(Slisp, 199)) /* BACK */ { LOAD_SMSTR((CL_FORM *)&Kunparse_unix_directory_list[6], STACK(base, 4)); /* :BACK cannot be represented in namestrings. */ Ferror(STACK(base, 4), 1); } else { if(CL_SMAR_P(STACK(base, 2))) { COPY(STACK(base, 2), STACK(base, 4)); LOAD_SYMBOL(SYMBOL(Slisp, 43), STACK(base, 5)); /* STANDARD-CHAR */ LOAD_SYMBOL(SYMBOL(Slisp, 48), STACK(base, 6)); /* * */ check_array_internal(STACK(base, 4)); } else { LOAD_NIL(STACK(base, 4)); } if(CL_TRUEP(STACK(base, 4))) { bool_result = TRUE; } else { COPY(STACK(base, 2), STACK(base, 5)); LOAD_SYMBOL(SYMBOL(Slisp, 181), STACK(base, 6)); /* PATTERN */ struct_typep(STACK(base, 5)); bool_result = CL_TRUEP(STACK(base, 5)); } if(bool_result) { COPY(STACK(base, 2), STACK(base, 4)); unparse_unix_piece(STACK(base, 4)); COPY(STACK(base, 1), STACK(base, 5)); add_q(STACK(base, 4)); LOAD_SMSTR((CL_FORM *)&Kunparse_unix_directory_list[8], STACK(base, 4)); /* / */ COPY(STACK(base, 1), STACK(base, 5)); add_q(STACK(base, 4)); } else { LOAD_SMSTR((CL_FORM *)&Kunparse_unix_directory_list[10], STACK(base, 4)); /* Invalid directory component: ~S */ COPY(STACK(base, 2), STACK(base, 5)); Ferror(STACK(base, 4), 2); } } } Fcdr(STACK(base, 3)); goto M33_1; RETURN34:; } LOAD_GLOBFUN(&CFconcatenate, STACK(base, 2)); LOAD_SYMBOL(SYMBOL(Slisp, 40), STACK(base, 3)); /* SIMPLE-STRING */ COPY(STACK(base, 1), STACK(base, 4)); Fcar(STACK(base, 4)); Fapply(STACK(base, 2), 3); COPY(STACK(base, 2), STACK(base, 0)); }
void unparse_unix_enough(CL_FORM *base) { LOAD_NIL(ARG(2)); LOAD_NIL(ARG(3)); ALLOC_CONS(ARG(4), ARG(2), ARG(3), ARG(2)); COPY(ARG(0), ARG(3)); Ppathname_directory(ARG(3)); COPY(ARG(1), ARG(4)); Ppathname_directory(ARG(4)); COPY(ARG(4), ARG(5)); Flength(ARG(5)); COPY(ARG(5), ARG(6)); LOAD_FIXNUM(ARG(7), 1, ARG(7)); Fgt(ARG(6), 2); if(CL_TRUEP(ARG(6))) { COPY(ARG(3), ARG(6)); Flength(ARG(6)); COPY(ARG(5), ARG(7)); Fge(ARG(6), 2); if(CL_TRUEP(ARG(6))) { COPY(ARG(3), ARG(6)); LOAD_FIXNUM(ARG(7), 0, ARG(7)); COPY(ARG(5), ARG(8)); subseq1(ARG(6)); COPY(ARG(4), ARG(7)); compare_component(ARG(6)); } else { goto ELSE1; } } else { goto ELSE1; } if(CL_TRUEP(ARG(6))) { LOAD_SYMBOL(SYMBOL(Slisp, 270), ARG(6)); /* RELATIVE */ COPY(ARG(5), ARG(7)); COPY(ARG(3), ARG(8)); Fnthcdr(ARG(7)); ALLOC_CONS(ARG(8), ARG(6), ARG(7), ARG(6)); } else { ELSE1:; if(CL_CONSP(ARG(3))) { COPY(GET_CAR(ARG(3)), ARG(6)); } else { if(CL_TRUEP(ARG(3))) { LOAD_SMSTR((CL_FORM *)&KClisp[264], ARG(6)); /* ~a is not a list */ COPY(ARG(3), ARG(7)); Ferror(ARG(6), 2); } else { COPY(ARG(3), ARG(6)); } } if(CL_SYMBOLP(ARG(6)) && GET_SYMBOL(ARG(6)) == SYMBOL(Slisp, 267)) /* ABSOLUTE */ { COPY(ARG(3), ARG(6)); } else { LOAD_SMSTR((CL_FORM *)&KClisp[232], ARG(6)); /* ~S cannot be represented relative to ~S */ COPY(ARG(0), ARG(7)); COPY(ARG(1), ARG(8)); Ferror(ARG(6), 3); } } COPY(ARG(6), ARG(7)); unparse_unix_directory_list(ARG(7)); COPY(ARG(2), ARG(8)); add_q(ARG(7)); COPY(ARG(0), ARG(3)); Ppathname_version(ARG(3)); if(CL_TRUEP(ARG(3))) { if(CL_SYMBOLP(ARG(3)) && GET_SYMBOL(ARG(3)) == SYMBOL(Slisp, 269)) /* NEWEST */ { LOAD_NIL(ARG(4)); } else { LOAD_SYMBOL(SYMBOL(Slisp, 48), ARG(4)); /* T */ } } else { LOAD_NIL(ARG(4)); } COPY(ARG(0), ARG(5)); Ppathname_type(ARG(5)); if(CL_TRUEP(ARG(4))) { COPY(ARG(4), ARG(6)); } else { if(CL_TRUEP(ARG(5))) { if(CL_SYMBOLP(ARG(5)) && GET_SYMBOL(ARG(5)) == SYMBOL(Slisp, 266)) /* UNSPECIFIC */ { LOAD_NIL(ARG(6)); } else { LOAD_SYMBOL(SYMBOL(Slisp, 48), ARG(6)); /* T */ } } else { LOAD_NIL(ARG(6)); } } COPY(ARG(0), ARG(7)); Ppathname_name(ARG(7)); if(CL_TRUEP(ARG(6))) { COPY(ARG(6), ARG(8)); } else { if(CL_TRUEP(ARG(7))) { COPY(ARG(7), ARG(8)); COPY(ARG(1), ARG(9)); Ppathname_name(ARG(9)); compare_component(ARG(8)); if(CL_TRUEP(ARG(8))) { LOAD_NIL(ARG(8)); } else { LOAD_SYMBOL(SYMBOL(Slisp, 48), ARG(8)); /* T */ } } else { LOAD_NIL(ARG(8)); } } if(CL_TRUEP(ARG(8))) { if(CL_TRUEP(ARG(7))) { } else { LOAD_SMSTR((CL_FORM *)&KClisp[232], ARG(9)); /* ~S cannot be represented relative to ~S */ COPY(ARG(0), ARG(10)); COPY(ARG(1), ARG(11)); Ferror(ARG(9), 3); } COPY(ARG(7), ARG(9)); unparse_unix_piece(ARG(9)); COPY(ARG(2), ARG(10)); add_q(ARG(9)); } if(CL_TRUEP(ARG(6))) { if(CL_TRUEP(ARG(5))) { LOAD_NIL(ARG(9)); } else { LOAD_SYMBOL(SYMBOL(Slisp, 48), ARG(9)); /* T */ } if(CL_TRUEP(ARG(9))) { goto THEN2; } else { } /* UNSPECIFIC */ if(CL_SYMBOLP(ARG(5)) && GET_SYMBOL(ARG(5)) == SYMBOL(Slisp, 266)) { THEN2:; LOAD_SMSTR((CL_FORM *)&KClisp[232], ARG(9)); /* ~S cannot be represented relative to ~S */ COPY(ARG(0), ARG(10)); COPY(ARG(1), ARG(11)); Ferror(ARG(9), 3); } LOAD_SMSTR((CL_FORM *)&Kunparse_unix_enough[0], ARG(9)); /* . */ COPY(ARG(2), ARG(10)); add_q(ARG(9)); COPY(ARG(5), ARG(9)); unparse_unix_piece(ARG(9)); COPY(ARG(2), ARG(10)); add_q(ARG(9)); } if(CL_TRUEP(ARG(4))) { if(CL_SYMBOLP(ARG(3)) && GET_SYMBOL(ARG(3)) == SYMBOL(Slisp, 271)) /* WILD */ { LOAD_SMSTR((CL_FORM *)&Kunparse_unix_enough[2], ARG(9)); /* .* */ COPY(ARG(2), ARG(10)); add_q(ARG(9)); } else { if(CL_FIXNUMP(ARG(3))) { LOAD_NIL(ARG(9)); LOAD_SMSTR((CL_FORM *)&Kunparse_unix_enough[4], ARG(10)); /* .~D */ COPY(ARG(3), ARG(11)); Fformat(ARG(9), 3); mv_count = 1; COPY(ARG(2), ARG(10)); add_q(ARG(9)); } else { LOAD_SMSTR((CL_FORM *)&KClisp[232], ARG(9)); /* ~S cannot be represented relative to ~S */ COPY(ARG(0), ARG(10)); COPY(ARG(1), ARG(11)); Ferror(ARG(9), 3); } } } LOAD_GLOBFUN(&CFconcatenate, ARG(3)); LOAD_SYMBOL(SYMBOL(Slisp, 40), ARG(4)); /* SIMPLE-STRING */ COPY(GET_CAR(ARG(2)), ARG(5)); Fapply(ARG(3), 3); COPY(ARG(3), ARG(0)); }
void xnsched_addq_tail(struct xnsched_mlq *q, struct xnthread *thread) { struct list_head *head = add_q(q, thread->cprio); list_add_tail(&thread->rlink, head); }
void concatenate_to_list(CL_FORM *base, int nargs) { Flist(STACK(base, 0), nargs - 0); LOAD_NIL(STACK(base, 1)); LOAD_NIL(STACK(base, 2)); { CL_FORM *lptr; lptr = form_alloc(STACK(base, 3), 2); COPY(STACK(base, 1), CAR(lptr)); COPY(STACK(base, 2), CDR(lptr)); LOAD_CONS(lptr, STACK(base, 1)); } LOAD_NIL(STACK(base, 2)); COPY(STACK(base, 0), STACK(base, 3)); M148_1:; if(CL_ATOMP(STACK(base, 3))) { LOAD_NIL(STACK(base, 2)); goto RETURN162; } COPY(STACK(base, 3), STACK(base, 4)); Fcar(STACK(base, 4)); COPY(STACK(base, 4), STACK(base, 2)); if(CL_LISTP(STACK(base, 2))) { LOAD_NIL(STACK(base, 4)); COPY(STACK(base, 2), STACK(base, 5)); M149_1:; if(CL_ATOMP(STACK(base, 5))) { LOAD_NIL(STACK(base, 4)); goto RETURN163; } COPY(STACK(base, 5), STACK(base, 6)); Fcar(STACK(base, 6)); COPY(STACK(base, 6), STACK(base, 4)); COPY(STACK(base, 1), STACK(base, 7)); add_q(STACK(base, 6)); Fcdr(STACK(base, 5)); goto M149_1; RETURN163:; } else { COPY(STACK(base, 2), STACK(base, 4)); Flength(STACK(base, 4)); LOAD_FIXNUM(0, STACK(base, 5)); M150_1:; COPY(STACK(base, 5), STACK(base, 6)); COPY(STACK(base, 4), STACK(base, 7)); Fge(STACK(base, 6), 2); if(CL_TRUEP(STACK(base, 6))) { goto RETURN164; } COPY(STACK(base, 2), STACK(base, 6)); COPY(STACK(base, 5), STACK(base, 7)); Felt(STACK(base, 6)); COPY(STACK(base, 1), STACK(base, 7)); add_q(STACK(base, 6)); F1plus(STACK(base, 5)); goto M150_1; RETURN164:; } Fcdr(STACK(base, 3)); goto M148_1; RETURN162:; COPY(STACK(base, 1), STACK(base, 0)); Fcar(STACK(base, 0)); }