Changeset ff381a7 in mainline for uspace/lib/c/include


Ignore:
Timestamp:
2015-11-02T20:54:19Z (10 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
d8513177
Parents:
3feeab2 (diff), 5265eea4 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge mainline changes.

Location:
uspace/lib/c/include
Files:
1 added
1 deleted
19 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/c/include/adt/list.h

    r3feeab2 rff381a7  
    133133
    134134/** Returns true if the link is definitely part of a list. False if not sure. */
    135 static inline int link_in_use(link_t *link)
     135static inline bool link_in_use(link_t *link)
    136136{
    137137        return link->prev != NULL && link->next != NULL;
     
    237237 *
    238238 */
    239 static inline int list_empty(const list_t *list)
     239static inline bool list_empty(const list_t *list)
    240240{
    241241        return (list->head.next == &list->head);
     
    357357 *
    358358 */
    359 static inline link_t *list_nth(list_t *list, unsigned int n)
    360 {
    361         unsigned int cnt = 0;
     359static inline link_t *list_nth(list_t *list, unsigned long n)
     360{
     361        unsigned long cnt = 0;
    362362       
    363363        link_t *link = list_first(list);
     
    396396}
    397397
    398 extern int list_member(const link_t *, const list_t *);
     398extern bool list_member(const link_t *, const list_t *);
    399399extern void list_concat(list_t *, list_t *);
    400 extern unsigned int list_count(const list_t *);
     400extern unsigned long list_count(const list_t *);
    401401
    402402#endif
  • uspace/lib/c/include/async.h

    r3feeab2 rff381a7  
    4848#include <abi/ddi/irq.h>
    4949#include <abi/ipc/event.h>
     50#include <abi/ipc/interfaces.h>
    5051
    5152typedef ipc_callid_t aid_t;
     53typedef sysarg_t port_id_t;
    5254
    5355typedef void *(*async_client_data_ctor_t)(void);
    5456typedef void (*async_client_data_dtor_t)(void *);
    5557
    56 /** Client connection handler
     58/** Port connection handler
    5759 *
    5860 * @param callid ID of incoming call or 0 if connection initiated from
    59  *               inside using async_connect_to_me()
     61 *               inside using async_create_callback_port()
    6062 * @param call   Incoming call or 0 if connection initiated from inside
    61  * @param arg    Local argument passed from async_new_connection() or
    62  *               async_connect_to_me()
    63  */
    64 typedef void (*async_client_conn_t)(ipc_callid_t, ipc_call_t *, void *);
     63 *               using async_create_callback_port()
     64 * @param arg    Local argument.
     65 *
     66 */
     67typedef void (*async_port_handler_t)(ipc_callid_t, ipc_call_t *, void *);
    6568
    6669/** Notification handler */
     
    8083        EXCHANGE_ATOMIC = 0,
    8184       
     85        /** Exchange management via mutual exclusion
     86         *
     87         * Suitable for any kind of client/server communication,
     88         * but can limit parallelism.
     89         *
     90         */
     91        EXCHANGE_SERIALIZE = 1,
     92       
    8293        /** Exchange management via phone cloning
    8394         *
     
    8798         *
    8899         */
    89         EXCHANGE_PARALLEL,
    90        
    91         /** Exchange management via mutual exclusion
    92          *
    93          * Suitable for any kind of client/server communication,
    94          * but can limit parallelism.
    95          *
    96          */
    97         EXCHANGE_SERIALIZE
     100        EXCHANGE_PARALLEL = 2
    98101} exch_mgmt_t;
    99102
     
    147150extern void async_forget(aid_t);
    148151
    149 extern fid_t async_new_connection(task_id_t, sysarg_t, ipc_callid_t,
    150     ipc_call_t *, async_client_conn_t, void *);
    151 
    152152extern void async_usleep(suseconds_t);
    153153extern void async_create_manager(void);
     
    160160extern void async_put_client_data_by_id(task_id_t);
    161161
    162 extern void async_set_client_connection(async_client_conn_t);
     162extern int async_create_port(iface_t, async_port_handler_t, void *,
     163    port_id_t *);
     164extern void async_set_fallback_port_handler(async_port_handler_t, void *);
     165extern int async_create_callback_port(async_exch_t *, iface_t, sysarg_t,
     166    sysarg_t, async_port_handler_t, void *, port_id_t *);
     167
    163168extern void async_set_notification_handler_stack_size(size_t);
    164169
     
    343348extern async_sess_t *async_connect_me_to(exch_mgmt_t, async_exch_t *, sysarg_t,
    344349    sysarg_t, sysarg_t);
     350extern async_sess_t *async_connect_me_to_iface(async_exch_t *, iface_t,
     351    sysarg_t, sysarg_t);
    345352extern async_sess_t *async_connect_me_to_blocking(exch_mgmt_t, async_exch_t *,
    346353    sysarg_t, sysarg_t, sysarg_t);
     354extern async_sess_t *async_connect_me_to_blocking_iface(async_exch_t *, iface_t,
     355    sysarg_t, sysarg_t);
    347356extern async_sess_t *async_connect_kbox(task_id_t);
    348357
    349 extern int async_connect_to_me(async_exch_t *, sysarg_t, sysarg_t, sysarg_t,
    350     async_client_conn_t, void *);
     358extern int async_connect_to_me(async_exch_t *, sysarg_t, sysarg_t, sysarg_t);
    351359
    352360extern int async_hangup(async_sess_t *);
  • uspace/lib/c/include/devman.h

    r3feeab2 rff381a7  
    4242#include <stdbool.h>
    4343
    44 extern async_exch_t *devman_exchange_begin_blocking(devman_interface_t);
    45 extern async_exch_t *devman_exchange_begin(devman_interface_t);
     44extern async_exch_t *devman_exchange_begin_blocking(iface_t);
     45extern async_exch_t *devman_exchange_begin(iface_t);
    4646extern void devman_exchange_end(async_exch_t *);
    4747
     
    5353extern int devman_drv_fun_offline(devman_handle_t);
    5454
    55 extern async_sess_t *devman_device_connect(exch_mgmt_t, devman_handle_t,
    56     unsigned int);
    57 extern async_sess_t *devman_parent_device_connect(exch_mgmt_t, devman_handle_t,
     55extern async_sess_t *devman_device_connect(devman_handle_t, unsigned int);
     56extern async_sess_t *devman_parent_device_connect(devman_handle_t,
    5857    unsigned int);
    5958
  • uspace/lib/c/include/errno.h

    r3feeab2 rff381a7  
    4747#define ENOTDIR       (-258)
    4848#define ENOSPC        (-259)
    49 #define EEXIST        (-260)
    5049#define ENOTEMPTY     (-261)
    5150#define EBADF         (-262)
    52 #define ERANGE        (-263)
    53 #define EXDEV         (-264)
    54 #define EIO           (-265)
    55 #define EMLINK        (-266)
    56 #define ENXIO         (-267)
     51#define EDOM          (-263)
     52#define ERANGE        (-264)
     53#define EXDEV         (-265)
     54#define EIO           (-266)
     55#define EMLINK        (-267)
     56#define ENXIO         (-268)
    5757
    5858/** Bad checksum. */
  • uspace/lib/c/include/io/kio.h

    r3feeab2 rff381a7  
    4040#include <io/verify.h>
    4141
    42 extern size_t kio_write(const void *, size_t);
     42extern int kio_write(const void *, size_t, size_t *);
    4343extern void kio_update(void);
    4444extern void kio_command(const void *, size_t);
  • uspace/lib/c/include/ipc/devman.h

    r3feeab2 rff381a7  
    141141
    142142typedef enum {
    143         DEVMAN_DRIVER = 1,
    144         DEVMAN_CLIENT,
    145         DEVMAN_CONNECT_TO_DEVICE,
    146         DEVMAN_CONNECT_FROM_LOC,
    147         DEVMAN_CONNECT_TO_PARENTS_DEVICE
    148 } devman_interface_t;
    149 
    150 typedef enum {
    151143        DEVMAN_DRIVER_REGISTER = IPC_FIRST_USER_METHOD,
    152144        DEVMAN_ADD_FUNCTION,
  • uspace/lib/c/include/ipc/inet.h

    r3feeab2 rff381a7  
    3737
    3838#include <ipc/common.h>
    39 
    40 /** Inet ports */
    41 typedef enum {
    42         /** Default port */
    43         INET_PORT_DEFAULT = 1,
    44         /** Configuration port */
    45         INET_PORT_CFG,
    46         /** Ping service port */
    47         INET_PORT_PING,
    48         /** Ping6 service port */
    49         INET_PORT_PING6
    50 } inet_port_t;
    5139
    5240/** Requests on Inet default port */
  • uspace/lib/c/include/ipc/loc.h

    r3feeab2 rff381a7  
    7676} loc_event_t;
    7777
    78 /** Ports provided by location service.
    79  *
    80  * Every process that connects to loc must ask one of following
    81  * ports, otherwise connection will be refused.
    82  *
    83  */
    84 typedef enum {
    85         /** Service supplier (server) port */
    86         LOC_PORT_SUPPLIER = 1,
    87         /** Service consumer (client) port */
    88         LOC_PORT_CONSUMER,
    89         /** Create new connection to instance of device that
    90             is specified by second argument of call. */
    91         LOC_CONNECT_TO_SERVICE
    92 } loc_interface_t;
    93 
    9478typedef struct {
    9579        service_id_t id;
  • uspace/lib/c/include/ipc/logger.h

    r3feeab2 rff381a7  
    6969} logger_writer_request_t;
    7070
    71 typedef enum {
    72         /** Interface for controlling logger behavior. */
    73         LOGGER_INTERFACE_CONTROL,
    74         /** Interface for servers writing to the log. */
    75         LOGGER_INTERFACE_WRITER
    76 } logger_interface_t;
    77 
    7871#endif
    7972
  • uspace/lib/c/include/ipc/services.h

    r3feeab2 rff381a7  
    3838#define LIBC_SERVICES_H_
    3939
    40 #include <fourcc.h>
     40#include <sys/types.h>
     41#include <abi/fourcc.h>
    4142
    4243typedef enum {
    4344        SERVICE_NONE       = 0,
    44         SERVICE_LOAD       = FOURCC('l', 'o', 'a', 'd'),
     45        SERVICE_LOADER     = FOURCC('l', 'o', 'a', 'd'),
    4546        SERVICE_VFS        = FOURCC('v', 'f', 's', ' '),
    4647        SERVICE_LOC        = FOURCC('l', 'o', 'c', ' '),
     
    4950        SERVICE_IRC        = FOURCC('i', 'r', 'c', ' '),
    5051        SERVICE_CLIPBOARD  = FOURCC('c', 'l', 'i', 'p'),
    51 } services_t;
     52} service_t;
    5253
    53 #define SERVICE_NAME_CORECFG    "corecfg"
    54 #define SERVICE_NAME_DHCP       "net/dhcp"
    55 #define SERVICE_NAME_DNSR       "net/dnsr"
    56 #define SERVICE_NAME_INET       "net/inet"
    57 #define SERVICE_NAME_INETCFG    "net/inetcfg"
    58 #define SERVICE_NAME_INETPING   "net/inetping"
    59 #define SERVICE_NAME_INETPING6  "net/inetping6"
    60 #define SERVICE_NAME_NETCONF    "net/netconf"
    61 #define SERVICE_NAME_UDP        "net/udp"
    62 #define SERVICE_NAME_TCP        "net/tcp"
    63 #define SERVICE_NAME_VBD        "vbd"
    64 #define SERVICE_NAME_VOLSRV     "volsrv"
     54#define SERVICE_NAME_CORECFG  "corecfg"
     55#define SERVICE_NAME_DHCP     "net/dhcp"
     56#define SERVICE_NAME_DNSR     "net/dnsr"
     57#define SERVICE_NAME_INET     "net/inet"
     58#define SERVICE_NAME_NETCONF  "net/netconf"
     59#define SERVICE_NAME_UDP      "net/udp"
     60#define SERVICE_NAME_TCP      "net/tcp"
     61#define SERVICE_NAME_VBD      "vbd"
     62#define SERVICE_NAME_VOLSRV   "volsrv"
    6563
    6664#endif
  • uspace/lib/c/include/loc.h

    r3feeab2 rff381a7  
    4242typedef void (*loc_cat_change_cb_t)(void);
    4343
    44 extern async_exch_t *loc_exchange_begin_blocking(loc_interface_t);
    45 extern async_exch_t *loc_exchange_begin(loc_interface_t);
     44extern async_exch_t *loc_exchange_begin_blocking(iface_t);
     45extern async_exch_t *loc_exchange_begin(iface_t);
    4646extern void loc_exchange_end(async_exch_t *);
    4747
    4848extern int loc_server_register(const char *);
    4949extern int loc_service_register(const char *, service_id_t *);
    50 extern int loc_service_register_with_iface(const char *, service_id_t *,
    51     sysarg_t);
    5250extern int loc_service_unregister(service_id_t);
    5351extern int loc_service_add_to_cat(service_id_t, category_id_t);
     
    6563extern loc_object_type_t loc_id_probe(service_id_t);
    6664
    67 extern async_sess_t *loc_service_connect(exch_mgmt_t, service_id_t,
     65extern async_sess_t *loc_service_connect(service_id_t, iface_t,
    6866    unsigned int);
    6967
  • uspace/lib/c/include/ns.h

    r3feeab2 rff381a7  
    4141#include <async.h>
    4242
    43 extern int service_register(sysarg_t);
    44 extern async_sess_t *service_connect(exch_mgmt_t, services_t, sysarg_t, sysarg_t);
    45 extern async_sess_t *service_connect_blocking(exch_mgmt_t, services_t, sysarg_t,
    46     sysarg_t);
    47 extern async_sess_t *service_bind(services_t, sysarg_t, sysarg_t, sysarg_t,
    48     async_client_conn_t);
     43extern int service_register(service_t);
     44extern async_sess_t *service_connect(service_t, iface_t, sysarg_t);
     45extern async_sess_t *service_connect_blocking(service_t, iface_t, sysarg_t);
    4946
    5047extern int ns_ping(void);
  • uspace/lib/c/include/stdint.h

    r3feeab2 rff381a7  
    6060#define UINT64_MAX  UINT64_C(0xFFFFFFFFFFFFFFFF)
    6161
    62 #include <libarch/types.h>
     62#include <libarch/stdint.h>
    6363
    6464/* off64_t */
  • uspace/lib/c/include/stdio.h

    r3feeab2 rff381a7  
    109109extern int puts(const char *);
    110110
     111extern int ungetc(int, FILE *);
     112
    111113/* Formatted string output functions */
    112114extern int fprintf(FILE *, const char*, ...)
     
    132134extern FILE *fopen(const char *, const char *);
    133135extern FILE *fdopen(int, const char *);
     136extern FILE *freopen(const char *, const char *, FILE *);
    134137extern int fclose(FILE *);
    135138
  • uspace/lib/c/include/sys/statfs.h

    r3feeab2 rff381a7  
    4646
    4747extern int statfs(const char *, struct statfs *);
     48
    4849#endif
    4950
  • uspace/lib/c/include/sys/types.h

    r3feeab2 rff381a7  
    4646typedef uint64_t aoff64_t;
    4747
     48typedef uint32_t fourcc_t;
     49
    4850typedef volatile uint8_t ioport8_t;
    4951typedef volatile uint16_t ioport16_t;
  • uspace/lib/c/include/unistd.h

    r3feeab2 rff381a7  
    6363extern ssize_t read(int, void *, size_t);
    6464
    65 extern ssize_t read_all(int, void *, size_t);
    66 extern ssize_t write_all(int, const void *, size_t);
    67 
    6865extern off64_t lseek(int, off64_t, int);
    6966extern int ftruncate(int, aoff64_t);
  • uspace/lib/c/include/vfs/vfs.h

    r3feeab2 rff381a7  
    5050
    5151
    52 extern char *absolutize(const char *, size_t *);
     52extern char *vfs_absolutize(const char *, size_t *);
    5353
    54 extern int mount(const char *, const char *, const char *, const char *,
     54extern int vfs_mount(const char *, const char *, const char *, const char *,
    5555    unsigned int, unsigned int);
    56 extern int unmount(const char *);
     56extern int vfs_unmount(const char *);
    5757
    58 extern int fhandle(FILE *, int *);
     58extern int vfs_fhandle(FILE *, int *);
    5959
    60 extern int fd_wait(void);
    61 extern int get_mtab_list(list_t *mtab_list);
     60extern int vfs_fd_wait(void);
     61extern int vfs_get_mtab_list(list_t *mtab_list);
    6262
    6363extern async_exch_t *vfs_exchange_begin(void);
    6464extern void vfs_exchange_end(async_exch_t *);
     65
    6566#endif
    6667
  • uspace/lib/c/include/vfs/vfs_sess.h

    r3feeab2 rff381a7  
    3939#include <stdio.h>
    4040
    41 extern async_sess_t *fd_session(exch_mgmt_t, int);
    42 extern async_sess_t *fsession(exch_mgmt_t, FILE *);
     41extern async_sess_t *vfs_fd_session(int, iface_t);
     42extern async_sess_t *vfs_fsession(FILE *, iface_t);
    4343
    4444#endif
Note: See TracChangeset for help on using the changeset viewer.