Lua in the NetBSD Kernel

Lua in the NetBSD Kernel

Calling a C Function

Function has been registered in luaopen module()
int function(lua State *L)
Parameters popped from the stack
Return values pushed on the stack
Return Nr. of return values
Find the function and make sure is *is* a function
Push parameters on the stack
Use lua call(lua State *L, int index)
or lua pcall(lua State *L, int index)
Pop return values from the stack

The Lua function

function hello()
print(‘Hello, world!’)
end
Call hello from C:
lua_getglobal(L, « hallo »);
lua_pcall(L, 0, 0, 0);

Ideas for Users

Modifying software written in C is hard for users
Give users the power to modify and extend the system
Let users explore the system in an easy way

Ideas for Developers

,,Rapid Application Development » approach to driver development
Modifying the system behaviour
Conguration of kernel subsystems

Alternatives

Python
Java

Python

Not to dicult to integrate in C
Huge library
Memory consumption
Dicult object mapping

Java

Easy to integrate
Dicult object mapping
Memory considerations
Has been used for driver development

LIRE AUSSI :  Lua Object Oriented Packet Scripting

Lua in NetBSD Userland

Library (liblua.so) and binaries (lua, luac) committed to current
Will be part of NetBSD 6
No back port to NetBSD 5 stable planned

1 The Programming Language Lua
The Lua Interpreter
Syntax and such
Modules
2 Embedding Lua in C Programs
State Manipulation
Calling C from Lua
Calling Lua from C
3 Lua in the NetBSD Kernel
Use Cases
Implementation Overview
Implementation Details

Cours gratuitTélécharger le cours complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *