Sponsored Content
Top Forums Programming Running bin file from a module Post 302505596 by fpmurphy on Thursday 17th of March 2011 11:14:33 AM
Old 03-17-2011
Quote:
In final version my driver would load UEFI driver from hardware's flash.
I am confused. UEFI drivers are intended to extend firmware, have no OS dependence and have nothing to do with an operating system kernel.

How do you expect the kernel to load and interface with a UEFI driver? UEFI drivers can be 32 bit, 64-bit and more commonly EBC (Efi Byte Code). Have you read the Driver Writers Guide for UEFI?

Are you aware, for example, that 64-bit UEFI uses the Microsoft X64 calling convention whereas Linux uses the AMD64 calling convention.
Code:
//
// Unix/Linux arg passing:  RCX, RDX,  R8,  R9
//                                     RSI, RDI scratch 
//   UEFI/EFI arg passing:  RDI, RSI, RDX, RCX, R8, R9
//                                     Callee allocates 32 bytes on stack to spill registers
//                                     RSI, RDI callee-save
//
//   Mapping between registers
//
//   arg1   arg2    arg3   arg4   arg5     arg6      arg7       arg8
//
//   gcc:  (AMD64 ABI)
//   %rdi,  %rsi,  %rdx,  %rcx,    %r8,     %r9,     8(%rsp), 16(%rsp),  ....
//
//   efi:  (Microsoft X64)
//   %rcx,  %rdx,   %r8,   %r9,  32(%rsp), 40(%rsp), 48(%rsp), 56(%rsp), ....
//

You also need a UEFI-aware operating system of which there are a limited number out there. Recent 64-bit versions of Fedora/Redhat/etc.

If you describe exactly what you are trying to achieve - the big picture and not the how to - we can probably help you.
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

/bin/sh: /usr/bin/vi: No such file or directory when doing crontab

I just set up an ftp server with Red Hat 5.2. I am doing the work, I'm baby stepping, but it seems like every step I get stuck. Currently, I'm trying to set up a crontab job, but I'm getting the following message: /bin/sh: /usr/bin/vi: No such file or directory. I see that vi exists in /bin/vi,... (3 Replies)
Discussion started by: kwalter
3 Replies

2. Programming

find the fully-qualified path for the app my module is running in

Hi- I need the cpp call that will tell me the full path to the app I'm running in. For example, I'm running in a loaded library for either mozilla or firefox, but would like to know the full path to the executable /usr/bin/firefox /usr/bin/mozilla /usr/local/firefox1_5 etc... (For... (4 Replies)
Discussion started by: erwinfletch
4 Replies

3. Linux

How to convert Linux Kernel built-in module into a loadable module

Hi all, I am working on USB data monitoring on Fedora Core 9. Kernel 2.6.25 has a built-in module (the one that isn't loadable, but compiles and links statically with the kernel during compilation) to snoop USB data. It is in <kernel_source_code>/drivers/usb/mon/. I need to know if I can... (0 Replies)
Discussion started by: anitemp
0 Replies

4. Shell Programming and Scripting

Why does my /bin/csh take longer than /bin/perl?

Okay, so I have two "Hello, world!" scripts, "test.pl" and "test.sh". #!/bin/perl -w use strict; print "Hello, world!\n"; #!/bin/csh echo Hello,\ world! When I run test.pl, it runs instantly, always. When I run test.sh, it takes anywhere between 4 and 22 seconds! I'd like to know what... (3 Replies)
Discussion started by: acheong87
3 Replies

5. UNIX for Dummies Questions & Answers

fuser: difference with bin/sh and bin/ksh shell script

Hi, I have a problem I don't understand with fuser. I launch a simple shell script mysleep.sh: I launch the command fuser -fu mysleep.sh but fuser doesn't return anything excepted: mysleep: Then I modify my script switching from #!/bin/sh to #!/bin/ksh I launch the command fuser -fu... (4 Replies)
Discussion started by: Peuj
4 Replies

6. OS X (Apple)

When to use /Users/m/bin instead of /usr/local/bin (& whats the diff?)?

Q1. I understand that /usr/local/bin means I can install/uninstall stuff in here and have any chance of messing up my original system files or effecting any other users. I created this directory myself. But what about the directory I didn't create, namely /Users/m/bin? How is that directory... (1 Reply)
Discussion started by: michellepace
1 Replies

7. Programming

Why am i getting these strange packets while running my packet capture module written in c.?

I have made an packet capture application running on intel machine, it is capturing packets with src address- 17.0.0.0 destination ip- 66.0.0.0, source port- 0, destination port- 0, and protocol- 0 what does these packets mean ? The code written to interpreter captured bytes is given below.... (5 Replies)
Discussion started by: arunpushkar
5 Replies

8. Ubuntu

Compile smbfs module in kernel version 3.10 running Ubuntu 12.04 LTS

Is there any way to compile smbfs module in kernel 3.10 running Ubuntu 12.04 LTS. I did a 'make menuconfig' and it shows cifs. I found out online that smbfs is deprecated and replaced by cifs. I have an old system with kernel version 2.4 which only has smbfs (no cifs). Is it possible to compile... (1 Reply)
Discussion started by: Monil
1 Replies

9. AIX

Redistribution bin required for AIX. j7r164redist.7.1.0.25.bin

Hi, I am planning to install a version of Informatica on my AIX box. It requires a specific java build in pap6470_27sr2-20141101_01(SR2). The current link for IBM 64-bit SDK for AIX®, JavaTM Technology Edition, Version 7 Release 1 has a more recent version in j7r164redist.7.1.0.75.bin. Is... (4 Replies)
Discussion started by: meetpraveens
4 Replies

10. Shell Programming and Scripting

Usage of #!/bin/sh vs #!/bin/bash shell scripts?

Some question about the usage of shell scripts: 1.) Are the commands of the base shell scripts a subset of bash commands? 2.) Assume I got a long, long script WITHOUT the first line. How can I find out if the script was originally designed für "sh" or "bash"? 3.) How can I check a given... (3 Replies)
Discussion started by: pstein
3 Replies
shevek::istring(3)					     Library Functions Manual						shevek::istring(3)

