• Home
  • Raw
  • Download

Lines Matching refs:un

23 è di fornire ai programmatori C più esperti un manuale di base per sviluppo.
30 crescere e diventare un compendio di buone pratiche, punti di partenza
36 In qualsiasi momento ognuna delle CPU di un sistema può essere:
38 - non associata ad alcun processo, servendo un'interruzione hardware;
40 - non associata ad alcun processo, servendo un softirq o tasklet;
42 - in esecuzione nello spazio kernel, associata ad un processo
45 - in esecuzione di un processo nello spazio utente;
47 Esiste un ordine fra questi casi. Gli ultimi due possono avvicendarsi (preempt)
48 l'un l'altro, ma a parte questo esiste una gerarchia rigida: ognuno di questi
49 può avvicendarsi solo ad uno di quelli sottostanti. Per esempio, mentre un
51 nell'esecuzione, ma un'interruzione hardware può. Ciò nonostante, le altre CPU
67 Si è sempre in contesto utente quando un modulo viene caricato o rimosso,
78 di seguito), :c:func:`in_interrupt()` ritornerà un falso positivo.
84 che possono produrre interruzioni in un qualsiasi momento. Il kernel esegue
85 i gestori d'interruzione che prestano un servizio all'hardware. Il kernel
98 Attenzione, questa ritornerà un falso positivo se le interruzioni
105 oppure un gestore d'interruzioni termina, qualsiasi 'interruzione software'
106 marcata come pendente (solitamente da un'interruzione hardware) viene
109 La maggior parte del lavoro utile alla gestione di un'interruzione avviene qui.
118 potete programmarlo per far si che esegua funzioni dopo un determinato
121 Dato che i softirq possono essere eseguiti simultaneamente su più di un
125 quanti ne volete), e garantiscono che un qualsiasi tasklet verrà eseguito
126 solo su un processore alla volta, sebbene diversi tasklet possono essere
135 Potete determinate se siete in un softirq (o tasklet) utilizzando la
140 State attenti che questa macro ritornerà un falso positivo
169 indipendente dall'ordine dei byte (endianess) di un processore. Inoltre,
170 dovreste minimizzare il codice specifico per un processore; per esempio
173 limitato alla parte di kernel specifica per un'architettura.
187 Create un dispositivo a caratteri ed implementate l'appropriata chiamata ioctl.
194 considerate l'implementazione di un'interfaccia :c:func:`sysfs()`.
196 All'interno di una ioctl vi trovate nel contesto utente di un processo. Quando
197 avviene un errore dovete ritornare un valore negativo di errno (consultate
203 Unix/Linux di gestire un segnale è di uscire temporaneamente dalla chiamata
218 un sistema multi-processo senza diritto di prelazione).
232 - Siete in un contesto utente.
262 inutilizzabile. La funzione utilizza un formato stringa quasi compatibile con
270 per stampare un indirizzo IP usate::
276 :c:func:`printk()` utilizza un buffer interno di 1K e non s'accorge di
281 Saprete di essere un vero hacker del kernel quando inizierete a digitare
286 Un'altra nota a parte: la versione originale di Unix 6 aveva un commento
309 funzioni ritornano la quantità di dati copiati (0 è comunque un successo).
325 Queste procedure sono utilizzate per la richiesta dinamica di un puntatore ad
326 un pezzo di memoria allineato, esattamente come malloc e free nello spazio
327 utente, ma :c:func:`kmalloc()` ha un argomento aggiuntivo per indicare alcune
336 Non dorme. Meno affidabile di ``GFP_KERNEL``, ma può essere usata in un
345 Se vedete un messaggio d'avviso per una funzione dormiente che viene chiamata
346 da un contesto errato, allora probabilmente avete usato una funzione
347 d'allocazione dormiente da un contesto d'interruzione senza ``GFP_ATOMIC``.
352 Accetta un argomento che definisce l'ordine (0 per per la dimensione di una
356 Se state allocando un numero di byte notevolemnte superiore ad una pagina
358 dello spazio kernel. Questo è un blocco di memoria fisica non contiguo, ma
363 memoria fisica contigua, avete un problema: Linux non ha un buon supporto per
364 questo caso d'uso perché, dopo un po' di tempo, la frammentazione della memoria
365 rende l'operazione difficile. Il modo migliore per allocare un simile blocco
377 Questa variabile globale (in realtà una macro) contiene un puntatore alla
379 Per esempio, quando un processo esegue una chiamata di sistema, questo
389 per brevi pause. Non usate grandi valori perché rischiate d'avere un
399 sostituito da 64 o 16, e "be" con "le") forniscono un modo generico
405 puntatori, come :c:func:`cpu_to_be32p()`, che prende un puntatore
406 ad un tipo, e ritorna il valore convertito. L'altra variante per
408 che convertono il valore puntato da un puntatore, e ritornano void.
442 spostati su un altro processore all'improvviso) e ritorna il numero
448 se siete in un contesto d'interruzione, o il diritto di prelazione
486 La funzione può ritornare un numero d'errore negativo per scatenare un
514 rimozione (in aggiunta, un modulo non può essere rimosso se un altro modulo
521 La maggior parte delle strutture registrabili hanno un campo owner
553 un'espressione che dev'essere valutata; la macro ritorna 0 quando questa
554 espressione è vera, altrimenti ``-ERESTARTSYS`` se è stato ricevuto un segnale.
570 (``include/asm/atomic.h``); questo contiene un intero con segno (minimo 32bit),
585 ``unsigned long``. Queste operazioni prendono come argomento un puntatore
586 alla variabile, e un numero di bit dove 0 è quello meno significativo.
602 a meno che un simbolo non venga dichiarato con visibilita limitata ad un
613 Questo è il classico metodo per esportare un simbolo: i moduli caricati
664 C e ritornare 0 in caso di successo, ed un codice di errore negativo
669 un numero d'errore negativo in un puntatore, e :c:func:`IS_ERR()` e
670 :c:func:`PTR_ERR()` per recuperarlo di nuovo: così si evita d'avere un
681 s'accompagna un'adeguata e completa nota sulla lista di discussone
683 Solitamente eseguire una semplice sostituzione su tutto un file rendere
710 la pagina info, la pagina man è solo un breve riassunto delle cose nella
770 il primo posto dove le persone guarderanno quando troveranno un baco,
773 - Solitamente vorrete un'opzione di configurazione per la vostra modifica
793 che volete essere consultati quando vengono fatte delle modifiche ad un
795 di un semplice impegno su una parte del codice.
870 per avermi fornito un ottimo riassunto di :c:func:`disable_irq()`,