X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Fasmops.h;h=dbe7ec82881e74d670779c13a8c7b24fd22f6a2f;hb=c5698ff9776ac76cd2243525177c35b0d12855e0;hp=2578467a8c0abb1ee7db60b1ae81b580ca746b23;hpb=d1e8a437c1fab4535f82c4c214ec3330ac32e48d;p=bootcensus diff --git a/src/asmops.h b/src/asmops.h index 2578467..dbe7ec8 100644 --- a/src/asmops.h +++ b/src/asmops.h @@ -1,3 +1,20 @@ +/* +pcboot - bootable PC demo/game kernel +Copyright (C) 2018 John Tsiombikas + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY, without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ #ifndef ASMOPS_H_ #define ASMOPS_H_ @@ -7,6 +24,11 @@ #define disable_intr() asm volatile("cli") #define halt_cpu() asm volatile("hlt") +#define CALLER_EIP(eip) \ + asm volatile( \ + "mov (%%esp), %0\n\t" \ + : "=a" ((uint32_t)eip)) + static inline uint8_t inb(uint16_t port) { uint8_t res;