NAME
shevek::istring - shevek::istring is a C++ version of scanf. SYNOPSIS
#include <iostring.hh> Public Member Functions istring () Create a new istring with no data. istring (Glib::ustring const &str) Create a new istring with data. void init (Glib::ustring const &str) Set new data to an existing istring. void push () Push the current position to the stack so it can be restored later. int pop (bool keep=false) Pop the last pushed position from the stack. void reset () Set the current position to 0, but don't change the stack. Glib::ustring rest () const Get remaining string. void skip (Glib::ustring::size_type p) Skip some characters. bool operator() (Glib::ustring const &format) Read a constant string from the input. template<typename T1 > bool operator() (Glib::ustring const &format, T1 &arg1) Read a string containing one argument from the input. template<typename T1 , typename T2 > bool operator() (Glib::ustring const &format, T1 &arg1, T2 &arg2) Read a string containing two arguments from the input. template<typename T1 , typename T2 , typename T3 > bool operator() (Glib::ustring const &format, T1 &arg1, T2 &arg2, T3 &arg3) Read a string containing three arguments from the input. template<typename T1 , typename T2 , typename T3 , typename T4 > bool operator() (Glib::ustring const &format, T1 &arg1, T2 &arg2, T3 &arg3, T4 &arg4) Read a string containing four arguments from the input. template<typename T1 , typename T2 , typename T3 , typename T4 , typename T5 > bool operator() (Glib::ustring const &format, T1 &arg1, T2 &arg2, T3 &arg3, T4 &arg4, T5 &arg5) Read a string containing five arguments from the input. template<typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 > bool operator() (Glib::ustring const &format, T1 &arg1, T2 &arg2, T3 &arg3, T4 &arg4, T5 &arg5, T6 &arg6) Read a string containing six arguments from the input. template<typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 > bool operator() (Glib::ustring const &format, T1 &arg1, T2 &arg2, T3 &arg3, T4 &arg4, T5 &arg5, T6 &arg6, T7 &arg7) Read a string containing seven arguments from the input. template<typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 > bool operator() (Glib::ustring const &format, T1 &arg1, T2 &arg2, T3 &arg3, T4 &arg4, T5 &arg5, T6 &arg6, T7 &arg7, T8 &arg8) Read a string containing eight arguments from the input. Static Public Member Functions template<typename T > static T direct (Glib::ustring const &data, Glib::ustring const &format, T def=T()) Read a variable from given data and return it. Detailed Description shevek::istring is a C++ version of scanf. It uses templates to allow expanding it to user-defined types, but it still uses a format string to make it better translatable. Member Function Documentation template<typename T > static T shevek::istring::direct (Glib::ustring const &data, Glib::ustring const &format, Tdef = T ()) [inline, static] Read a variable from given data and return it. This allows using a shevek::istring in an expression without the need to create a new variable for it. If the input doesn't match the format, def is returned. int shevek::istring::pop (boolkeep = false) Pop the last pushed position from the stack. If keep is true or not given, the current position is restored to the last position. If it is false, the current position is not changed. Author Generated automatically by Doxygen for libshevek from the source code. libshevek Fri May 11 2012 shevek::istring(3)
All times are GMT -4. The time now is 08:29 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy