2004-03-23 09:22:20 +03:00
/*
* udev_lib - generic stuff used by udev
*
* Copyright ( C ) 2004 Kay Sievers < kay . sievers @ vrfy . org >
*
*
* 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 version 2 of the License .
*
* 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 , write to the Free Software Foundation , Inc . ,
* 675 Mass Ave , Cambridge , MA 0213 9 , USA .
*
*/
# ifndef _UDEV_LIB_H_
# define _UDEV_LIB_H_
2004-10-19 06:11:51 +04:00
# include "udev.h"
2004-03-23 09:22:20 +03:00
# define strfieldcpy(to, from) \
do { \
to [ sizeof ( to ) - 1 ] = ' \0 ' ; \
strncpy ( to , from , sizeof ( to ) - 1 ) ; \
} while ( 0 )
# define strfieldcat(to, from) \
do { \
to [ sizeof ( to ) - 1 ] = ' \0 ' ; \
strncat ( to , from , sizeof ( to ) - strlen ( to ) - 1 ) ; \
} while ( 0 )
# define strfieldcpymax(to, from, maxsize) \
do { \
to [ maxsize - 1 ] = ' \0 ' ; \
strncpy ( to , from , maxsize - 1 ) ; \
} while ( 0 )
# define strfieldcatmax(to, from, maxsize) \
do { \
to [ maxsize - 1 ] = ' \0 ' ; \
strncat ( to , from , maxsize - strlen ( to ) - 1 ) ; \
} while ( 0 )
2004-10-14 09:38:15 +04:00
# ifdef asmlinkage
# undef asmlinkage
# endif
# ifdef __i386__
# define asmlinkage __attribute__((regparm(0)))
# endif
# ifndef asmlinkage
2005-03-05 08:50:09 +03:00
# define asmlinkage
2004-10-14 09:38:15 +04:00
# endif
2004-03-23 09:22:20 +03:00
2005-03-04 23:33:57 +03:00
struct name_entry {
struct list_head node ;
char name [ NAME_SIZE ] ;
} ;
2005-02-21 16:48:12 +03:00
extern int udev_init_device ( struct udevice * udev , const char * devpath , const char * subsystem ) ;
2005-03-05 07:35:31 +03:00
extern void udev_cleanup_device ( struct udevice * udev ) ;
2005-02-06 03:39:25 +03:00
extern int kernel_release_satisfactory ( unsigned int version , unsigned int patchlevel , unsigned int sublevel ) ;
2004-11-06 16:28:01 +03:00
extern int create_path ( const char * path ) ;
2004-12-20 09:38:33 +03:00
extern int parse_get_pair ( char * * orig_string , char * * left , char * * right ) ;
2005-02-09 06:37:32 +03:00
extern int unlink_secure ( const char * filename ) ;
2004-03-23 09:22:20 +03:00
extern int file_map ( const char * filename , char * * buf , size_t * bufsize ) ;
extern void file_unmap ( char * buf , size_t bufsize ) ;
2004-12-20 09:38:33 +03:00
extern size_t buf_get_line ( const char * buf , size_t buflen , size_t cur ) ;
2004-11-06 16:28:01 +03:00
extern void no_trailing_slash ( char * path ) ;
2005-03-04 23:33:57 +03:00
extern int name_list_add ( struct list_head * name_list , const char * name , int sort ) ;
extern int call_foreach_file ( int ( * handler_function ) ( struct udevice * udev , const char * string ) ,
struct udevice * udev , const char * dirname , const char * suffix ) ;
2004-03-23 09:22:20 +03:00
# endif