;Copyright (C) 1999 Konstantin Boldyshev ;Copyright (C) 2002 Thomas M. Ogrisegg ; ;$Id: swapon.asm,v 1.3 2002/03/21 08:33:21 konst Exp $ ; ;hackers' swapon/swapoff/mkswap ; ;syntax: swapon device ... ; ;example: swapon /dev/hda9 /dev/hda10 ; swapoff /dev/hda5 ; mkswap /dev/hda8 ; ;0.01: 04-Jul-1999 initial release ;0.02: 18-Mar-2002 mkswap extnesion for Linux 2.2+ (TO) %include "system.inc" CODESEG START: pop esi pop esi .n1: lodsb or al,al jnz .n1 .next_file: pop ebx or ebx,ebx jz .exit cmp word [esi-7],'mk' jz .mkswap cmp word [esi-3],'ff' jnz .swapon .swapoff: sys_swapoff jmps .next_file .swapon: sys_swapon jmps .next_file .mkswap: sys_open EMPTY,O_RDWR test eax,eax js .exit mov ebp,eax sys_lseek ebp,0,SEEK_END test eax,eax jns .do_mkswap .error: sys_write STDERR,error,errlen .exit: sys_exit eax .do_mkswap: mov edi, eax shr edi, 0xc dec edi sys_lseek ebp,0x400,SEEK_SET test eax,eax js .error push byte 0x1 mov ecx,esp sys_write ebp,EMPTY,4 push edi mov ecx,esp sys_write ebp,EMPTY,4 sys_lseek ebp,0xff6,SEEK_SET sys_write ebp,signature,siglen test eax,eax js .error sys_close ebp xor eax,eax jmps .exit signature db "SWAPSPACE2" siglen equ $ - signature error db "i/o error.", __n errlen equ $ - error END