guilc Le 11/07/2002 à 19:16 Est-il possible d'utiliser des chaines exec en mode kernel ?
Je m'explique. Je veux convertir ça :
void zip()
{
SYM_ENTRY *src = SymFindPtr ($(temp), 0);
asm ("move.l %0,%%a0" :: "g"(src));
asm ("move.b %0,%%d0" :: "g"(1));
asm ("jsr ziplib__0006")
}
en chaine Exec, mais là, pas moyen, ça déconne. Pas moyen de zipper le fichier "temp". Ma méthode pour créer les chaines exec n'est pas en cause (je pense), vu qu'elle marche très bien pour des fonctions _nostub...
A mon avis, c'est un probleme avec une incompatibilité du mode kernel avec les chaines exec, mais j'aurais besoin d'une confirmation...
Si c'est pas ça, ben... Comment je peux faire ?
Tu daois pouvoir le faire en trouvant l'adresse de la lib, en trouvant la bonne fonstion, en simulant le passage des arguments, en bref en émulant un kernel.

Que cache le pays des Dieux ? -
Forum Ghibli -
Forum LittéraireLa fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.
Kevin Kofler Le 11/07/2002 à 21:22Edité par Kevin Kofler le 11/07/2002 à 21:22 Plains toi chez PpHd. (Demande-lui de rajouter le support des chaînes Exec en mode kernel à PreOs.) Sinon, pour une autre solution, regarde les sources de DB92: c'est un programme _nostub, mais si un kernel est installé, il peut l'utiliser pour reloger des programmes pour kernel (à l'aide des fonctions (un)reloc2 exportées par le kernel dans la table des vecteurs). Ça marche avec tous les kernels sauf Universal OS.